读书人

小弟在王爽候遇到的一,

发布时间: 2012-09-05 15:19:35 作者: rapoo

小弟在王爽候碰到的一,大神指
文中利用行的逆序存放,容小弟一一道.

先代:
assume cs:codesg
codesg segment
dw 01h,02h,03h,04h,05h,06h,07h,08h
dw 0,0,0,0,0,0,0,0
start:
mov ax,cs
mov ss,ax
mov sp,32
mov cx,8
mov bx,0

s:push cs:[bx]
add bx,2
loop s

mov bx,0
mov cx,8
s1: pop cs:[bx]
add bx,2
loop s1

mov ax,4c00h
int 21h
codesg ends
end strat



[解决办法]
既然提示程序已经结束了,就不能在要求那程序原来内存中的数据还完好如初。要查看结果,可以运行到 mov ah,4ch 处再 d cs:0
另外,堆栈里的那些在 sp 之上的数据,是随时可能被栈操作给覆盖了的,也不能认为它们能保持住。栈的操作,不仅仅是自己程序里的 push/pop 类指令,还可能是各种中断如硬件中断、软中断的功能调用、调试中断等。
所以这样的题目,只要理解下它的思路就可以了,不能作为好是范例而加以引用效仿。

读书人网 >汇编语言

热点推荐