微機原理中如何利用棧,將程序中定義的數據逆序存放

code segment
        		 dw 0123H,0456H,0789H,0ABCH,0DEFH,0CBAH,0987H  			;自己定義的數據
        	     dw 0,0,0,0,0,0,0,0
        		 dw 0,0,0,0,0,0,0,0							;32個字節當作我們自己安排的棧空間
start:																;數據從這裏開始
        		 mov ax,cs  		;將cs寄存器的數據送給ax
        		 mov ss,ax			;再將ax的數據送給棧段
        		 mov sp,48 		    ;棧指針寄存器設置爲48,是因爲自定義的0數據就有32個,再加上初始數據16個,一共48
        		 mov bx,0			;偏移地址爲0
        		 mov cx,8			;循環8次
pushData:   	 
        		 push cs:[bx]		;push入棧指令
        		 add bx,2 			;bx的值每次加2
        		 loop pushData   	;loop 循環指令
popData: 		 pop cs:[bx]		;出棧指令	
        		 add bx,2
        		 loop popData
        		 
        		 mov ax,4C00H
        		 int 21H 		;默認
end start			;數據在這裏結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章