flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
b1528932 15 Jan 2011, 08:27
je = jz. equal = zero flag
ocnditional jumps are only relative, 1 byte ranged. you can jump only 127 bytes ahead, or 128 backward. Nothing else is needed, since you can either use cmovCC or jCC over jmp. 2) i would choose hex editor for this task |
|||
![]() |
|
ishkabible 30 Jan 2011, 01:53
thanks i figured it out a while back using a debugger, you can jump further ahead than 127 and further back than 128 using the 0x0F84 je/jz instruction. you can go 2^31-1 forward and -2^31-6 backwards
![]() the minus 6 is becuase you have to jump backwards form the end of the instruction witch is 6 bytes. 0x0F84 0x00000000 |
|||
![]() |
|
revolution 30 Jan 2011, 02:02
You can actually go forwards/backwards over the entire 32-bit address space. No need to worry about +ve or -ve distances, they wrap around.
|
|||
![]() |
|
Goplat 01 Feb 2011, 21:30
You shouldn't call this a "far" jump. "far" has a specific meaning on x86; it means segment:offset. (Only unconditional jumps can be far.)
The jumps with one-byte offsets are called "short" jumps, while the jumps with two- or four-byte offsets are "long" jumps. But since they don't change the code segment, they're all still "near". |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.