在代码段中使用栈, 置换
0123 0456 0789 0abc 0def 0fed 0cba 0987
0987 0cba 0fed 0def 0abc 0789 0456 0123
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;定义16个空数据用于存放数据, 当作栈来使用
start:
mov ax,cs
mov ss,ax
mov sp,30h ;设置栈顶ss:sp指向cs:30
mov bx,0
mov cx,8
s:
push cs:[bx]
add bx,2
loop s ;将16个数据循环压栈
mov bx,0
mov cx,8
s0:
pop cs:[bx]
add bx,2
loop s0
mov ax,4c00h ;将16个数据循环出栈
int 21h
codesg ends
end start