mov sp,idata的时候修改内存问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:03:24
比如
mov ax,2000
mov ss,ax
mov sp,10
用T查看其执行的过程的时候
mov sp,10是紧跟着上一句执行了
但为什么这个执行的过程会修改这段栈空间的内容呢(2000:0~2000:f)
而且是将CS和IP的值放到了里面。
这个过程是怎么执行的?

第一个问题:
为什么mov sp,10紧跟着上一句执行了
这是CPU的一种机制,是为了防止/在/对栈指针初始化/之前/被打断的,所以在执行mov ss,***之后会立即执行下一条指令
第二个问题:
为什么会修改栈里面的内容
DEBUG是用CPU的陷阱【中断】(每执行一条指令就触发一次这个中断)实现单步中断的,不知道你学没学到中断
中断会把CS和IP的值弄到栈里,等你学了中断就明白了