文行知 发表于 2014-1-19 18:35:00

问一个关于单步中断压栈的问题

如题,当sp还没赋值,或者sp=0时,用debug单步中断,它的标志寄存器和cs,ip压栈压到什么位置?

无名侠 发表于 2014-1-19 20:29:15

我测试的时候把ss也设置成了:0
嘿嘿!你可以用d fff:0 10 这段内存区域找找,反正就在这个附近!
以前在书上看过,比如命令CPU在一个0.5M的内存上读取FFFF(物理地址)的一个字节数据,这显然是不可能的,因为不存在嘛!8086CPU是怎么处理的?貌似是用:地址(大于最大地址)-最大地址+0(从内存的第一个字节算)
根据这个原理,也可以推测,CS和IP被压栈到了顶端!测试代码:
mov AX,0
mov ss,AX
mov sp,0
xor ax,ax //已下代码纯属用来测试,不要也可以!
xor ax,ax
呵呵,你用A命令一跳一跳输入试试!



文行知 发表于 2014-2-1 20:04:04

无名侠 发表于 2014-1-19 20:29 static/image/common/back.gif
我测试的时候把ss也设置成了:0
嘿嘿!你可以用d fff:0 10 这段内存区域找找,反正就在这个附近!
以前在 ...

谢谢回答,前几天没上论坛还以为没人答呢。我试了下ss为0的,检测如你所说。但当ss换为1000时,照理来说不是应该在1fff:0 10 附近吗?结果没有我又试了试fff:0 10也没有,这是咋回事?

无名侠 发表于 2014-2-3 11:00:36

文行知 发表于 2014-2-1 20:04 static/image/common/back.gif
谢谢回答,前几天没上论坛还以为没人答呢。我试了下ss为0的,检测如你所说。但当ss换为1000时,照理来说不 ...

具体的你可以去百度查一下 A20地址线。
页: [1]
查看完整版本: 问一个关于单步中断压栈的问题