Difference between revisions of "Assembler:Commands:JMP"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
− | '''command''' jmp '' | + | '''command''' jmp ''size'' ''operand'' |
Jumps to the given operand (address). | Jumps to the given operand (address). | ||
Line 8: | Line 8: | ||
!style="width: 80%;background-color:white;" align="left"|Description | !style="width: 80%;background-color:white;" align="left"|Description | ||
|- | |- | ||
− | | | + | |size '''OPTIONAL''' |
|The preferred size of the assembled address | |The preferred size of the assembled address | ||
|- | |- |
Revision as of 04:36, 14 March 2017
command jmp size operand
Jumps to the given operand (address).
Command Parameters
Parameter | Description |
---|---|
size OPTIONAL | The preferred size of the assembled address |
operand | The address or symbol to jump to |
Examples
jmp +1A // Jump from end of command to +1A (hex).
jmp 00123ABC // Jump to address.
jmp 0000123456ABCDEF // Jump to address.
jmp eax // Jump to value of eax.
jmp rax // Jump to value of rax.
jmp someSymbol // Jump to user defined symbol.
jmp someLabel // Jump to label.
jmp short someLabel // Jump to label with short byte code.
jmp long someLabel // Jump to label with full address.
jmp @b // Jump back to closest label
jmp @f // Jump forward to closest label
Running this script in 64 bit mode:
globalAlloc(memTest, 0x200) label(testLbl) memTest: add [rax],al // db 00 00 @@: add [rax],al jmp short @b jmp short @f add [rax],al @@: add [rax],al add [rax],al jmp short -4 jmp short +2 add [rax],al testLbl: add [rax],al jmp 01160002 add [rax],al jmp rax add [rax],al jmp memTest add [rax],al jmp testLbl add [rax],al jmp short testLbl add [rax],al jmp long testLbl add [rax],al db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90