Results 1 to 9 of 9
  1. #1
    patrickpp
    patrickpp is offline
    Member-in-training patrickpp's Avatar
    Join Date
    2013 Feb
    Location
    Na frente da tela
    Posts
    129
    Thanks Thanks Given 
    31
    Thanks Thanks Received 
    121
    Thanked in
    49 Posts
    Rep Power
    0

    For create hack, Assembly.

    What is Assembler?
    --------------------

    Assembler could be one of my favorite languages ​​to work.
    Not to be a linhguagem easy at first, but once you become familiar
    with it, you understand how logical it is.

    Assembler is a low-level language, which you can use in your programs
    to speed slow tasks. Basically it consists of a meager sentences
    represent instructions in machine language, and as it is close
    to machine code, it is fast.

    Long ago, when the 8086 appeared (yes, there were humans on Earth
    Smile at that time, programming was not an easy task. When the first
    computers were developed, the schedule had to be done in code
    machine, which was _not_ an easy task, and so was born the assembler.


    Why use it?
    -----------------

    As I said before, Assembler is fast. It also allows you to speak to
    the machine at the hardware level, and gives you much greater control and flexibility
    on the PC. One of the other advantages of assembler is that it allows you
    Impress your friends with seemingly incomprehensible code pages.
    Not seeing them crowded around you and impressed / laughing
    his nerdeza? Smile


    As this tutorial appeared?
    ------------------------------

    Well, I had a couple of friends who wanted to learn Assembler to accelerate
    their programs in Pascal, so I gave them some tutorials Assembler I
    had. Since these tutorials have all the information you need, they
    were not written for beginners to easily understand, so I decided
    write my own.

    If you are using this tutorial and find it useful and informative, so why
    please write to me.



    LESSON 1 - Registers
    --------------------------

    When you're working with Assembler, you have to use registers.
    You can imagine them as being Variables already set for you. Most
    common are listed below:

    þ AX - the accumulator. Includes AH and AL, the high and low bytes
    AX. Commonly used in mathematical operations and I / O

    þ BX - the base. Comprises BH and BL. Commonly used as a base or
    pointer register.

    þ CX - the counter. Comprises CH and CL. Often used in loops.

    þ DX - displacement, similar to the base register. Comprises DH
    and DL. I think you're getting the hang of things now.

    These registers are defined as general-purpose registers as we
    actually store anything you want in them. They are also
    16-bit registers, which means that we can store an integer
    positive from 0 to 65535, or an integer from -32768 to 32768.

    Incidentally, the issue of high and low byte of these resgistradores
    caused much confusion in the past, so try to give some explanation here.
    AX has a range of 0 to FFFFh. This means that you have a range
    0 to FFh for AH and AL. (If you know little about hex, not
    worry. The next tutorial will talk about it.)

    Now, if we have in store 0A4Ch AX, AH will contain 0Ah, and AL contain
    4ch. Dig? This is a very important concept, and I will speak about it
    further in the next tutorial.


    The segment registers: - ta da!

    These are other registrars do not we see the first tutorial,
    but we will see them in greater depth later. They are immensely useful,
    but may also be dangerous.

    þ CS - the code segment. The block mem ¢ ria where the code is stored.
    DO NOT mess with this unless you know what you're doing.

    þ DS - data segment. The area in memory where the data is stored.
    During block operations, when large blocks of data are moved,
    this is the segment to which the CPU commonly refers.

    þ ES - extra segment. As another data segment, but this is
    commonly used when accessing the video.

    þ SS - no, not the German army. It is the stack segment, wherein
    ‡ CPU stores the return addresses of subroutines. Beware
    it. Smile

    Some others that you will commonly use:

    þ SI - the font index. Often used for movements of blocks
    instruction. This is a pointer within one segment, usually
    DS is used by the CPU for reading.

    þ DI - the target index. Again, you'll use a lot. Another
    pointer within one segment, usually ES is used for writing
    by the CPU.

    þ BP - the pointer of the base used in conjunction with the stack segment. We
    we will not use it much.

    þ SP - the stack pointer, commonly used with the stack segment. NO
    play with it at all. : |

    By now you should know what are registers. There are other
    Registrars also known as flags and stuff, but we will not
    to them now.




    THINGS TO DO:

    1) Learn the various registers of color.
    2) Arrange a calculator that supports hexadecimal - or at least a
    ASCII table. This covers 0-255, or from 0h to FFh.




    Lesson 2 - The instruction set of 8086:
    ----------------------------------------------

    Okay, so you've learned about registers, but how to use them,
    and how to code in assembler? Well, first you need some
    instructions. The following instructions can be used on all CPUs
    8086 upward.

    þ <dest> MOV, <value> - MOVE. This statement allows a value MOVE
    to a position in mem ¢ ria.

    Example: MOV AX, 13h

    This would move 13h (19 decimal) into the
    AX register. So if AX value 0 before it
    Now would be 13h.

    THAT ONLY MOVE A VALUE FOR THE REGISTER,
    DONT DO ANYTHING.

    Ex: (in Pascal) AX: = $ 13;

    þ INT <number> - INTERRUPTION. This instruction generates a interupção.
    You can think of it as an almost
    procedure.

    Eg: INT 10h

    Generate interrupt 10h (16 decimal). Now
    what that would depend on the contents of register
    AH, among other things. For example, if AX = 13h
    and interrupt 10h is generated, the video would be
    placed in 320x200x256 mode.

    More precisely:

    AH would be equal to 00 - set the subfunction
    Similarly, and
    AL would be equal to 13h - 320x200x256 graphics mode.

    However, if AH = 2h, and 16h interrupt was
    generated, this would instruct the CPU to check if
    any key is pressed in the buffer
    keyboard.

    If AH = 2h, and BH = 0h and interrupt 10h was
    generated, then the CPU would move the cursor to the
    X position and Y position in DL DH.

    DO NOT WORRY ABOUT IT FOR NOW! WE
    We'll talk LATER ON THAT, WITH MORE DETAILS.

    þ <dest> <value> ADD - ADD. This instruction adds a number to the value
    stored in dest.

    Ex: MOV AX, 0h; AX now equals 0h
    ADD AX, 5h; AX now equals 5h
    ADD AX, 10h; AX now equals 15h

    Pretty simple, huh?

    þ SUB <dest> <value> - SUBTRACT. I think you just can guess what it
    makes.

    Ex: MOV AX, 13h, AX now equals 13h (19 dec)
    SUB AX, 5h; AX now equals 0Eh (14 dec.)

    þ DEC <register> - DECREASE something.

    Ex: MOV AX, 13h, AX now equals 13h
    DEC AX, AX now equals 12h

    þ INC <register> - INCREASES something.

    Ex: MOV AX, 13h; Guess ...
    INC AX, AX = AX + 1

    þ JMP <position> - JUMPS to a position.

    EG: JMP 020Ah; Pula for education in 020Ah
    JMP @ MyLabel; Pula to @ MyLabel.

    DO NOT WORRY IF THIS IS A LITTLE CONFUSED - GO
    BE WORSE! THERE ARE 28 TO JUMP INSTRUCTIONS
    LEARNING AND MAYBE MORE. We'll talk THEM LATER.

    þ <Procedure> CALL - CALL a subfunction.

    EG: Procedure MyProc;

    Begin {} MyProc
    {... }
    End;} {MyProc

    Begin {main}
    Asm
    CALL MyProc; Guess what that does!
    End;
    End

    Or CALL F6E0h; Flame subfunction in F6E0h

    þ LOOP <rótulo/label> - LOOPS (repetition) for a while.

    EG: MOV CX, 10h; This is because CX be
    , Called registration COUNTER.
    , 10h = 16

    @ MyLabel:

    : Something
    ; More thing

    LOOP @ MyLabel, Acts, that CX = 0
    , Note: CX is decremented
    ; Each time. Ńŕéň decrement it
    ; Yourself (DEC CX).

    , THIS WOULD REPEAT 16 times - i.e., 10
    in hexadecimal.

    þ LODSB - Loads a byte
    LODSW - Loads a word
    STOSB - Store a byte
    STOSW - Store a word

    These instructions are used to set or get something in a position
    memory. Recorder DS: SI, (remember we talked about this before,
    about SI be the font index?), points to the location where
    we get the data, and DS: DI points to put where information.

    Of course, we are not required to use DS - ES could be eg.
    My procedure PutPixel put a byte at ES: DI.

    Anyway, imagine we have the following configuration in mem ¢ ria:

    Memory location ³ 06 ³ 07 ³ 08 ³ 09 ³ 10 ³ 11 ³ 12

    Value ³ 50 ³ 32 ³ 38 ³ 03 ³ 23 ³ 01 ³ 12

    When we use LODSB or STOSB, he returns and takes a number of AL.
    Thus, if DS: SI pointing to 07 and an instruction executássemos LODSB,
    AL would now be equal to 32.

    Now, if we pinpoint DS: DI for 11, putting, say, 50 in
    AL register, and execute STOSB, then we have the following result:

    Position in Memory ³ 06 ³ 07 ³ 08 ³ 09 ³ 10 ³ 11 ³ 12

    Value ³ 50 ³ 32 ³ 38 ³ 03 ³ 23 ³ 50 ³ 12

    OBS.: When we LODSB / STOSB, use AL. This is because we
    stirring with an 8 bit (one byte) only. We can
    store an 8-bit number in AL, AH, and AX, but we can not
    storing a 16-bit number in AH or AL because they are
    REGISTERS OF 8 BITS.

    As a result, when we use LODSW or STOSW, we must use
    AL AX and not as we will be getting / setting a number of
    16 bits.


    þ MOVSB ​​- Move a byte
    MOVSW - Moves one word

    As an example let's take a byte from DS: SI and send it to ES: DI.

    In DS: SI:

    Position Memory ³ 06 ³ 07 ³ 08 ³ 09 ³ 10 ³ 11 ³ 12

    Value ³ 50 ³ 32 ³ 38 ³ 03 ³ 23 ³ 50 ³ 12


    In ES: DI:

    Position Memory ³ 06 ³ 07 ³ 08 ³ 09 ³ 10 ³ 11 ³ 12

    Value ³ 10 ³ 11 ³ 20 ³ 02 ³ 67 ³ 00 ³ 12

    If we point DS: SI to position 07, we point ES: SI to position
    11 MOVSB ​​and execute the result in ES: DI look like:

    In ES: DI:

    Position Memory ³ 06 ³ 07 ³ 08 ³ 09 ³ 10 ³ 11 ³ 12

    Value ³ 10 ³ 11 ³ 20 ³ 02 ³ 67 ³ 32 ³ 12


    HOPE YOU GET A GENERAL IDEA. HOWEVER, OF COURSE, IS NOT SO SIMPLE.
    POSITIONS ARE NOT ARRUMADOAS MEMORY SHAPED ARRAY, ALTHOUGH I
    WISH THEY WERE. WHEN MOVE / GET / PUT, YOU WILL
    Stirring with a POSITION AS: 100:102 H. STILL, YOU SHOULD
    GET THE IDEA.

    þ REP - REPEAT the number of times specified in the CX register.
    A REP in front of a MOVSB ​​/ LODSB / STOSB cause a repetition of the
    instruction. Logo:

    If CX = 5, and
    if ES: DI pointing at 1000:1000 h,

    then REP STOSB would store what was in the AL register
    position 1000:1000 h 5 times.

    THINGS TO DO:

    1) Save all instructions above - is not that hard and there are so many
    there.

    2) Be sure you understand the theory behind them.

    Português



       Level Help 100%


    If I helped you, thank
    Ajudei? Agradeça o dedo vai continuar na sua mão u.u

  2. The Following 4 Users Say Thank You to patrickpp For This Useful Post:


  3. #2
    CotocoV1
    CotocoV1 is offline
    Member-in-training CotocoV1's Avatar
    Join Date
    2012 Dec
    Location
    Everywhere
    Posts
    113
    Thanks Thanks Given 
    41
    Thanks Thanks Received 
    44
    Thanked in
    23 Posts
    Rep Power
    0
    Muito bem elaborado, parabéns! Foi você quem fez ele?

    Good!
    Last edited by CotocoV1; 2013-08-01 at 07:09 PM.

  4. The Following User Says Thank You to CotocoV1 For This Useful Post:


  5. #3
    patrickpp
    patrickpp is offline
    Member-in-training patrickpp's Avatar
    Join Date
    2013 Feb
    Location
    Na frente da tela
    Posts
    129
    Thanks Thanks Given 
    31
    Thanks Thanks Received 
    121
    Thanked in
    49 Posts
    Rep Power
    0
    Quote Originally Posted by CotocoV1 View Post
    Muito bem elaborado, parabéns! Foi você quem fez ele?

    Good!
    Frankly I asked my uncle here for facebook how it worked and he gave me this text, so there is!

    Português

    Ajudei? Agradeça o dedo vai continuar na sua mão u.u

  6. The Following User Says Thank You to patrickpp For This Useful Post:


  7. #4
    CotocoV1
    CotocoV1 is offline
    Member-in-training CotocoV1's Avatar
    Join Date
    2012 Dec
    Location
    Everywhere
    Posts
    113
    Thanks Thanks Given 
    41
    Thanks Thanks Received 
    44
    Thanked in
    23 Posts
    Rep Power
    0
    Quote Originally Posted by patrickpp View Post
    Frankly I asked my uncle here for facebook how it worked and he gave me this text, so there is!
    Muito bom, agradeça ao seu tio pelo facebook. Para não gerar problemas, aí vai a fonte! http://www.krull.com.br/programacao/....RYc9cI2h.dpbs

    There is the font http://www.krull.com.br/programacao/....RYc9cI2h.dpbs

  8. The Following User Says Thank You to CotocoV1 For This Useful Post:


  9. #5
    jacksporro
    jacksporro is offline
    New member
    Join Date
    2013 Jul
    Location
    Trying to programming
    Posts
    21
    Thanks Thanks Given 
    20
    Thanks Thanks Received 
    3
    Thanked in
    3 Posts
    Rep Power
    0
    Nice post, but for who is starting programming this is not recommended.

  10. #6
    leeonardo
    leeonardo is offline
    Moderator leeonardo's Avatar
    Join Date
    2012 Jan
    Location
    Here I am.
    Posts
    2,219
    Thanks Thanks Given 
    48
    Thanks Thanks Received 
    3,122
    Thanked in
    737 Posts
    Rep Power
    15
    Really, for who don't know programming it will be very difficult, since need a knowledge about ASM.


    É pra ficar com medo?



    Apenas observo...



    Não faço nenhum tipo de venda de hack no jogo, então se in game ver algum "Leonardo PGC" não acredite, pois será alguém tentando te roubar.

  11. The Following User Says Thank You to leeonardo For This Useful Post:


  12. #7
    patrickpp
    patrickpp is offline
    Member-in-training patrickpp's Avatar
    Join Date
    2013 Feb
    Location
    Na frente da tela
    Posts
    129
    Thanks Thanks Given 
    31
    Thanks Thanks Received 
    121
    Thanked in
    49 Posts
    Rep Power
    0
    Quote Originally Posted by CotocoV1 View Post
    Muito bom, agradeça ao seu tio pelo facebook. Para não gerar problemas, aí vai a fonte! http://www.krull.com.br/programacao/....RYc9cI2h.dpbs

    There is the font http://www.krull.com.br/programacao/....RYc9cI2h.dpbs
    Well, since you said this with such certainty, my uncle gave me his source, in which case it would not be is you're going ...
    And if I helped you thank ... At least this time it does not cost anything ...

    Português



    Tutorial Assembly
    Ajudei? Agradeça o dedo vai continuar na sua mão u.u

  13. #8
    kondlord
    kondlord is offline
    Member-in-training kondlord's Avatar
    Join Date
    2012 Jul
    Location
    Brasil
    Posts
    120
    Thanks Thanks Given 
    62
    Thanks Thanks Received 
    13
    Thanked in
    12 Posts
    Rep Power
    0
    heh vlw mas é muita treta essa parada, mas da para pegar de boa...

    heh vlw but this is a lot of bullshit stop, but to get the good ...

  14. The Following User Says Thank You to kondlord For This Useful Post:


  15. #9
    patrickpp
    patrickpp is offline
    Member-in-training patrickpp's Avatar
    Join Date
    2013 Feb
    Location
    Na frente da tela
    Posts
    129
    Thanks Thanks Given 
    31
    Thanks Thanks Received 
    121
    Thanked in
    49 Posts
    Rep Power
    0
    Quote Originally Posted by kondlord View Post
    heh vlw mas é muita treta essa parada, mas da para pegar de boa...

    heh vlw but this is a lot of bullshit stop, but to get the good ...
    It is recommended for beginner to start from C and not C + + and thank if I helped. xD

    Português

    Ajudei? Agradeça o dedo vai continuar na sua mão u.u

  16. The Following User Says Thank You to patrickpp For This Useful Post:


Similar Threads

  1. [Help] help to create a hack for the game highstreet 5 (Para pa)
    By genius5001 in forum General Game Research
    Replies: 0
    Last Post: 2013-07-09, 09:40 PM
  2. [Asm] Somes Assembly Examples!
    By DarkT in forum Assembler
    Replies: 0
    Last Post: 2013-05-17, 01:23 AM
  3. A new assembly challenge!
    By zeronoctis in forum Other MMO
    Replies: 0
    Last Post: 2012-11-15, 07:52 PM
  4. Using assembly in AutoIT
    By proseco91 in forum Forsaken World
    Replies: 1
    Last Post: 2012-08-04, 03:47 AM
  5. How to create Perfect World Hack?
    By NeTBuS in forum Perfect World
    Replies: 4
    Last Post: 2010-11-22, 03:28 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •