Test t3163:
Machine instruction CALL CALLN CALLF in 64bit mode
- Tested procedures
-
IigCALL
IigCALLN
IigCALLF
- Source & expected listing
t3163.htm.lst
-
| | EUROASM LIST=ON,DUMP=ON,DUMPWIDTH=32,AUTOALIGN=OFF,CPU=X64
| |t3163 PROGRAM FORMAT=BIN, LISTMAP=OFF, LISTGLOBALS=OFF
|[Mode64] |[Mode64] SEGMENT WIDTH=64,PURPOSE=CODE
|00000000: |; Direct call to immediate address:
|00000000:E8FBFFFFFF | CALL $
|00000005:E8FBFFFFFF | CALL $,DATA=QWORD,IMM=DWORD,DIST=NEAR
|0000000A:E8FEFFFF7F | CALL $-2_147_483_645
|0000000F:E8FFFFFF7F | CALL $-2_147_483_644
|00000014:E800000080 | CALL $-2_147_483_643
|00000019:E801000080 | CALL $-2_147_483_642
|0000001E:E8FEFFFF7F | CALL $+2_147_483_651
|00000023:E8FFFFFF7F | CALL $+2_147_483_652
|00000028:E800000080 | CALL $+2_147_483_653
|0000002D:E801000080 | CALL $+2_147_483_654
|00000032:E8(22110000) | CALL 0x1122
|00000037:E8(33221100) | CALL 0x112233
|0000003C:E8(00000000) | CALL ExternProc
|00000041:E8(00000000) | CALLN ExternProc
|00000046:E8(00000000) | CALL ExternProc,DATA=QWORD
|0000004B:E89E000000 | CALL NearProc
|00000050:E899000000 | CALLN NearProc
|00000055:E894000000 | CALL NearProc,DATA=QWORD
|0000005A:E88F000000 | CALL NearProc,IMM=DWORD
|0000005F: |; Indirect near call:
|0000005F:FFD2 | CALL RDX
|00000061:41FFD1 | CALL R9
|00000064:FF1566000000 | CALL [MemQwordNear]
|0000006A:FF1572000000 | CALL [MemWordNear],DATA=QWORD
|00000070:FF155A000000 | CALL [MemQwordNear],ADDR=REL
|00000076:FF1425[D0000000] | CALL [MemQwordNear],ADDR=ABS
|0000007D:FF16 | CALL [RSI]
|0000007F:FF16 | CALL [RSI],DATA=QWORD
|00000081: |; Direct far call: not supported in 64bit mode.
|00000081: |; Indirect far call:
|00000081:48FF1E | CALLF [RSI]
|00000084:48FF1E | CALL [RSI],DIST=FAR
|00000087:48FF1E | CALLF [RSI],DATA=QWORD
|0000008A:FF1E | CALLF [RSI],DATA=DWORD
|0000008C:66FF1E | CALLF [RSI],DATA=WORD
|0000008F:48FF1D42000000 | CALLF [MemQwordFar]
|00000096:FF1D48000000 | CALLF [MemDwordFar]
|0000009C:66FF1D47000000 | CALLF [MemWordFar]
|000000A3:48FF1C25[D8000000] | CALLF [MemQwordFar],ADDR=ABS
|000000AB:FF1C25[E4000000] | CALLF [MemDwordFar],ADDR=ABS
|000000B2:66FF1C25[EA000000] | CALLF [MemWordFar],ADDR=ABS
|000000BA:66FF1D29000000 | CALL [MemWordFar],DIST=FAR
|000000C1:FF1D23000000 | CALLF [MemWordFar],DATA=DWORD
|000000C7:48FF1D1C000000 | CALLF [MemWordFar],DATA=QWORD
|000000CE:6690 | ALIGN QWORD
|000000D0:0000000000000000 |MemQwordNear DQ Q
|000000D8:00000000000000000000 |MemQwordFar DQ Q,W
|000000E2:0000 |MemWordNear DW W
|000000E4:000000000000 |MemDwordFar DD D,W
|000000EA:00000000 |MemWordFar DW W,W
|000000EE: |NearProc PROC
|000000EE:C3 | RETN
|000000EF: | ENDP NearProc
| |ExternProc EXTERN
| |ENDPROGRAM t3163
|### E6961 Unresolved external/imported symbol "ExternProc".
|### E7727 Unresolved extern relocation at [Mode64]:0000003Dh.
|### E7727 Unresolved extern relocation at [Mode64]:00000042h.
|### E7727 Unresolved extern relocation at [Mode64]:00000047h.
- Expected messages
t3163.out
I0180 Assembling source file "t3163.htm".
I0270 Assembling source "t3163".
I0310 Assembling source pass 1.
I0330 Assembling source pass 2 - final.
I0470 Assembling program "t3163". "t3163.htm"{55}
I0510 Assembling program pass 1. "t3163.htm"{55}
I0510 Assembling program pass 2. "t3163.htm"{55}
I0530 Assembling program pass 3 - final. "t3163.htm"{55}
E6961 Unresolved external/imported symbol "ExternProc". "t3163.htm"{112}
E7727 Unresolved extern relocation at [Mode64]:0000003Dh. "t3163.htm"{112}
E7727 Unresolved extern relocation at [Mode64]:00000042h. "t3163.htm"{112}
E7727 Unresolved extern relocation at [Mode64]:00000047h. "t3163.htm"{112}
I0660 16bit TINY BIN file "t3163.bin" created, size=239. "t3163.htm"{112}
I0650 Program "t3163" assembled in 3 passes with errorlevel 7. "t3163.htm"{112}
I0750 Source "t3163" (139 lines) assembled in 2 passes with errorlevel 7.
I0860 Listing file "t3163.htm.lst" created, size=3613.
I0990 EuroAssembler terminated with errorlevel 7.
▲Back to the top▲