微型计算机技术及应用第04章.ppt
文本预览下载声明
微机原理与接口技术 通信工程教研室 李宝平 Libaoping@hpu.edu.cn 汇编程序(翻译程序) 4.1.2 汇编语言源程序格式 操作码可以是指令、伪指令或宏指令的助记符。对于指令,汇编程序将其翻译成机器语言指令。 对于伪操作,汇编程序根据其功能进行处理。对于宏指令,则将根据其定义展开,转换成对应的代码。 3.变量 变量——即内存中的存储单元或数据区。 变量名——是存储单元(数据区)的符号地址 或 名字。 变量也有三个属性: 段地址—变量所在段的段地址 偏移量—变量单元地址与段首地址之间的位移量。 类 型—有BYTE、WORD 、DWORD三种之一。 变量在程序中作为存储器操作数被引用。 4.表达式 表达式是常数、寄存器、标号、变量与运算符的组合。 有数字表达式和地址表达式两种。 汇编时按优先规则对表达式进行计算,计算出具体的数值或地址。运行时不能改变。 表达式中的运算符有6类:算术、逻辑、关系、取地址、属性、杂类。 1)算术运算符—— +、-、*、/,MOD 2)逻辑运算符—— AND、OR、XOR、NOT 移位运算符——SHL、SHR 3)关系运算符——EQ、NE、LT、GT、LE、GE 4)数值回送操作符 取值运算符——TYPE、LENGTH、SIZE 5)属性操作符 —PTR,SHORT,THIS,HIGH,LOW,HIGHWORD,LOWWORD PTR 用来指定地址操作数的类型。 格式:类型 PTR 地址操作数 类型∈{BYTE, WORD, DWORD和 NEAR, FAR ,SHORT} BYTE、WORD、DWORD 用于描述数据存储单元(变量)地址 NEAR、FAR (SHORT ?) 用于描述转移、调用的目的地址 SHORT: 用来修饰JMP指令中转向地址的属性,指出转向地址是在下一条指令地址的-128~+127个字节范围之内。 THIS: 格式为: THIS attribute 或 type 它可以象PTR一样建立一个指定类型(BYTE、WORD或DWORD)的或指定距离(NEAR或FAR)的地址操作数。该操作数的段地址和偏移地址与下一个存储单元地址相同。 例如: FIRST_TYPE EQU THIS BYTE WORD_TABLE DW 100 DUP(?) 又如: START EQU THIS FAR MOV CX,l00 MOV指令有一个FAR属性的地址START,这就允许其它段的JMP指令直接跳转到START来。 HIGH和LOW; HIGHWORD 和LOWWORD 称为字节分离操作符字节。它接收一个数或地址表达式,HIGH取其高位字节,LOW取其低位字节。 CONST EQU 0ABCDH MOV AH, HIGH CONST 则汇编完成 MOV AH, 0ABH 6)注释项 注释项用来说明一段程序或一条或几条指令的功能,它是可有可无的。但是,对于汇编语言程序来说,注释项的作用是很明显的,它可以使程序易于被读懂,因此,编制程序必须写好注释。 四、 伪指令与伪操作 数据定义 伪指令 符号定义 伪指令 段定义和段寄存器指定伪指令 过程定义 伪指令 结束 伪指令 例:FIVE EQU 5 COUNT EQU CX TEN EQU 10 DIST = BYTE PTR[SI+BP] GOTO = JMP … MOV AX, TEN MOV CX, COUNT ADD DIST, FIVE DIST = WORD PTR[SI+BP+1] ADD DIST, AX GOTO LABEL (2)数据定义伪指令 用于定义变量,即内存单元或数据区。数据定义伪指令的格式为: 变量名 数据定义伪指令 操作数,操作数,… 常用的数据定义伪指令有如下几种: DB 定义字节 DW 定义字 DD 定义双字 操作数可以是常数、变量或表达式 例2:操作数可以是字符串,例如 STR DB ‘HELLO’ 汇编后的情况如图: 操作数?用来保留存储空间,但不存入数据. 例3:ABC
显示全部