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,0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,20h
mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s: push [bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop [bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
需要注意的是在上數程式中,段名相當於乙個代表了段位址的常數,所以「mov ax,data」的含義就是將段位址賦給ax,這又是因為段暫存器不能直接接受常熟,只能將常熟通過暫存器來傳給段暫存器。這裡的data,stack,code只是乙個名稱不是唯一的,也可以寫為a,b,c。如:
assume cs:code,ds:data,ss:stack
a segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
a ends
b segment
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
b ends
c segment
start: mov ax,b
mov ss,ax
mov sp,20h
mov ax,a
mov ds,ax
mov bx,0
mov cx,8
s: push [bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop [bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
c ends
end start
組合語言學習筆記2
組合語言學習筆記2 暫存器 乙個cpu是由運算器,控制器,暫存器等期間組成,這些器件是有內部匯流排連線的。運算器進行運算 資訊處理 暫存器進行資訊儲存的,控制器進行控制各種期間的工作。程式設計師對cpu的控制就是通過指令改變暫存器中的儲存資訊進行間接地控制cpu的。當然不同的cpu,暫存器的結構個數...
組合語言學習筆記(2)
1 彙編指令 機器碼的助記符,有對應的機器碼 2 偽指令 沒有對應的機器碼,由編譯器執行,計算機並不執行 3 其他符號 由編譯器識別,沒有對應的機器碼 指令和資料是應用上的概念。在記憶體或磁碟上,指令和資料沒有任何區別,都是二進位制資訊。cpu要想進行資料讀寫,必須和外部器件進行下面三類資訊互動 匯...
組合語言學習 2 程式
乙個簡單的程式 乙個源程式從寫出到執行的過程 程式 包含彙編指令和偽指令 彙編指令 組成由計算機執行的程式 1 偽指令 由編譯器來處理 1 段名 segment 段名 ends 定義 段 2 end 匯程式設計序的結束標誌 3 assume 假設,將段名和段暫存器關聯 assume cs codes...