子程序设计
一、RET和RETF指令
1.RET指令
ret
CPU执行ret指令时进行以下操作:
IP = SS:[SP]
SP = SP + 2相当于:pop IP
2.RETF指令
retf
CPU执行retf指令时进行以下操作:
IP = SS:[SP]
SP = SP + 2
CS = SS:[SP]
SP = SP +2相当于:
pop IP
pop CS
二、CALL指令
1.段内调用
(1)根据位移进行转移
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
网友评论