汇编语言源程序格式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 组成表达式的操作符有算术、逻辑、关
常用的操作符
• 算术操作符 • 逻辑与移位运算符 • 关系运算符 • 数值返回运算符 • 属性运算符
(1) 算术操作符
• 算术运算符包括:+、-、*、/、MOD(取余)。
• 运算符MOD是作除法操作,取余数,如10 MOD 3 = 1。
• 算术运算符可以用于数字表达式或地址表达式中。但 当它用于地址表达式时,只有当其结果有明确的物理 意义时才是有效的结果,例如,两个地址相乘或相除 是无意义的。在地址表达式中,可以用+或-,但也必 须注意其物理意义,例如把两个不同段的地址相加也 是无意义的。经常使用的方法是“地址±常量”来描 述指针的移动,例如,SUM+1是指SUM字节单元的 下一个字节单元的地址(注意:不是指SUM单元的 内容加1),而SUM-1则是指SUM字节单元的前一个 字节单元的地址。
• 类型属性:变量的类型属性定义该变量所保留的字节 数,如BYTE(1个字节长),WORD(2个字节长) ,DWORD(4个字节长)。这一点,将在数据定义伪 指令中说明。
• 在同一个程序中,同样的标号或变量的定义只允许出 现一次,否则汇编程序会指示出错。
2.操作码项
• 操作码项可以是指令、伪指令或宏指令的助记符。助记符 表示指令语句的功能,如INC、MOV等,其符号与意义是 由系统定义的,编程时必须照写不误,既不能多写,也不 能少写,如果指令带有前缀(如REP、REPE等),则指 令前缀和指令助记符要用空格分开。
2.1.1 汇编语言语句类型
• 汇编语言源程序由语句序列构成,汇编语言程序中的语句可以分为指 令语句、伪指令语句和宏指令语句三种。
• (1) 指令语句:对应于CPU指令系统中的一条机器指令,由CPU执 行,能完成一定操作功能,能够翻译成机器代码的语句。
• (2) 伪指令语句:无对应的机器指令,不由CPU执行,只为汇编程 序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码的语 句。
• 对于指令,汇编程序将其翻译为机器语言指令。对于伪指 令,汇编程序将根据其所要求的功能进行处理。对于宏指 令,则将根据其定义展开。在第5章中将会专门讨论。
3.操作数项
• 指令中的操作数用来指定参与操作的数 据。对于一般指令,可以有一个或两个 操作数,也可以没有操作数;对于伪指 令和宏指令,可以根据需要有多个操作 数。操作数多于一个时,各操作数之间 用逗号分开。
• (1) 标号
• 标号在代码段中定义,也可以用EQU或 LABEL伪指令来定义,标号与其所代表 的指令之间用冒号分开,用来代表一条 指令所在单元的地址。标号也可以作为 过程名定义。标号经常在转移指令的操 作数字段出现,用以表示转向的目标地 址。标号在命名时,应尽量取有意义的 字符,以便程序的阅读和理解。
• 标号有3种属性:段属性、偏移属性和类型属性。
• 段属性:标号所代表指令单元的段起始地址,此值必 须在一个段寄存器中,而标号的段则总是在CS寄存器 中。
• 偏移属性:标号所代表指令单元的段内偏移地址,标 号的偏移地址是从段起始地址到定义标号的位置之间 的字节数。对于16位段是16位无符号数。
• 类型属性:用来指出标号是在本段内引用还是在其他 段中引用的。如是在段内引用的,则称为NEAR,转 移源和转移目标在同一个代码段中,转移时,只改变 IP值,不改变CS值;如在段外引用,则称为FAR,转 移源和转移目标在不同的代码段中,转移时,既改变 IP值,又改变CS值。
。 • 操作数项由一个或多个表达式组成,它提供为执行所要求的操作而需
要的信息。 • 注释项用来说明程序或语句的功能。“;”为识别注释项的开始。 • 带方括号的项是可选项,需要根据具体情况而定。 • 汇编语言源程序中的每条语句一般占一行,各项之间必须用空格或制
表符作为分隔符,操作数之间用逗号分隔。
• 1.名字项 • 名字是用户按照一定规则定义的标识符,可由下列符号组成: • 字母 A~Z、a~z • 数字 0~9 • 特殊字符 ?、.、@、_、$ • 数字不能作名字项的第一个字符。而圆点仅能用作第一个字符,
• 操作数可以是常数、寄存器、标号、变 量或由表达式组成。在这里,将专门对 表达式加以说明。表达式是常数、标号 、变量、寄存器与一些操作符相组合的 序列,可以有数字表达式和地址表达式 两种。数字表达式由汇编程序根据优先 级规则计算得到一个常数值。地址表达 式由汇编程序计算得到一个地址或一个 常数值(地址间的距离长度)。
第2章 汇编语言程序格式
• 2.1 汇编语言语句格式 • 2.2 伪指令 • 2.3 汇编语言源程序基本框架
2.1 汇编语言语句格式
• 同其他程序设计语言一样,汇编语言的翻 译器(汇编程序)对源程序有严格的格式 要求。这样,汇编程序才能确切翻译源程 序,形成功能等价的机器指令(目标代码 ),连接后能直接运行。汇编语言程序格 式就是汇编语言必须遵循的语法规则。
• 段属性:变量所代表数据单元的段起始地址,此值必 须在一个段寄存器中(DS、ES或SS中)。
• 偏移属性:变量所代表数据单元的段内偏移地址,变 量的偏移地址是从段的起始地址到定义变量的位置之 间的字节数。对于16位段是16位无符号数。在当前段 内给出变量的偏移值等于当前地址计数器的值,当前 地址计数器的值可以用$来表示。
• (2) 变量

变量在除代码段以外的其它段中定
义,后面不跟冒号。它也可以用EQU或
LABEL伪指令来定义。变量是一个可以
存放数据的存储单元的名字,即存放数
据的存储单元的地址符号名。变量用DB 、DW、DD定义,此时变量名仅表示该
数据区或存储区的第一个数据单元的首
地址。变量经常在操作数字段出现。
ቤተ መጻሕፍቲ ባይዱ
• 变量也有3种属性:段属性、偏移属性和类型属性。
可以用很多字符来说明名字,但只有前面的31个字符能被汇编程 序所识别。为了便于记忆,名字的定义应该能够见名知义,如用 BUFFER表示缓冲区、SUM表示累加和等。
• 名字有两种形式:标号或变量。指令语句中的名字通常用标号表 示,而伪指令语句中的名字通常用变量名、段名和过程名表示, 多数情况下用变量名表示。
• (3) 宏指令语句:就是由若干条指令语句形成的语句,一条宏指令语 句的功能相当于若干条指令语句的功能,详见第5章。
2.1.2 汇编语言语句格式
• 汇编语言源程序中的每个语句可以由4项组成,格式如下: • [名字:] 操作码 [操作数[,操作数]] [;注释] • 其中,名字项是一个符号项。 • 操作码项是一个操作码的助记符,它可以是指令、伪指令或宏指令名
相关文档
最新文档