📄 asslandat82b.dat
字号:
说明: 1. 其中OPRD为过程的目的地址.
----
2. 过程调用可分为段内调用和段间调用两种.寻址方式也可以分为直接寻址和间接寻址两种.
3. 本指令不影响标志位.
4. <1> 段内直接调用: CALL NEAR类型的过程名
每一个过程在定义时,应指定它是近类型(NEAR),还是远类型(FAR).本指令是段内直接调用,因而过程与 调用指令同处在一个代码段内.在执行该调用指令时,首先将IP的内容入栈保护,然后由指令代码给出的 目的地址段内偏移量送入IP,从而实现过程调用,将程序转至过程入口.
<2> 段内间接调用: CALL OPRD
其中OPRD为16位通用寄存器或存储器数.
本指令执行时,首先将IP的内容入栈保护,然后将目的地址在段内偏移量由指定的16位寄存器或存储器字 中取至IP中,从而实现过程调用.
例如: CALL BX
CALL WORD PTR [BX+SI+20]
注意: 寄存器间接调用时,寄存器不用方括号括起来.如果用方括号,则为存储器操作数间接调用.
<3> 段间直接调用: CALL FAR 类型的过程名
由于是段间调用,在指令执行时,应同是时将当前的CS及IP的值入栈保护,然后将FAR类型的过程名所在的 段基址和段内偏移值送CS及IP, 从而实现过程调用.
<4> 段间间接调用: CALL DWOPRD
其中DWOPRD为存储器操作数,段间间接调用只能通过存储器双字进行.本指令执行时,首先将当前的CS及 IP的值入栈保护,然后将存储器双字操作数的第一个字的内容送IP,将第二个字的内容送CS,以实现段间 调用.
例如: CALL DWOPRD PTR[SI]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -