Difference between revisions of "Assembler:Commands:CALL"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
− | '''command''' call '' | + | '''command''' call ''size'' ''operand'' |
Calls the given operand (address or function), jumps to the given operand then returns. | Calls the given operand (address or function), jumps to the given operand then returns. | ||
Line 10: | Line 10: | ||
!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:37, 14 March 2017
command call size operand
Calls the given operand (address or function), jumps to the given operand then returns.
Note: A RET must be hit for a CALL to work properly, best to use JMPs if unsure.
Command Parameters
Parameter | Description |
---|---|
size OPTIONAL | The preferred size of the assembled address |
operand | The address or symbol to call |
Examples
call +1A // Call from end of command to +1A (hex).
call 00123ABC // Call the address.
call 0000123456ABCDEF // Call the address.
call eax // Call the value of eax.
call rax // Call the value of rax.
call someSymbol // Call the user defined symbol.
call someLabel // Call the label.
call short someLabel // Call the label with short byte code.
call long someLabel // Call the label with full address.
call @b // Call back the closest label
call @f // Call forward the closest 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