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 ;數據在這裏結束
微機原理中如何利用棧,將程序中定義的數據逆序存放
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.