欢迎来到天天文库
浏览记录
ID:15599095
大小:94.00 KB
页数:20页
时间:2018-08-04
《8088汇编语言程序设计微机原理第2版课后答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章8088汇编语言程序设计本章的主要内容是汇编语言语句行的构成,源程序的结构,汇编语言程序设计方法。3.1重点与难点本章的学习重点是结构化程序设计思想,顺序、分支、循环结构的程序设计,子程序结构的设计与调用,中断指令的应用。另外,汇编语言伪指令的使用、源程序的结构等也是必须掌握的。3.1.1汇编语言语句行的构成1.标记(1)标识符:由数字、字母和下划线组成,且不能以数字开头,最大长度不超过31个字符。(2)保留字:汇编语言中保留下来的具有特殊用途的字串,如指令、伪指令、寄存器名等都是保留字。保留字不
2、可用作标识符。(3)界符:程序或指令中两个部分的分隔符号。汇编语言源程序中可用的界符:′〈〉;,:?$()+-=&[]*/·(4)常量:数字常量,可以使用不同的进制D、B、H、Q;字符串常量,由引号引起来的字符串,相当给出字符所对应的ASCII码串。2.符号及其属性(1)寄存器:8086/8088CPU的寄存器可以作为指令的操作数。(2)变量:即内存单元的符号地址。变量不能与保留字、段名重名。它有三个属性:段属性,指变量所在段的段地址;偏移量,指变量所在段的起始地址到变量地址之间的字节数,即偏移(有效、
3、逻辑)地址。类型,指指变量具有的字节数,包括BYTE、WORD、DWORD、QWORD和TBYTE等。(3)标号:即代码段中某条指令的符号地址,由编程者根据需要确定的。标号不能与保留字重名,可使用字母、数字及下划线,但不允许用数字开头,字符个数不超过31个。标号作为符号地址也有三个属性:段、偏移量和类型(NEAR、FAR)。3.表达式表达式是作为语句的一个操作数,在汇编时一个表达式得到一个值。(1)操作数数据——常数、符号常量;存储单元地址——常用符号地址表示。(2)运算符算术运算符:+、-、*、/、M
4、OD。对地址的运算仅有+(加)、-(减)运算符。逻辑运算符:AND、OR、NOT和XOR。注意,不要将其和同样名称的指令操作码相混淆。关系运算符:EQ、NE、LT、GT、LE和GE。参与关系运算的两个操作数必须都是数值,或同一段中的两个存储单元地址,运算结果为0FFFFH(真,True)或0(假,False)。分析运算符:0FFSET——取一个标号或变量的偏移地址;SEG——取一个标号或变量所在段的段地址;TYPE——取变量和标号的类型(BYTE、WORD、DWORD或NEAR、FAR);SIZE——计
5、算一个存储区的字节总数;LENGTH——计算存储区中数据单元的数目,只对数据定义中的DUP操作有效。综合运算符:PTR——用于暂时改变变量或标号的原有属性,只在当前语句中有效;THIS——和PTR类似,用于改变存储区的类型;SHORT——指定一个标号为短标号。4.语句指令语句:主要由CPU指令组成,每条语句在汇编过程中都会产生对应的目标代码。伪操作或伪指令语句:为汇编程序提供信息,让汇编程序在汇编过程中执行特定的功能。两者本质区别在于,伪指令在汇编过程中不形成任何代码。这里仅对伪指令进行总结。(1)符号
6、定义伪指令(赋值语句)格式:符号常量EQU表达式或符号常量=表达式功能:把表达式的值赋给符号名。说明:在程序中,用EQU语句赋值的符号名不能被重新赋值,但用“=”号赋值的符号名可以被重新赋值。若要重新赋值,必须使用解除伪指令PURGE。(2)内存数据定义伪指令格式:[变量名]数据定义表达式或数据项表功能:可为数据项分配存储单元,并根据需要设置其初值。还可用符号代表数据项。说明:数据定义符有字节DB、单字DW、双字DD、8字节DQ、10字节DT;DUP()表示数据重复,“$”表示地址计数器当前值,“?”用
7、于预留存储空间;数据项允许为字符串。(3)段定义伪指令格式:段名SEGMENT[定位方式][连接方式][‘类别名’]段体段名ENDS功能:为程序汇编和链接说明了段名、分段的各种属性以及分段的开始和结束。段名是自定义符,开始的段名与结束的段名必须相同。段的长度不超过64KB。属性参数定义:定位方式,指定段的起始地址边界。有四种方式:页边界PAGE、段边界PARA(系统隐含)、字边界WORD、字边界BYTE。连接方式,告诉连接程序本段与其他段的连接方式。系统隐含为不写,表示本段不与任何段链接。STACK表示
8、此段为堆栈段。‘类别名’,是合法的自定义符,长度不超过40。凡是类别名相同的段在连接时均按先后顺序连接在相邻存储区中。说明:段名的命名规则和变量名以及标号一样;单模块程序中属性参数可省略不写。(4)段址寄存器说明伪指令格式:ASSUME段寄存器:段定义名1[,段寄存器:段定义名2,…]功能:告诉汇编程序在汇编时,段寄存器CS、DS、SS和ES应具有的符号段基址。段寄存器实际值(CS除外)由传送指令在执行程序时赋值。(5)过程(子程序)定义伪
此文档下载收益归作者所有