1.
先看源程序:
assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
start :mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:[0eH]
inc ax
inc ax
inc ax
code ends
end start
分析:
其实,这题 它的 栈段地址SS 和 数据段地址DS 他们的值都是一样的,说白了都在同一段内
当执行到 call word ptr ds:[0eH]的时候,首先是将 inc ax的IP地址0011入栈,那么此时的(SP)=(sp)-2也就是【0eH】,此时【0eH】处得值也就是inc ax 的IP地址0011,所以执行完call word ptr ds:[0eH]以后直接转移到下面地址处继续执行。
2.
10.5(2)的原理与这个是一样的~~只是多压入了cs~