微机原理与接口技术第4章课件_汇编语言程序设计

上传人:我*** 文档编号:145966930 上传时间:2020-09-25 格式:PPT 页数:135 大小:941KB
返回 下载 相关 举报
微机原理与接口技术第4章课件_汇编语言程序设计_第1页
第1页 / 共135页
微机原理与接口技术第4章课件_汇编语言程序设计_第2页
第2页 / 共135页
微机原理与接口技术第4章课件_汇编语言程序设计_第3页
第3页 / 共135页
微机原理与接口技术第4章课件_汇编语言程序设计_第4页
第4页 / 共135页
微机原理与接口技术第4章课件_汇编语言程序设计_第5页
第5页 / 共135页
点击查看更多>>
资源描述

《微机原理与接口技术第4章课件_汇编语言程序设计》由会员分享,可在线阅读,更多相关《微机原理与接口技术第4章课件_汇编语言程序设计(135页珍藏版)》请在金锄头文库上搜索。

1、2020/9/25,第 1页,皖西学院机械与电子工程系,微机原理与接口技术,2020/9/25,第 2页,第三章内容回顾,2020/9/25,第 3页,第三章 重点之一,8086指令系统的寻址方式,一、立即寻址方式 二、寄存器寻址方式 三、直接寻址方式 四、寄存器间接寻址方式 五、寄存器相对寻址方式 六、基址变址寻址方式 七、相对基址变址寻址方式 八、其它,2020/9/25,第 4页,第三章 重点之二,8086指令系统,数据传送指令 算术运算指令 逻辑运算和移位指令 字符串处理指令 控制转移指令 处理器控制指令,2020/9/25,第 5页,第四章 汇编语言程序设计,汇编语言程序格式 MAS

2、M中的表达式 伪指令语句 DOS系统功能调用和BIOS中断调用 程序设计方法 宏汇编和条件汇编,内 容 提 要,2020/9/25,第 6页,汇编语言(Assembly Language) 指令的助记符 + 符号地址 + 标号 是机器语言的符号表示,是较低级的语言。 源程序 利用汇编语言编写的程序,称源程序。不能被机器识别。 源程序的运行 汇编程序翻译成二进制的浮动目标程序 连接程序将目标文件与库文件相连,形成可执行程序 可执行的程序在机器上直接运行 高级语言:可读性好,编程简单; 汇编语言:实时性能好,程序效率高,节省内存,运行速度快;,第四章 宏汇编语言程序设计 概述,概 述,例 在屏幕上

3、显示并打印字符串“This is a sample program”。一个完整的用汇编语言编写程序的格式:,2020/9/25,第 7页,第四章 宏汇编语言程序设计 概述,DATASEGMENT;数据段 DA1DBThis is a sample program. DB0DH,0AH, $ DATAENDS STACKSEGMENT ST1DB100 DUB(?) STACKENDS CODESEGMENT;代码段 MAINPROCFAR ASSUME CS:CODE, DS:DATA, SS:STACK ORG1000H START:PUSHDS ;正常返回所需段地址及偏移地址 MOVAX,

4、 0 PUSHAX MOVAX, DATA;送数据段段地址 MOVDS, AX MOVAX, STACK;送堆栈段地址 MOVSS, AX,2020/9/25,第 8页,第四章 宏汇编语言程序设计 概述,MOVAH, 9;DOS 9号功能调用,显示字符串 MOVDX, OFFSET DA1 INT21H RET MAINENDP CODEENDS ENDSTART,2020/9/25,第 9页,4-1 汇编语言程序格式,4-1 汇编语言程序格式 概述,宏汇编使用的语句分两类 指令性语句 伪指令语句,2020/9/25,第 10页,4-1 汇编语言程序格式 指令性语句,指令性语句:与机器指令相对

5、应,可译成目标代码(机器指令代码)。 语句格式 标号: 指令助记符 操作数,操作数;注释 标号:指令语句的符号地址,后面必须紧跟冒号“:”。 注意:标号可使用字母、数字和特殊符号;首字符必须是字母或特殊符号;最大长度31个字符;可以省略,经常作为表示转移的地址。 指令助记符:指令名称的代表符号,指出指令的操作类型。 可译成机器码;不可省略,是关键字。 操作数:参与指令运算的数据。 可以有一个、多个操作数或无操作数;多个操作数之间用逗号“,”隔开,操作数与指令助记符之间用“空格”隔开。 操作数可以是常数、变量、标号、寄存器名或表达式。 注释:说明指令或程序的功能,可省略。注释前加分号“;”。,一

6、、指令性语句,2020/9/25,第 11页,4-1 汇编语言程序格式伪指令语句,伪指令语句:无对应的机器指令,汇编时对伪指令进行处理,可完成数据定义、存储区分配、段定义、段分配、指示程序结束等功能。 语句的格式: 名字 伪指令指示符 操作数,操作数 ;注释 名字:用符号地址表示,名字后不允许带冒号“:”,但可以省略。 通常是变量名、段名、过程名、符号名等。,二、伪指令语句,2020/9/25,第 12页,伪指令指示符:汇编程序MASM规定的符号。 常用的有变量定义语句(DB、DW),符号定义语句(EQU、),段定义语句(SEGMENTEND),段分配语句(ASSUME),过程定义语句(PRO

7、CENDP)等。 操作数:不同伪指令有不同要求。 操作数可以是常数、变量、字符串、表达式等。 注释:功能和使用与指令性语句相同。,4-1 汇编语言程序格式伪指令语句,2020/9/25,第 13页,4-1 汇编语言程序格式数据项,汇编语言中的操作数,可以是常数、寄存器、存储器、变量、标号或表达式。其中,常数、变量、标号是三种基本数据项。 1常数: 是固定值,没有属性,是确定的数据。 二进制:字母“B”结尾,例00110100B; 八进制:字母“Q”或“O”结尾,例1037O、2370Q; 十进制:字母“D”结尾或省略,或科学表示法,例1234D、5678、2.735E-2; 十六进制:字母“H

8、”结尾,“AF”开头时,前面加0,例56H、0A7F2H; 字符串:用单引号括起来,机内存放的是各字符的ASCII码。例ABC。,三、数据项,2020/9/25,第 14页,4-1 汇编语言程序格式数据项,2变量: 变量通常指存放在存储单元中的值,程序运行中可以修改。所有的变量都具有三个属性。 段值(SEGMENT): 指变量所在段的段基址。 段内偏移地址(OFFSET): 指变量所在地址与所在段首地址之间的地址偏移字节数。 类型(TYPE): 指变量中每个元素所包含的字节数:字节变量(BYTE)、字变量(WORD)、双字变量(DWORD)等。,2020/9/25,第 15页,4-1 汇编语言

9、程序格式数据项,3.标号: 标号是可执行指令语句的地址的符号表示,可作为程序转向的目标地址。具有三个属性。 (1)段值(SEGMENT): 标号所在段的段基址。 (2)段内偏移地址(OFFSET): 标号所在地址与所在段的段首址之间的偏移地址字节数。 (3)类型(TYPE):指在转移指令中标号可转移的距离,也称距离属性。 类型NEAR,表示此标号为近标号,只能实现段内转移或调用; 类型FAR,表示此标号为远标号,可以实现段间转移或调用。 若标号后面紧跟冒号,表示隐含此标号距离属性为NEAR,也可用伪指令将此属性改为FAR。,2020/9/25,第 16页,4-2 MASM中的表达式 概述,4-

10、2 MASM中的表达式,概 述,表达式:运算对象 + 运算符。 在汇编时进行运算,运算结果作为语句中的操作数。 运算对象:常数、变量、标号。 得到的运算结果可以是一个常数字,也可以是一个存储器的地址。 MASM中6类运算符:如表4-1所示。 算术运算符(Arithmetic Operators) 逻辑运算符(Logical Operators) 关系运算符(Relational Operators) 数值返回运算符(Value-Returning Operators) 修改属性运算符(Modifing attribute Operators) 其它运算符(other Operators),20

11、20/9/25,第 17页,4-2 MASM中的表达式 概述,表41 MASM的表达式中的运算符(1),2020/9/25,第 18页,4-2 MASM中的表达式 概述,表41 MASM的表达式中的运算符(2),2020/9/25,第 19页,4-2 MASM中的表达式 概述,表41 MASM的表达式中的运算符(3),2020/9/25,第 20页,4-2 MASM中的表达式 算术运算符,包括7种: 十、一、(除,只取除法运算结果之商)、MOD(模,只取除法运算结果之余数)、SHL(左移,左移1位相当于乘2)、SHR(右移,右移1位相当于除2)。 注意: 所有的算术运算符均可以对数据进行运算,

12、运算对象与运算结果都是整数。 若对地址运算,通常是在标号上加减某一个数字量。,一、算术运算符,2020/9/25,第 21页,4-2 MASM中的表达式 算术运算符,例 数组ARRAY定义如下 ARRAYDB1,2,3,4,5,6,7,8 TRYDB20 指令为: MOVAX,30*5 MOVCX,(TRYARRAY) 汇编时,计算表达式形成如下指令: MOVAX,150 MOVCX,8,2020/9/25,第 22页,4-2 MASM中的表达式 算术运算符,例 汇编程序指令格式如下: DAEQU300 MOVAX,DA80 MOVBX,DA MOD 100MOVCX,DA/100 MOVDH

13、,0110 0100B SHR 2 汇编时,计算表达式形成指令为: DAEQU300 MOVAX,220 MOVBX,0 MOVCX,3 MOVDH,19H,2020/9/25,第 23页,4-2 MASM中的表达式 逻辑运算符,包括4种: AND(与)、OR(或)、NOT(非)、XOR(异或) 注意: 按位运算的,只能对常数进行运算,得到结果也是常数。,二、逻辑运算符,2020/9/25,第 24页,4-2 MASM中的表达式 逻辑运算符,例MOVAL,NOT 0FFH MOVBL,8CH AND 73H MOVAH,8CH OR 73H MOVCH, 8CH XOR 73H 汇编时,计算表

14、达式形成指令为: MOVAL,0 MOVBL,0 MOVAH,0FFH MOVCH,0FFH 例INAL, PORT;PORT为输入端口号 ANDDX, PORT AND 0FEH OUTDX, AX;DX为输出端口号,2020/9/25,第 25页,4-2 MASM中的表达式 关系运算符,包括6种: EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于) 。 注意: 关系运算符的两个操作数必须是数据,或是同一段内的两个存储单元的地址; 若结果为真,输出全是l,即0FFH或0FFFFH; 若结果为假,输出全是0。,三、关系运算符,2020/9/25,第

15、26页,4-2 MASM中的表达式 关系运算符,例MOVAX,10H GT 16 ADDBL,6 EQ 0110B MOVCX,(PORT LT 5) AND 100) OR (PORT GE 5) AND 200) 汇编时,计算表达式形成指令为: MOVAX,0 ADDBL,0FFH MOVCX,100;当端口 5时,2020/9/25,第 27页,4-2 MASM中的表达式 数值返回运算符,数值返回运算符也称作分析运算符(Analytic opertors)。 包括5种: OFFSET、SEG、TYPE、LENGTH、SIZE 。 功能: 加在变量或标号前,返回运算对象的某个参数值。例如偏

16、移地址值、段地址值、类型属性、变量包含的单元数等。 1OFFSET: 格式:OFFSET 变量或标号 功能:返回标号或变量的偏移地址值。 例 若DA1为数据段中一个变量名 MOV BX,OFFSET DA1;等价于LEA BX,DA1,四、数值返回运算符,2020/9/25,第 28页,4-2 MASM中的表达式 数值返回运算符,2SEG: 格式:SEG 变量或标号 功能:取变量或标号的段基值。 例MOVAX,SEG M1 MOVDX,AX 解:设:M1是段名为DATA的数据段中的一个变量名; 如DATA段从0500H开始,上述指令把0500H作为立即数在连接时插入指令; 汇编后指令变为: MOVAX, 0500H MOVDX, AX,2020/9/25,第 29页,4-2 MASM中的表达式 数值返回运算符,3TYPE: 格式:TYPE 变量或标号 功能: 加在变量前,返回变量的类型属性; 加在标号前,返回标号的距离属性。如下表所

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号