鲁哥学汇编 发表于 2012-12-31 23:07:50

检测点10.4的问题 求大神指教

下面的程序执行后,ax中的数值为多少?

内存地址   机器码      汇编指令       执行后情况

1000:0   b8 06 00      mov ax,6       ax=6,ip指向1000:3

1000:3   ff d0         call ax      pop ip,ip指向1000:6

1000:5   40            inc ax

1000:6   58            mov bp,sp      bp=sp=fffeh

                         add ax,    ax==6+5=0bh


为什么SP为fffe   刚开始的时候SP是指向哪里的      还有为什么AX等于0b   求大神指教

网络学习 发表于 2013-1-1 00:23:05

楼主的帖子怎么样?赶紧试试这里的快速回复给楼主点评论吧求大神指教

淡雅夏伤 发表于 2013-1-1 08:31:19

...   菜鸟路过..

mmvv114 发表于 2013-1-2 16:29:38

是push ip……这让我怎么说你呢?:L

物极必反 发表于 2013-1-2 16:39:30

首先/因为没有设置栈,所以sp刚开始为0,压入ip的值后,变为fffe的/
而且这不重要,call ax 相当于 push ip(虽然没有这个指令),jmp ax/
然后ax为6,再加上栈中的值5(读取一条指令后,ip加上指令字节数),就是0bh了

鲁哥学汇编 发表于 2013-1-2 19:15:30

物极必反 发表于 2013-1-2 16:39 static/image/common/back.gif
首先/因为没有设置栈,所以sp刚开始为0,压入ip的值后,变为fffe的/
而且这不重要,call ax 相当于 push i ...

哦 原来是这样懂了
页: [1]
查看完整版本: 检测点10.4的问题 求大神指教