汇编语言 在代码段中使用栈
程序思路:
程序运行时,将定义的数据存放在cs:0~cs:f单元中,共八个字单元。依次将这八个字单元中的数据入栈,然后一次出栈到这八个单元中,从而实现数据的逆序存放。问题是,我们首先要有一段可当作栈的内存空间。如前所述,这段空间应由系统分配。可以在程序通过定义数据来获取一段空间,然后将这段空间当作栈使用。程序如下:
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 ;用dw定义16个字型数据,在程序加载后,将取得16个字的 ;内存空间,存放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;将以上代码段0~15单元中的八个字型数据一次入栈 mov bx,0 mov cx,8 s0:pop cs:[bx] add bx,2 loop s0;以上依次出栈8个字型数据到代码段0-15单元 mov ax,4c00h int 21h codesg ends end start;指明程序的入口出在start处


浙公网安备 33010602011771号