- 存入cs,ip的顺序
- 存入ip的值
要弄清这两点,就必须先清楚cpu如何执行call指令
1. cpu读入指令call xxxx
2. ip自增到下一条指令
3. 向ss:sp中依次存入(cs),ip
4. 改变(cs),ip的值,跳转
所以,存入的ip是指向下一条指令的
exampl
—(来源:<<汇编语言(第三版)>>–王爽,p193,检测点10.3)
下面程序执行后,ax中的数值为多少?
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 9a 09 00 00 10 call far ptr s ;**将1000:0008存入ss:sp(sp先自增2)中(此时ss:sp中的值为08 00 00 10)并跳转到1000:0009**
1000:8 40 inc ax
1000:9 58 s:pop ax
add ax,ax
pop bx
add ax,bx
以这道题为例,最后答案是ax=1010h