assume cs:code, ds:data, ss:stack data segment dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h; 用來作存放資料 data ends stack segment dw 0, 0, 0, 0, 0, 0, 0, 0; 用來作棧的空間 stack ends code segment start: ; 設定資料段 mov ax, data mov ds, ax ; 設定棧段 mov ax, stack mov ss, ax mov sp, 32; 只要不是32,程式就能正常執行 ; 將8個字都壓入棧 mov bx, 0 mov cx, 8 s: push [bx]; add bx, 2 loop s ; 將8個字都彈出棧 mov bx, 0 mov cx, 8 s0: pop [bx] add bx, 2 loop s0 mov ax, 4c00h int 21h code ends end start
初始情況
執行完 mov ss, ax後
對比圖