汇编语言程序设计汇编语言.ppt
《汇编语言程序设计汇编语言.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计汇编语言.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 4 章 汇编语言程序设计1本章讲述:4.1 汇编语言程序格式4.2 伪指令语句4.3 DOS系统功能调用和BIOS功能调用4.4 程序设计方法4.5 宏汇编和条件汇编28086汇编语言程序的一个例子MY_DATA SEGMENT ;定义数据段SUM DB?;为符号SUM保留一个字节MY_DATA ENDS ;定义数据段结束MY_CODE SEGMENT ;定义码段 ASSUME CS:MY_CODE,;规定CS和DS的内容 DS:MY_DATAPORT_VAL EQU 3 ;端口的符号名GO:MOV AX,MY_DATA ;DS初始化为MY_DATA MOV DS,AX MOV SUM,0
2、 ;清SUM单元CYCLE:CMP SUM,100 ;SUM单元与100相比较 JNA NOT_DONE ;若未超过,转至NOT_DONE MOV AL,SUM ;若超过,把SUM单元的内容 OUT PORT_VAL,AL ;通过AL输出 HLT ;然后停机NOT DONE:IN AL,PORT_VAL ;未超过时,输入下一个字节 ADD SUM,AL ;与以前的结果累加 JMP CYCLE ;转至CYCLEMY CODE ENDS ;码段结束 END GO ;整个程序结束 3 由上例看出8086汇编的一个语句行由以下4个部分组成:标号(或名称)操作码 操作数 ;注释 各部分之间至少要用一个空
3、格作为间隔。IBM宏汇编对于语句行的格式是自由的,但如果写成格式化就便于阅读,建议读者按格式化来写语句行。另外,IBM宏汇编并不要求一个语句只能写一行,一个语句可以有后续行,规定以字符“&”作为后续行的标志。44.1 汇编语言程序格式4.1.1 指令性语句与伪指令(指示性)语句指令性语句标号:指令助记符 操作数,操作数;注释伪指令语句名字 伪指令助记符 操作数,操作数;注释54.1.2 数据项 常数、变量和标号常数、变量和标号n常数q没有任何属性的纯数值。在汇编期间,它的值已能完全确定,在程序运行中值也不会发生变化。它可以有以下几种类型:二进制数,八进制数,十进制数,十六进制数 实数:它由整数
4、、小数和指数3部分组成,字符串常数:用引号括起来的一个或多个字符。6n变量q代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以修改。变量的属性p段属性(SEG):表示变量存放在哪一个逻辑段中(即变量所在段的段基值);p偏移量属性(OFFSET):表示变量在逻辑段中离段起始点的字节数;p类型属性(TYPE):表示变量占用存储单元的字节数。7标号n标号是一条指令目标代码的符号地址,它常作为转移指令(含子程序调用指令)的操作数。n段属性(SEG)、偏移量(OFFSET)、距离属性(NEAR、FAR)84.1.3 表达式 表达式(Expressions)是由运算对象及运算符成。粗略地说,一个
5、表达式是一个由操作数和运算符组合的序列,在汇编时它能产生一个值。92.运算符(Operators)IBM宏汇编通常有以下几种运算符:算术运算符(Arithmetic Operators);逻辑运算符(Logical Operators);关系运算符(Relational Operators);数值返回运算符(Analytic Operators);修改属性运算符(Synthetic Operators);其它运算符10(1)算术运算符 这是读者十分熟悉的运算符-+(加)、-(减)、*(乘)、/(除)运算符。另一个算术运算符是MOD(求余),它产生除法以后的余数。因此19/7是2(商是2),而1
6、9MOD7是5(余数是5)。算术运算符应用于数字操作数,结果也是数字的。当算术运算符应用于存储器即地址操作数时其规则就更加严格:只有当结果有明确的、有意义的物理解释时,这些运算才是有效的。11(2)逻辑运算符 按位操作的逻辑运算符有:AND(与)、OR(或)、XOR(异或)和NOT(非)。逻辑运算的操作数只能是数字的,而且结果是数字的。存储器地址操作数不能进行逻辑运算。注意:AND、OR、XOR和NOT,也是8086指令的助记符。但是,作为IBM宏汇编的运算符是在程序汇编时计算的。而作为指令的助记符,则是在程序执行时计算的。12(3)关系运算符 在IBM宏汇编中有以下关系运算符:相等 EQ(E
7、qual);不等 NE(Not Equal);小于 LT(Less Than);大于 GT(Greater Than);小于或等于 LE(Less Than or Equal);大于或等于 GE(Greater Than or Equal)。13(4)数值返回运算符 分析运算符可以把存储器操作数分解为它的组成部分,如它的段值SEG、段内偏移量OFFSET、类型TYPE、长度LENGTH和大小SIZE。(5)属性修改运算符 属性修改运算符可以由已经存在的存储器操作数生成一个段值与偏移量相同、而类型不同的新的存储器操作数。如段前缀、PTR、THIS、SHORT、HIGH/LOW等。14(6)其它运
8、算符()、,MASK及WIDTH154.2 伪指令语句(指示性语句)在IBM宏汇编中有以下几种指示性语句(Directive statements):(1)数据定义语句(Data definition);(2)标号定义语句(Symbol definition);(3)段定义语句(Segmentation definition);(4)过程定义语句(Procedure definition);(5)程序开始、结束语句(Termination)。此外,还有段分配、群定义、结构定义、记录定义等语句。164.2.1 数据定义语句 格式:变量名 助记符 操作数,操作数;注释变量名 助记符 n DUP(操
9、作数,操作数);注释(1)字节定义伪指令 名字 DB (表达式或数据项表)(2)字定义伪指令 名字 DW (表达式或数据项表)(3)4字节定义伪指令 名字 DD(表达式或数据项表)(4)8字节定义伪指令 名字 DQ (表达式或数据项表)(5)10字节定义伪指令 名字 DT (表达式或数据项表)174.2.2 标号定义语句等值语句等值语句:(符号名)EQU(表达式)等号语句等号语句:(符号名)(表达式)注意:用EQU语句赋值的符号名不能被重新赋值,“”可以。184.2.3 段定义语句 8086的存储器是分段的,所以8086必须按段来组织程序和利用存储器,这就需要有段定义语句。段定义的主要命令有:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计
限制150内