Assembler:Commands:CALL
Revision as of 09:44, 13 March 2017 by TheyCallMeTim13 (talk | contribs) (Created page with ''''command''' call ''mnemonic'' ''operand'' Calls the given operand (address or function). A RET must be hit for a CALL to work properly, best to use JMPs if unsure. === Comman…')
command call mnemonic operand
Calls the given operand (address or function). A RET must be hit for a CALL to work properly, best to use JMPs if unsure.
Command Parameters
Parameter | Description |
---|---|
mnemonic OPTIONAL | The preferred size of the assembled address |
operand | The address or symbol to jump to |
Examples
call +1A // Jump from end of command to +1A (hex).
call 00123ABC // Jump to address.
call 0000123456ABCDEF // Jump to address.
call eax // Jump to value of eax.
call rax // Jump to value of rax.
call someSymbol // Jump to user defined symbol.
call someLabel // Jump to label.
call short someLabel // Jump to label with short byte code.
call long someLabel // Jump to label with full address.
call @b // Jump back to closest anonymous label (@@:).
call @f // Jump forward to closest anonymous label (@@:).
Running this script in 64 bit mode:
globalAlloc(memTest, 0x200) label(testLbl) memTest: add [rax],al // db 00 00 @@: add [rax],al ret call short @b call short @f add [rax],al @@: add [rax],al ret add [rax],al call short -8 call short +2 add [rax],al testLbl: add [rax],al ret call 01160002 add [rax],al call rax add [rax],al call memTest add [rax],al call testLbl add [rax],al call short testLbl add [rax],al call long testLbl add [rax],al db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 ret