汇编语言程序员

包含多个段的程序:在代码段中使用栈

2018-08-16  本文已影响30人  柠檬就是酸

问题:

利用栈,将程序中定义的数据逆序存放   

assume cs:codeseg

codeseg segment

    dw 0123H,0456H,0789H,0abcH,0defH,0fdeH,0cbaH,0987H

    ?

code ends

end

代码:

assume cs:codeseg

codeseg segment

        dw 0123H,0456H,0789H,0abcH,0defH,0fdeH,0cbaH,0987H
        dw 0,0,0,0,0,0,0,0      ;用dw来定义8个字型数据,在程序加载后,
                                ;将取得8个字的内存空间,存放这8个数据,在后面的
                                ;程序中,将这段空间作为栈来使用
start:  mov ax,cx
        mov ss,ax
        mov sp,32               ;设置栈顶指向cs:32
        mov bx,0
        mov cx,8
s:      push cs:[bx]
        add bx,2
        loop s                  ;以上代码将0~15单元中的数据依次压栈

        mov bx,0
        mov cx,8
s0:     pop cs:[bx]
        add bx,2
        loop s0                 ;以上代码将0~15单元中的数据依次出栈

codeseg ends

end start

代码分析:

上一篇下一篇

猜你喜欢

热点阅读