S_18 发表于 2013-7-29 16:42:32

出去玩了两天 一回来就碰到问题了!

本帖最后由 S_18 于 2013-7-29 17:40 编辑

汇编语言 检测点10.2 那个没看明白 AX为什么是6?不是=3吗?
下面的程序执行后,ax中的数值为多少?内存地址    机器码      汇编指令   执行后情况1000:0   b8 00 00   mov ax,0   ax=0 ip指向1000:31000:3   e8 01 00   call s       pop ip ip指向1000:71000:6   40         inc ax1000:7   58         s:pop ax       ax=6

SilverMagic 发表于 2013-7-29 16:42:33

欠你的幸福 发表于 2013-7-29 18:14:59

汗,,我打就没打进去,, 

Dardy 发表于 2013-7-29 18:26:49

1000:3   e8 01 00   call s      跳过去执行完后就返回到下句inc执行,又不是要返回到本句再执行,当然要保存的是下句的偏移地址了。
1000:6   40         inc ax
1000:7   58         s:pop ax      

S_18 发表于 2013-7-29 19:23:54

本帖最后由 S_18 于 2013-7-29 19:34 编辑

Dardy 发表于 2013-7-29 18:26 static/image/common/back.gif
1000:3   e8 01 00   call s      跳过去执行完后就返回到下句inc执行,又不是要返回到本句再执行,当然 ...
还是有点不懂 是跳过去啊。 额太蠢 给我讲一下整个流程好吗?

dAb 发表于 2013-7-29 19:56:50

这个你单步跑一次就明白了。。别人讲得再细,都不如你自己走一篇程序来得深刻

S_18 发表于 2013-7-29 20:19:07

SilverMagic 发表于 2013-7-29 20:14 static/image/common/back.gif
楼主弄错了一点,call压入的不是当前指令地址,而是call后面下条指令的地址哦~
内存地址    机器码      ...

哈哈 我喜欢你的头像,但是为什么是PUSH IP=6啊。

SilverMagic 发表于 2013-7-29 20:20:22

S_18 发表于 2013-7-29 20:22:58

SilverMagic 发表于 2013-7-29 20:20 static/image/common/back.gif
1000:6   inc ax
因为call要压入下条指令的地址,而inc ax的地址是CS:IP == 1000:6,所以你懂的~

喔!知道了!但是 还有检测点10.3

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

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

1000:3    9a 09 00 00 10    call far ptr s   pop cs,pop ip,ip指向1000:9

1000:8    40                inc ax

1000:9    58                s:pop ax         ax=8h

                            add ax,ax          ax=10h

                            pop bx             bx=1000h

                            add ax,bx          ax=1010h
add ax,ax 怎么是10H?

565123 发表于 2013-7-29 20:28:21

8H+8H=10H
8+8=16
16的16进制表示法就是10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 8 9 A   B   C   DEF   10

S_18 发表于 2013-7-29 20:34:21

565123 发表于 2013-7-29 20:28 static/image/common/back.gif
8H+8H=10H
8+8=16
16的16进制表示法就是10


恩 会了。谢谢

SilverMagic 发表于 2013-7-29 20:39:49

低手莫怪 发表于 2017-2-21 21:05:08

那个答案写着ip=7,搞得我奇怪了这么久
页: [1]
查看完整版本: 出去玩了两天 一回来就碰到问题了!