"Use of mnemonics" demonstrations
JMPs and CALLs to unique labels

This test demonstrates the different types of CALLs and JMPs to unique labels used in 32 bit code. Conditional jumps are looked at separately.
Set a breakpoint at TYPESOF_JMPSCALLS and run the test, then single-step through the code.

TESTCALL:
XOR EAX,EAX
RET
;
TESTJMP:
XOR EAX,EAX
JMP >L10
TESTJMP1:
XOR EAX,EAX
JMP >L11
TESTJMP2:
XOR EAX,EAX
OR EDX,EDX
JZ >L12
JMP >L13
;
TYPESOF_JMPSCALLS:
JMP TESTJMP             ;jump to symbol direct
L10:
MOV EAX,ADDR TESTJMP1
JMP EAX                 ;jump to symbol direct via register
L11:
MOV EAX,ADDR TESTJMP2
MOV KEEP,EAX
XOR EDX,EDX
JMP [KEEP]              ;jump to symbol indirect
L12:
MOV EAX,ADDR KEEP
INC EDX
JMP [EAX]               ;jump to symbol indirect via register
L13:
CALL TESTCALL           ;call to symbol direct
MOV EAX,ADDR TESTCALL
CALL EAX                ;call to symbol direct via register
MOV EAX,ADDR TESTCALL
MOV KEEP,EAX
CALL [KEEP]             ;call to symbol indirect
MOV EAX,ADDR KEEP
CALL [EAX]              ;call to symbol indirect via register
RET