組合語言入門:源程式(一)
阿新 • • 發佈:2019-01-04
一鼓作氣……馬上就可以用匯編開始寫一個完整的程式了
之前學的都是所謂的“彙編指令”
彙編源程式
彙編源程式 = 彙編指令 + 偽指令
偽指令:segment
和ends
是一對成對使用的偽指令,這是寫在可被編譯器編譯的彙編程式時,必須要用到的一對偽指令
segment
和ends
的功能時定義一個段,segment
說明一個段的開始,`ends
說明一個段的結束`
一個段必須用一個名稱來標識,使用格式為:
段名 segment
段名 ends
一個彙編程式是由多個段組成的,這些段被用來存放程式碼、資料、或當作棧空間來使用
一個有意義的彙編程式至少有一個程式段
end
偽指令是彙編程式的結束標誌;編譯器在編譯源程式的過程中,如果碰到了偽指令end
,就結束對源程式的編譯
如果程式寫完了但是沒有在結尾加上偽指令end
,編譯器就無法獲悉程式在何處結束(程式永遠的停留在記憶體中……)
assume
偽指令的含義是“假設”;它假設某一段暫存器和程式中的某一個segment..end
定義的段相關聯
通過assume
說明這種關聯,在需要的時候編譯程式可以將段暫存器和某一個具體的段相關聯
一個簡單的彙編源程式:
assume CS: codesg ;命名CS的名稱為codesg
codesg segment
start: mov AX, 01234
mov BX, 04567
add AX, BX
add AX, AX
mov AX, 4C00H
int 21H
codesg ends
end
源程式編譯成程式
彙編源程式:分為偽指令(編譯器處理)和彙編指令(編譯為機器碼)
程式:源程式中最終由計算機執行、處理的指令或資料
程式最先以組合語言的形式存在於源程式中,經編譯、連線後轉變為機器碼,儲存可執行檔案中