第7章 汇编语言及汇编程序2013.10
第七章 汇编语言及汇编程序 主要内容(7.1-7.5): 符号指令中的表达式 符号指令的寻址方式 常用指令 常用伪指令 常用DOS系统功能调用应用举例 绪言 机器语言:机器能识别并执行,称目标程序,是二进制码。 汇编语言:用指令助记符、符号地址、标号等书写的语言。 汇编语言源程序:用汇编语言编写的程序。 汇编:汇编语言源程序 ?目标程序 汇编语言特点: (1)用助记符表示指令所执行的操作; (2)在操作数中使用符号。 (3)有三类基本指令:符号指令、伪指令和宏指令。 汇编语言是一种面向机器的符号语言。要想在计算机上运行汇编语言程序,必须首先对源程序进行汇编和连接。下图表示了对汇编语言源程序的汇编、连接和装入运行过程。简述如下: 7.1 符号指令中的表达式 1.常量:(1) 数字常量:有B、O、D、H、实数类型及ASCII码,对H型,凡是以字母A-F为起始的一个十六进制数,必须在前面冠以数字“0”,否则汇编程序认作标识符。 (2)符号常量:由伪指令EQU或“=”定义。如:P EQU 314 或P=314 常量作用: (1)指令语句中源操作数中作立即数。 例: MOV AX, 0A5F1H (2) 在指令语句的基址加变址的寻址方式中作位移量。例:MOV BX, [SI+32H] (3)在数据定义伪指令中。例:DB 12H 2. 数值表达式 由常量和算术(+、-、 /、MOD)、逻辑(AND、OR、XOR、NOT)和关系(EQ、NE、LT、GT、LE、GE)3类运算符组成的表达式称为数值表达式。 7.1.2 标号 标号是指令地址的符号表示,也可以是过程名。过程名是入口地址的符号表示,即过程的第一条指令的地址。 标号定义方式: (1)用冒号“:”定义,直接写在指令助记符前。 CYCLE: MOV AL,[SI] (2) 用PROC和ENDP伪指令定义过程 标号是一条指令目标代码的符号地址。一般只在代码段中定义和使用。常作为转移指令(含子程序调用指令)的操作数。具有段基址、偏移地址和类型三个属性 属性有: 段 值(SEG) 偏移量(OFFSET) 类型(即距离属性): NEAR(近),只能被本段内访问。 FAR(远),可以被其它段访问 。 7.1.3 变量 1.变量和地址表达式 变量是代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以修改。为了便于对变量的访问,它常常以变量名的形式出现在程序中。 变量名:可认为是存放数据的存储单元的符号地址,即变量名是数据的地址或数据区的首地址。 涉及到: 段地址、偏移地址 地址表达式:由变量、标号、寄存器、常量和运算符组成的表达式。 2. 变量存储区域中数据的存放 要点:内存中以1个字节为单位进行地址编码。 在汇编中,存储器的地址都是变量和地址表达式来表示的。 3. 变量的段基址和偏移地址的指定算符 用分析运算符 SEG \OFFSET \TYPE \LENGTH \SIZE (1)SEG:操作数的段地址 (2)OFFSET:操作数地址的偏移量 例: TABLE DW 67,89 ……. MOV AX,SEG TABLE MOV BX,OFFSET TABLE MOV CX,TABLE 4. 变量的类型属性及变量的定义 Byte、Word、Dword(双字)、Fbyte(6字节)、Qword(4字)、Tbyte(10字节) 定义变量的伪指令 符号 DB/DW/DD /DQ(8)/DT(10) 表达式 例1:DAT1 DB 12H DAT2 DB 34H,56H DAT3 DW 5678H 例2:DA—B DB ?,? DA—W DW ?, ? 问号表示可预置任何内容 (详见P145) TYPE 求符号名类型的数值(P159) 格式:TYPE (符号名) 符号名类型值:DB: 送 1,DW:送 2,DD:送 4 例:ARRY DW 1,2 MOV SI ,TYPE ARRAY 汇编为:MOV SI,2 5. 地址表达式类型的变更 类型PTR地址表达式: BYTE PTR W1; WORD PTR B2[BX]; BYTE PTR [BX+5] 宏汇编
原创力文档

文档评论(0)