利用栈,将程序中定义的数据逆序存放(0123H,0456H,…)
通过前面文章的介绍,寄存器的栈顶地址由ss和sp两个寄存器的值组合。
assume cs:code
code segment
dw 0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987H
dw 0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov sp,48
mov bx,0
mov cx,8
pushdata: push cs:[bx]
add bx,2
loop pushdata
mov bx,0
mov cx,8
popdata: pop cs:[bx]
add bx,2
loop popdata
mov ax,4C00H
int 21H
code ends
end start ;指令结束的地方
结果:
从结果可以看出,将结果逆序了。