在代码段中使用栈, 置换
0123 0456 0789 0abc 0def 0fed 0cba 0987
0987 0cba 0fed 0def 0abc 0789 0456 0123
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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 |
置换前
置换后
转载请注明:exchen's blog » 16位汇编 在代码段中使用栈