一只猪 发表于 2020-6-9 00:29:02

特别简单的题,求大佬看看555

本帖最后由 一只猪 于 2020-6-10 09:17 编辑

当我输入
mov ax,1000
mov ss,ax
mov sp,2
mov ax,1234
push ax
的时候,运行之后我用 d 1000:0能够查看到我确实在这里写入1234了但是!
如果我把 mov sp,2改成 mov sp,1
却无论如何也找不到我把1234写到了哪里
我觉得理论上我应该写到了0ffff和10000这里了呀
我用d 0fff:f却查不到,用 d 0fff:c也是
为啥呀,好苦恼

一只猪 发表于 2020-6-10 09:33:22

我明白了,一个栈的偏移地址不能这么变不能这么用。。。。

yjcoke 发表于 2020-6-11 09:44:12

他写到了1000:ffff处

xie1234abc 发表于 2020-6-12 13:12:55

栈的地址是下面这样的:
……
1000:FFFD
1000:FFFE
1000:FFFF
1000:0000
1000:0001
1000:0002
……
所以,改成mov sp,1后,1000:FFFF存的是34,1000:0000存的是12。
希望采纳!

405794672 发表于 2020-6-15 17:04:15

SS决定了栈的区域。SP到顶会走回栈底。栈区为1000:0到1000:ffff。所以0fff:f还没到栈的位置,所以你看不到
页: [1]
查看完整版本: 特别简单的题,求大佬看看555