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

      

posted @ 2011-04-10 18:09  十三  阅读(976)  评论(0编辑  收藏  举报