天天看點

MASM,NASM和AT&T彙編格式備注

       由于工作原因有時要在幾種彙編格式之間切換,特記錄一下幾種彙編格式,以便自已能快速"恢複"記憶,這裡隻是描述一下基本的格式說明.

一.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

      

MASM,NASM和AT&T彙編格式備注