子程序設計
一磨取、RET和RETF指令
1.RET指令
ret
CPU執(zhí)行ret指令時進行以下操作:
IP = SS:[SP]
SP = SP + 2相當于:pop IP
2.RETF指令
retf
CPU執(zhí)行retf指令時進行以下操作:
IP = SS:[SP]
SP = SP + 2
CS = SS:[SP]
SP = SP +2相當于:
pop IP
pop CS
二人柿、CALL指令
1.段內調用
(1)根據(jù)位移進行轉移
call 標號
相當于:
push IP
jmp near 標號
(2)轉移地址在寄存器中
call 寄存器名(16位)
相當于:
push IP
jmp 寄存器名
(3)轉移地址在內存中
call word ptr 內存單元地址
相當于:
push IP
jmp word ptr 內存單元地址
2.跨段調用
(1)轉移地址在指令中
call far ptr 標號
相當于:
push CS
push IP
jmp far ptr 標號
(2)轉移地址在內存中
call dword ptr 內存單元地址
相當于:
push CS
push IP
jmp dword ptr 內存單元地址
三、子程序框架
ASSUME CS:CODE
CODE SEGMENT
MAIN: ......
......
CALL SUB1
......
......
MOV AH,4CH
INT 21H
SUB1: ......
......
CALL SUB2
......
......
RET
SUB2: ......
......
......
RET
CODE ENDS
END MAIN