子程序

作者: Recalcitrant | 来源:发表于2019-08-24 22:36 被阅读0次

子程序设计

一、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

相关文章

网友评论

      本文标题:子程序

      本文链接:https://www.haomeiwen.com/subject/uhvqectx.html