文档详情

第7章 微型计算机汇编语言与汇编程序课件.ppt

发布:2017-08-08约4.53千字共23页下载文档
文本预览下载声明
第7章 微型计算机汇编语言及汇编程序;7.1 宏汇编语言的基本语法;常数: 常数是没有任何属性的纯数值,在汇编期间,它的值已能完全确定,且在程序运行中,它也不会发生变化。它有以下几种类型: (1)二进制数:以B结尾,由0、1组成的数字序列,。 (2)八进制数:以O或Q结尾,由0~7组成的数字序列,如723Q,35O。 (3)十进制数:以D结尾(可以省略),由0~9组成的数字序列,如129,129D。 (4)十六进制数:以H结尾,由0~9、A~F(a~f)组成的序列,如3A5BH,0A5FDH,0FB12H。 (5)实数:由整数、小数和指数3部分组成,一般用十进制数给出,其格式如下: ±整数部分.小数部分E±指数部分, 如:5.213E-4。;(6)字符串常数:用引号扩起来的一个或多个字符,这些字符以ASCII码形式存储在内存中。如“AB”,在内存中就是41H、42H。 变量: 变量是代表存放在某些存储单元的数据,这些数据在程序运行期间可以随时修改。为了便于对变量的访问,它常常以变量名的形式出现在程序中,它可以认为是存放数据的存储单元的符号地址。 经过定义的变量具有3个属性:段属性、偏移量属性、类型属性。 标号: 标号是一条指令目标代码的符号地址,它常作为转移指令和子程序调用指令的操作数。每个标号具有3个属性:段属性、偏移量属性、距离属性。;表达式与运算符: 表达式由操作数和运算符组成,在汇编时一个表达式得到一个值。 (1)算术运算符:+,-,*,/,MOD,SHL,SHR。 (2)逻辑运算符:AND,OR,XOR,NOT。 (3)关系运算符:EQ,NE,LT,LE,GT,GE。当关系成立时,结果为0FFFFH,当关系不成立时,结果为0。 (4)分析运算符:SEG,OFFSET,TYPE,SIZE,LENGTH。 (5)组合运算符:PTR,THIS。 (6)分离运算符:LOW,HIGH。 汇编运算符的优先级: 见表7.2(见书第160页)所示。;1.符号定义伪指令(赋值语句): (1)名字 EQU 表达式 (2)名字 = 表达式 该语句把表达式的值赋给符号名,在同一程序中,用EQU语句赋值的符号名不能被重新赋值,但被“=”赋值的符号名可以被重新赋值。 2.内存数据定义伪指令 (1)字节定义伪指令 [名字]DB〈表达式或数据项表〉 表达式值或项表中的每一项是一个字节数,它们从符号名地址开始按字节连续存放,直到表中数据项结束(地址递增)。例如:  DATA1  DB 50H,50 DATA2  DB ?,? ; STRING1 DB ‘ABCDEF’ DATA3 DB 20H DUP(?) (2) 字定义伪指令 [名字]DW〈表达式或数据项表〉 除表达式值或项表中的每一项是两个字节数之外,其它与DB伪指令相同。 例如: DA_WORD DW  0A3F1H,4981H DA_W  DW  ?,? D_W1  DW  10H DUP(4) (3) 4字节定义伪指令 [名字]DD〈表达式或数据项表〉 表达式值或项表的每一项是4个字节数。 (4) 8字节定义伪指令 [名字]DQ〈表达式或数据项表〉 ;(5) 10字节定义伪指令 [名字]DT〈表达式或数据项表〉 3.段定义伪指令 存储器在逻辑上是分段的,各段的定义由伪指令实现。 格式:〈段名〉SEGMENT[定位方式][连接方式][‘类别名’] … 〈段名〉ENDS 段定义伪指令为程序的汇编和连接说明了段名、分段的各种属性以及分段的开始和结束。段名是自定义符,开始的段名与结束的段名必须相同。段的长度不超过64KB。SEGMENT后面的参数是可选项。;4.段寄存器说明伪指令 格式:ASSUME 段寄存器:段定义名1[,段寄存器:段定义名2,…] 该伪指令告诉汇编程序在汇编时,段寄存器CS、DS、SS和ES应具有的符号段基址,以便汇编指令时确定段和建立错误信息。但是段寄存器实际值(CS除外)还要由传送指令在执行程序时赋值。 5.过程(子程序)定义伪指令 格式: 〈过程名〉PROC[NEAR](或[FAR]) … 〈过程名〉ENDP 过程名是自定义符,定义过程是为实现子程序调用而设的,调用格式为:  CALL〈过程名〉 过程由RET指令返回。过程起始名和终止名必须相同。 NEAR:段内调用,FAR:段间调用,默认时系统约定是NEAR。;6.模块开始伪指令 格式: NAME 模块名 该伪指令指明程序模块的开始,并指出模块名。模
显示全部
相似文档