子程序的间接与直接长调用
发表:2023-08-29 12:05:41 阅读:89

间接调用

ICALL

操作:STACK←PC+1,SP←SP-2,PC(15:0)←Z(1 5:O)

机器码:1001 0101 0000 1001 ,周期:3

说明:间接调用由寄存器区中的Z(16位指针寄存器)指向的子程序。Z指针寄存器是16位宽,允许调用当前程序存储空间64K字(128 KB)内的子程序。

对状态标志位的影响:无

子程序间接与直接长调用

子程序直接长调用

CALL k 0≤k<64K(65536)

操作:STACK←PC+1,SP←SP-2,PC←k

机器码:1001 010k kkkk 111k kkkk kkkk kkkk kkkk ,周期:4

说明:在整个程序存储器区内调用子程序。返回地址(CALL指令后指令地址)将存储在堆栈中。

对状态标志位的影响:无

子程序间接与直接长调用

 

推荐您阅读:

比较相等跳行

寄存器位被清零与置位跳行

I/O寄存器位清零与置位跳行

子程序的调用-相对调用