|
10鱼币
assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0bceh,0888h,0999h,0eeeh
dw 0,0,0,0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov bx,0
mov sp,32
mov cx,8
s: push cs:[bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop cs:[bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
如题,这个程序是把数倒过来存放,答案是正确的,但结果让我很不解,就是,为什么最后的16~32个字节单元中的数据会改变,明明没有修改操作啊
你是否使用了单步中断?
debug载入并运行程式时,下达t,p或g等指令时,会短暂的借主程式的栈以作暂存之用。比如 [保存] 主程式的cs,ip或flag等值。
这就是原因。
|
最佳答案
查看完整内容
你是否使用了单步中断?
debug载入并运行程式时,下达t,p或g等指令时,会短暂的借主程式的栈以作暂存之用。比如 [保存] 主程式的cs,ip或flag等值。
这就是原因。
|