彙整自教材及課件。
硬指令 僞指令
彙編語言程序的開發
編譯 彙編 連接 調試
語句格式
標號 名字 標識符(大小寫不敏感)
保留字:
- 硬指令助記符
- 僞指令助記符
- 操作符:如
offset
ptr
- 寄存器名
- 預定義符號:如
@data
助記符
操作數:立即數、寄存器、存儲單元
參數:常數、變量名、表達式等
註釋
分隔符
程序格式
簡化段定義格式(MASM 6.x支持)
.model small
.stack
...
.data
...
.code
.startup
...
.exit 0
...
end
簡化段定義格式(MASM 5.x支持)
.model small
.stack
...
.data
...
.code
start: mov ax, @data
mov ds, ax
...
mov ax, 4c00h
int 21h
...
end
完整段定義格式
stack segment stack
dw 512 dup(?)
stack ends
data segment
...
data ends
code segment 'code'
assume cs:code, ds:data, ss:stack
start: mov ax, data
mov ds, ax
...
mov ax, 4c00h
int 21h
...
code ends
end start
開發過程
- 編譯:
edit.com
edit hello.asm
- 彙編:
ml.exe
ml /c hello.asm
或masm hello.asm
生成hello.obj
- 連接:
link.exe
link hello.obj
生成hello.exe
ml hello.asm
自動完成以上兩步。
ml /fl /sg hello.asm
還生成列表文件hello.lst
,含源程序和目標代碼。 - 調試:
debug.exe
debug hello.exe
參數 變量 標號
數值型參數:
- 常數
- 十進制常數:d結尾(可省略)
- 十六進制常數:q結尾
- 二進制常數:b結尾
- 八進制常數:q結尾
- 字符串常數:
'balabala'
- 符號常數
EQU
僞指令
符號名 equ 數值表達式/字符串
=
僞指令
符號名 = 數值表達式
- 數值表達式
- 算術運算符
- 邏輯運算符
- 移位運算符
- 關係運算符
- 高低運算符
變量定義僞指令:
變量名 僞指令助記符 初值表
- 初值表:數值常數、表達式、
?
、DUP
DUP
格式:重複次數 DUP(重複參數)
- 僞指令助記符:
DB
DW
DD
- …
本站所有文章除特別聲明外,均採用 CC BY-SA 4.0 協議 ,轉載請註明出處!