汇编语言程序格式

来源:互联网 发布:大数据论文3000字 编辑:程序博客网 时间:2024/06/08 18:14

汇编语言源程序中的每个语句可以由四项组成,格式如下:
   [name] operation operand [ ;comment]
其中:
  名字项(name)是指一个标号或变量。

  操作项(operation)是一个操作码的助记符,它可以是指令、伪指令或宏指令名。

  操作数项(operand)由一个或多个表达式组成,它提供为执行所要求的操作而需要的信息。操作数项可以是常数、寄存器、标号、变量或由表达式组成。

  注释项(comment)用来说明程序或语句的功能。";"为识别注释项的开始。";"也可以从一行的第一个字符开始,此时整行都是注释,常用来说明下面一段程序的功能。

4.3.1 名字项
源程序中用下列字符来表示名字:
字母A~Z
数字0~9
专用字符 ?、·、@ 、-、$

4.3.2 操作项
操作项可以是指令、伪指令或宏指令的助记符。
对于指令,汇编程序将其翻译为机器语言指令。对于伪指令,汇编程序将根据其所要求的功能进行处理。对于宏指令,则将根据其定义展开。宏指令在第七章中将会专门论述。

4.3.3操数作项 
操作数项由一个或多个表达式组成,多个操作数项之间一般用逗号分开。
对于指令,操作数项一般给出操作数地址,它们可能有一个,或二个,或三个,或一个也没有。对于伪操作或宏指令,则给出它们所要求的参数。
操作数项可以是常数、寄存器、标号、变量或由表达式组成。

一.算术操作符
算术操作符有+、—、*、/ 和MOD。
例:MOV DX,BLOCK+(6-1)*2
二.逻辑与移位操作符
逻辑操作符有:AND(与)、OR(或)、XOR(异或)、NOT(非)。移位操作符有SHL和SHR。
例:AND DX,PORT_VAL AND 0FEH
三.关系操作符
关系操作符有:EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)。
关系操作符的两个操作数必须都是数字或是同一段内的两个存储器地址。计算的结果应为逻辑值:结果为真,表示为0FFFFH;结果为假,则表示为0。
例:MOV BX,((PORT_VAL LT 5) AND 20) OR ((PORT_VAL GE 5) AND 30)
四.数值回送(Value_returning)操作符
数值回送操作符有:TYPE、LENGTH、SIZE、OFFSET、SEG等。
数值操作符把一些特征或存储器地址的一部分作为数值回送。

 操作符 格式 用法 例
FEES DW 100 DUP(0)
TYPE
类型属性
TYPE expression回送代表该标号类型的数值.
DB为1,DW为2,DD为4,DF为6,DQ为8,
DT为10;NEAR为-1,FAR为-2;常数为0
ADD SI,TYPE FEES
汇编后为ADD SI,2
LENGTH
长度属性
LENGTH Variable对于DUP回送分配给该变量的单元数
对于其他情况则送1 
MOV CX,LENGTH FEES
汇编后为MOV CX,100
SIZE
大小属性
SIZE Vatiable回送分配给该变量的字节数
此值是LENGTH值和TYPE值的乘积
MOV CX,SIZE FEES
汇编后为MOV CX,200
OFFSETOFFSET Variable或label回送变量或标号的偏移地址MOV BX,OFFSET OPRESEGSEG Variable或lable回送变量或标号的段地址值MOV BX,SEG OPRE
五.属性操作符
操作符格式用法PTRtype PTR expression来给已分配的存储地址(用符号地址表示)赋予另一种
属性,使该地址具有另一种类型。
  MOV BYTE PTR [BX],5段操作符 段寄存器∶地址表达式
 段名∶地址表达式
 组名∶地址表达式
用来表示一个标量、变量或地址表达式的段属性。  MOV AX,ES:[BX+SI]SHORT
用来修饰JMP指令中转向地址的属性,指出转向地址
是在下一条指令地址的±127个字节范围之内。
  JMP SHORT TAGTHISTHIS attribute或type可以象PTR一样建立一个指定类型(BYTE、WORD、
DWORD)或指定距离(NEAR或FAR)的地址操作数。
该操作数的段地址和偏移地址与下一个存储单元地址相同。
  START EQU THIS FAR
  MOV CX, 100
这样,MOV指令有一个FAR属性的符号地址START,这就允许其他段的JMP指令直接跳转到START来。
HIGH

LOW

称为字节分离操作符,它接收一个数或地址表达式,
HIGH取其高位字节,LOW取其低位字节。
  CONST EQU 0ABCDH
  MOV AH, HIGH CONST
汇编成 MOV AH, 0ABH
  MOV AH, LOW CONST
汇编成 MOV AH, 0CDH
HIGHWORD
和LOWWORD

称为字节分离操作符,它接收一个数或地址表达式,HIGHWORD取其高位字节,LOWWORD取其低位字节。
操作符的优先级别:(操作符的优先级别从高到低排列如下)
  1. 在圆括号中的项,方括号中的项,结构变量(变量,字段。),然后是LENGTHSIZEWIDTHMASK
  2. 名:(段取代)。
  3. PTROFFSETSEGTYPETHIS及段操作符。
  4. HIGHLOW
  5. 乘法和除法:*/MOD
  6. 加法和减法:+-
  7. 关系操作:EQNELTLEGTGE
  8. 逻辑:NOT
  9. 逻辑:AND
  10. 逻辑:ORXOR
  11. SHORT
4.3.4注释项
用来说明程序或语句的功能。";"为识别注释项的开始。";"也可以从一行的第一个字符开始,此时整行都是注释,常用来说明下面一段程序的功能。
完整段定义格式
汇编语言程序格式 - yameing - Ya......草地

简化段定义格式
汇编语言程序格式 - yameing - Ya......草地
原创粉丝点击