你比我更懂 发表于 2012-10-21 19:43:55

检测点10.4求助


callax   (ip=5 push ip   跳到1000:6)这个时候的sp 是什么情况呢
movbp,sp         这里的sp不知道是多少
addax,      ax=6+
【bp】=5 这里不知道怎么回事
有没有详解谢谢了


敉沧 发表于 2012-10-22 07:58:37

这个和bp/sp的具体值没关系。重点是考你call的执行过程。
我们可以设初始化sp=0。
那么,call后,(ss:sp)=(ip)=5
(ss:sp+2)=(cs)=1000h
下面的指令,
add ax,
也就是6+5=11。

luffy 发表于 2012-10-22 11:54:46

在call指令执行时,
首先将下一句的地址压栈,所以栈指针所指向的内存地址中的值是 =5
然后修改ip的值为6,
执行之后直接跳到 mov bp, sp
执行mov bp, sp 后,bp和 sp所指向的地址是一致的,所以和的值都是5
然后add ax,
ax的值自然就是11
页: [1]
查看完整版本: 检测点10.4求助