王爽汇编语言 监测点10.5,好难理解
为什么(ds:)=11h?执行call word ptr ds:后,为什么是往下直接执行inc ax???
{:5_90:} 只学到第3章的我建议你反汇编看一下把 ryan0632 发表于 2013-12-28 22:29 static/image/common/back.gif
你的推算是怎么来的?
执行call word ptr ds:后,我就不知道ds:中的值为多少,图片上推算的那个是答案.我没看明白 这个问题不难理解,我第一次做这题也没有遇到什么难处,首先我们要清楚的是代码中的栈段也是数据段,两段合一了。当执行CALL WORD PTRDS:时,IP(IP=INC AX)这条指令的偏移地址压进栈中的SS:处,然后,转移到DS:处执行指令,因为,SS:=DS:=压进栈的IP=要转移的目标IP,所以是执行inc ax call far ptr 才会把cs也入栈吧
执行call word ptr
相当于
1. push ip
2.jmp XXX
0eh正好指着栈中刚入栈的ip,然后jmp到这个ip 相当于没有跳转一样
页:
[1]