由于工作原因有時要在幾種彙編格式之間切換,特記錄一下幾種彙編格式,以便自已能快速"恢複"記憶,這裡隻是描述一下基本的格式說明.
一.MASM
1. 基本格式為: [标号:] 指令助記符 [DST [,SRC]] [;注釋]
2. 資料定義指令: DB 1 byte
DW 2 byte
DD 4 byte
DT 8 byte
DQ 10 byte
3.操作符PTR 指明要通路的存儲器操作數類型, 格式為:類型 PTR 位址表達式
如 MOV WORD PTR [SL],1
類型可以是byte,word,dword,near,far
二.NASM
總體格式和MASM差不多,做了更好的簡化,個人最喜歡.
1.不放[]括号來的标号和變量名被認為是位址, []起來表示其内容
2.符号$ 和$$
$ 表示目前行彙編後的偏移位址
$$ 表法目前section彙編後的偏移位址
一個慣用法就是$-$$ 表示目前行距離目前section的相對偏移
三.AT&T
在立即數前加$,在寄存器前加%
源操作數與目标操作數與MASM相反
備注: 微軟c/c++編譯器生成彙編代碼參數 cl file.c -Fa
GCC 生成彙編代碼參數 gcc -S file.c
