汇编基础--标识符、标号、伪指令和指令

注:本文是以MASM的语法格式为基础的,大部分内容参考《Intel汇编语言程序设计 第五版》

 

1、标识符

  标识符是程序员自己定义的名字,用来标识变量、常量、过程或代码标号。创建标识符时要注意:

1)标识符可以包含1~247个字符;

2)标识符大小写不敏感(MASM默认不敏感);

3)标识符的第一个字符必须是字母、下划线、@、?或$,后续字符可以是数字;

4)标识符不能与汇编器的保留字相同。

  在汇编时,可以使用命令行的 -Cp选项来使所有关键字和标识符大小写敏感。

 

2、标号

  标号是充当指令或数据位置标记的标识符。放置在一条指令之前的标号表明了该指令的地址,类似的,房子在变量之前的标号表明了该变量的地址。

1)数据标号:

  数据标号标识了变量的地址,为在代码中引用该变量提供了方便,如:

count DWORD 100        ;定义了一个名为count的变量

2)代码标号:

  程序代码区中的标号必须以冒号(:)结尾。代码标号通常用作跳转和循环指令的目标地址,如:

loop:
    jmp loop            ;跳到loop处执行代码,这是一个死循环

  代码标号可以与指令在同一行也可以独自成一行。

 

3、伪指令

  伪指令是内嵌在程序源代码中,由汇编器识别并执行相应动作的命令。与真正的指令不同,伪指令在程序运行时并不执行。伪指令可用于定义变量、宏以及过程,可用于命名段以及执行许多其他与汇编器相关的簿记任务。MASM中伪指令大小写不敏感,.data和.DATA是等价的。每个汇编器都有一套不同的伪指令,例如,TASM以及NASM和MASM的伪指令有一个公共的交集,而GNU汇编器与MASM的伪指令几乎完全不同。

 

4、指令

  汇编语句中的指令是一条汇编语句。一条汇编指令包含四个基本部分:标号、指令助记符(操作码)、操作数(0个或多个)、注释。其中,标号和注释是可选的。

1)标号:见第2条;

2)指令助记符:用于辅助记忆,如 MOV、SUB等;

3)操作数:

4)注释:以分号(;)字符开始,分号后的内容为注释内容,汇编器会忽略同一行上分号后面所有的内容;

     另外:在 as86汇编中,也可以使用感叹号(!)作为注释标志;

        在 AT&T汇编中,使用井号 (#)作为注释标志。

 

posted @ 2018-07-25 23:43  tongye  阅读(8206)  评论(0编辑  收藏  举报