第4章汇编语言程序设计_第1页
第4章汇编语言程序设计_第2页
第4章汇编语言程序设计_第3页
第4章汇编语言程序设计_第4页
第4章汇编语言程序设计_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-3-17第 1页微机原理与接口技术微机原理与接口技术2022-3-17第 2页第三章第三章内容回顾内容回顾2022-3-17第 3页第三章第三章 重点之一重点之一v 8086指令系统的寻址方式一、立即寻址方式一、立即寻址方式二、寄存器寻址方式二、寄存器寻址方式三、直接寻址方式三、直接寻址方式四、寄存器间接寻址方式四、寄存器间接寻址方式五、寄存器相对寻址方式五、寄存器相对寻址方式六、基址变址寻址方式六、基址变址寻址方式七、相对基址变址寻址方式七、相对基址变址寻址方式八、其它八、其它2022-3-17第 4页第三章第三章 重点之二重点之二2022-3-17第 5页第四章第四章 汇编语言程

2、序设计汇编语言程序设计汇编语言程序格式汇编语言程序格式MASM中的表达式中的表达式伪指令语句伪指令语句DOS系统功能调用和系统功能调用和BIOS中断调用中断调用程序设计方法程序设计方法宏汇编和条件汇编宏汇编和条件汇编2022-3-17第 6页汇编语言汇编语言(Assembly Language)(Assembly Language)指令的助记符指令的助记符 + 符号地址符号地址 + 标号标号是机器语言的符号表示,是较低级的语言。是机器语言的符号表示,是较低级的语言。源程序源程序利用汇编语言编写的程序,称源程序。不能被机器识别。利用汇编语言编写的程序,称源程序。不能被机器识别。源程序的运行源程序

3、的运行汇编程序翻译成二进制的浮动目标程序汇编程序翻译成二进制的浮动目标程序 连接程序将目标文件与库文件相连,形成可执行程序连接程序将目标文件与库文件相连,形成可执行程序 可执行的程序在机器上直接运行可执行的程序在机器上直接运行高级语言高级语言:可读性好,编程简单;可读性好,编程简单;汇编语言:汇编语言:实时性能好,程序效率高,节省内存,运行速度快;实时性能好,程序效率高,节省内存,运行速度快; 概述概述 概概 述述例例 在屏幕上显示并打印字符串在屏幕上显示并打印字符串“This is a sample program”。一。一个完整的用汇编语言编写程序的格式:个完整的用汇编语言编写程序的格式:

4、2022-3-17第 7页概述概述 2022-3-17第 8页概述概述 2022-3-17第 9页4-1 4-1 汇编语言程序格式汇编语言程序格式概述概述 v 宏汇编宏汇编使用的语句分两类使用的语句分两类指令性语句指令性语句伪指令语句伪指令语句2022-3-17第 10页指令性语句指令性语句 一、指令性语句一、指令性语句2022-3-17第 11页伪指令语句伪指令语句 二、伪指令语句二、伪指令语句2022-3-17第 12页伪指令语句伪指令语句 2022-3-17第 13页数据项数据项 三、数据项三、数据项2022-3-17第 14页数据项数据项2022-3-17第 15页数据项数据项2022

5、-3-17第 16页4-2 MASM4-2 MASM中的表达式中的表达式概概 述述2022-3-17第 17页2022-3-17第 18页2022-3-17第 19页2022-3-17第 20页一、算术运算符一、算术运算符2022-3-17第 21页2022-3-17第 22页2022-3-17第 23页二、逻辑运算符二、逻辑运算符2022-3-17第 24页2022-3-17第 25页三、关系运算符三、关系运算符2022-3-17第 26页2022-3-17第 27页四、数值返回运算符四、数值返回运算符2022-3-17第 28页2022-3-17第 29页TYPE 运算符返回值类型类型返回

6、值返回值 变量变量DBDWDDDQ1248标号标号NEARFAR-1 FFH-2 FEH2022-3-17第 30页2022-3-17第 31页2022-3-17第 32页2022-3-17第 33页五、修改属性运算符五、修改属性运算符2022-3-17第 34页2022-3-17第 35页2022-3-17第 36页2022-3-17第 37页2022-3-17第 38页2022-3-17第 39页六、其它运算符六、其它运算符2022-3-17第 40页七、优先级七、优先级优先级优先级运算符运算符12345678910 ( ), , ,LENGTH,WIDTH,SIZE,MASKPTR,OF

7、FSET,SEG,TYPE,THIS,CS:,DS:,ES:,SS:HIGH,LOW*,/,MOD,SHL,SHR+,-EQ,NE,LT,LE,GT,GEHOTANDOR,XORSHORT2022-3-17第 41页4-3 伪指令语句2022-3-17第 42页一、数据定义语句一、数据定义语句2022-3-17第 43页2022-3-17第 44页2022-3-17第 45页2022-3-17第 46页2022-3-17第 47页2022-3-17第 48页2022-3-17第 49页二、表达式赋值语句二、表达式赋值语句2022-3-17第 50页2022-3-17第 51页 2022-3-1

8、7第 52页三、段定义语句三、段定义语句2022-3-17第 53页2022-3-17第 54页2022-3-17第 55页2022-3-17第 56页2022-3-17第 57页2022-3-17第 58页2022-3-17第 59页2022-3-17第 60页2022-3-17第 61页2022-3-17第 62页四、过程定义语句四、过程定义语句2022-3-17第 63页2022-3-17第 64页。2022-3-17第 65页2022-3-17第 66页2022-3-17第 67页2022-3-17第 68页五、程序开始和结束语句五、程序开始和结束语句2022-3-17第 69页指定地

9、址伪指令指定地址伪指令 在汇编程序中,有一个软件计数器在汇编程序中,有一个软件计数器(LC)(LC)地址计数器。地址计数器。在每个段定义开始处,它被复位为在每个段定义开始处,它被复位为0 0。当汇编程序逐行扫描语。当汇编程序逐行扫描语句时,用句时,用LCLC保存当前指令的地址。保存当前指令的地址。2022-3-17第 70页2022-3-17第 71页2022-3-17第 72页六、结构定义语句2022-3-17第 73页七、外部伪指令及对准伪指令2022-3-17第 74页2022-3-17第 75页2022-3-17第 76页2022-3-17第 77页2022-3-17第 78页八、高档

10、微机增加的伪指令八、高档微机增加的伪指令2022-3-17第 79页 ( 自自 学)学)4-4DOS系统功能调用和系统功能调用和BIOS中断调用中断调用2022-3-17第 80页顺序结构;顺序结构;分支结构;分支结构;循环结构;循环结构;子程序结构;子程序结构;综合举例;综合举例;4-4 程序设计方法2022-3-17第 81页2022-3-17第 82页汇编语言程序设计的常用结构与方法汇编语言程序设计的常用结构与方法u与大多数高级语言相同的是与大多数高级语言相同的是: : 汇编语言是结构化的汇编语言是结构化的语言。一个大的汇编源程序可由多个语言。一个大的汇编源程序可由多个“模块模块”组成,

11、组成,而每个模块则由一个或多个而每个模块则由一个或多个“段段”构成。构成。u与高级语言不同,使用汇编语言编程时需同时使用与高级语言不同,使用汇编语言编程时需同时使用指令和伪指令。指令和伪指令。汇编源程序的基本结构形式汇编源程序的基本结构形式u模块和段:一个汇编模块和段:一个汇编“模块模块”可以包含一个或几个可以包含一个或几个长度小于长度小于64KB64KB的的“段段”u80868086只有只有4 4个段寄存器(个段寄存器(CSCS、DSDS、SSSS和和ESES)CS: CS: 程序段程序段 DS: DS: 数据段数据段 SS: SS: 堆栈段堆栈段 ES: ES: 附加段附加段( (可选可选

12、) )2022-3-17第 83页特点特点程序分段程序分段语句由指令性和指示性语句组成语句由指令性和指示性语句组成两种程序框架两种程序框架2022-3-17第 84页 框架一:框架一: DATADATA SEGMENT SEGMENT ;定义数据段;定义数据段VAL1 DB 12H , 8EH VAL1 DB 12H , 8EH ;定义变量;定义变量 DATA DATA ENDS ENDS ;数据段结束;数据段结束 CODE CODE SEGMENT SEGMENT ;定义代码段;定义代码段 ASSUME DS:DATA , CS: CODEASSUME DS:DATA , CS: CODE;

13、段属性说明;段属性说明 START: MOV AX , DATASTART: MOV AX , DATA;初始化;初始化DSDS MOV DS , AX MOV DS , AX ; ; 填写代码填写代码 MOV AX , 4C00HMOV AX , 4C00H;返回;返回DOSDOS INT 21H INT 21H CODE ENDS CODE ENDS ;代码段结束;代码段结束 END STARTEND START ;源程序结束;源程序结束2022-3-17第 85页框架二:框架二: DATA SEGMENT ;定义数据段;定义数据段VAL1 DB 12H , 8EH ;定义变量;定义变量

14、DATA ENDS ;数据段结束;数据段结束 CODE SEGMENT ;定义代码段;定义代码段MAIN PROC FAR ASSUME DS:DATA , CS: CODE ;段属性说明;段属性说明 START: PUSH DS MOV AX , 0 PUSH AX MOV AX,DATA MOV DS,AX ;填写代码;填写代码 RETMAIN ENDP CODE ENDS ;代码段结束;代码段结束 END START ;源程序结束;源程序结束2022-3-17第 86页2022-3-17第 87页2022-3-17第 88页评价程序质量的标准评价程序质量的标准1 1合理组织数据,发挥存贮

15、器、合理组织数据,发挥存贮器、RegReg的作用。的作用。2 2程序逻辑结构好,便于二次开发。程序逻辑结构好,便于二次开发。 3 3可读性强。可读性强。 4 4高可靠性和可维护性。高可靠性和可维护性。 5 5效率高(代码少)。效率高(代码少)。2022-3-17第 89页顺序结构顺序结构 程序执行按照程序执行按照IP内容自动增内容自动增加的顺序进行加的顺序进行。一、顺序结构 2022-3-17第 90页例例1:编程计算表达式编程计算表达式Z = X2Y/5的值,其中的值,其中X、Y为带为带符号字节整数,符号字节整数,Z为带符号字整数。为带符号字整数。顺序结构顺序结构 2022-3-17第 91

16、页DATA SEGMENTX DB Y DB Z DW ?DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME DS:DATA , CS: CODE ;段属性说明;段属性说明 START: 2022-3-17第 92页 RETMAIN ENDPCODE ENDS ;代码段结束;代码段结束 END START2022-3-17第 93页2022-3-17第 94页顺序结构顺序结构 2022-3-17第 95页分支结构分支结构 二、分支结构2022-3-17第 96页例例 编程实现下列函数的功能,其中编程实现下列函数的功能,其中X X、Y Y为无符号字节数为无符号字节

17、数。101XYZXYXY分支结构分支结构 2022-3-17第 97页流程图分支结构分支结构 2022-3-17第 98页分支结构分支结构要依次检查才能进入到要求要依次检查才能进入到要求的入口地址。的入口地址。2022-3-17第 99页分支结构分支结构2022-3-17第 100页分支结构分支结构2022-3-17第 101页分支结构分支结构2022-3-17第 102页例:设有例:设有8种产品的产品编号分别为种产品的产品编号分别为0、1、2、7,各,各产品的加工子程序名分别为产品的加工子程序名分别为SBR0,SBR1,SBR7。试编写由已知编号转至相应加工子程序处理的程序。试编写由已知编号

18、转至相应加工子程序处理的程序。 子程序入口地址的地址子程序入口地址的地址 = 表基地址(表基地址(BASE)+ 偏移量(产品编号)偏移量(产品编号)2JMP BASE产品编号产品编号2 ;EA=BASE+产品编号产品编号2 ;EA=各子程序入口地址各子程序入口地址BASE分支结构分支结构2022-3-17第 103页分支结构分支结构2022-3-17第 104页DATASEGMENTBASE DW SBR0,SBR1,SBR2,SBR3,SBR4, DW SBR5,SBR6,SBR7 ;定义跳转表;定义跳转表BNDB? ;BN中存放某一产品编号中存放某一产品编号DATAENDSSTACK SE

19、GMENT PARA STACK STACKDB100 DUP(0)STACK ENDSCODESEGMENTASSUME CS:CODE,DS:DATA CS:STACKSTART PROC FARPUSH DSMOV AX,0 PUSH AX分支结构分支结构2022-3-17第 105页MOVAX,DATAMOVDS,AXMOVBL,BN ;取产品编号;取产品编号MOVBH,0 ;16位扩展位扩展SHLBX,1 ;偏移量产品编号;偏移量产品编号2JMPBASEBX ;间接转移到相应的产品加工子程序;间接转移到相应的产品加工子程序 : SBR0: :RET: SBR7:RETSTART EN

20、DPCODEENDS ENDSTARTBASEBX=表基地址编号表基地址编号2JMP mem间接转移,间接转移,IP EA分支结构分支结构2022-3-17第 106页分支结构分支结构2022-3-17第 107页分支结构分支结构2022-3-17第 108页分支结构分支结构2022-3-17第 109页循环程序结构循环程序结构三、循环程序结构三、循环程序结构2022-3-17第 110页循环程序结构循环程序结构2022-3-17第 111页循环程序结构循环程序结构2022-3-17第 112页循环程序结构循环程序结构2022-3-17第 113页循环程序结构循环程序结构2022-3-17第

21、114页循环程序结构循环程序结构2022-3-17第 115页循环程序结构循环程序结构2022-3-17第 116页子程序结构子程序结构四、子程序结构2022-3-17第 117页子程序结构子程序结构2022-3-17第 118页子程序结构子程序结构2022-3-17第 119页子程序结构子程序结构2022-3-17第 120页子程序结构子程序结构2022-3-17第 121页2022-3-17第 122页子程序结构子程序结构2022-3-17第 123页本 章 小 结2022-3-17第 124页本章小结本章小结汇编语言程序格式(汇编语言程序格式(P124)MASM中的表达式中的表达式伪指令

22、语句伪指令语句DOS系统功能调用和系统功能调用和BIOS中断调用中断调用()程序设计方法程序设计方法宏汇编和条件汇编宏汇编和条件汇编2022-3-17第 125页本章小结本章小结重点一:伪指令语句重点一:伪指令语句数据定义语句:数据定义语句:DB,DW,DD标号赋值语句:标号赋值语句:EQU,段定义语句段定义语句: SEGMENNTENDS段分配语句段分配语句: ASSUME过程定义语句:过程定义语句:PROCENDP程序开始结束语句:程序开始结束语句:ORG,END,NAME2022-3-17第 126页本章小结本章小结重点二:程序设计方法重点二:程序设计方法顺序结构顺序结构分支结构分支结构

23、循环结构循环结构子程序结构子程序结构2022-3-17第 127页本章小结本章小结重点三:重点三:MASM中中6类运算符类运算符算术运算符算术运算符逻辑运算符逻辑运算符关系运算符关系运算符数值返回运算符数值返回运算符修改属性运算符修改属性运算符其它运算符其它运算符2022-3-17第 128页附:汇编语言上机调试过程附:汇编语言上机调试过程 概概 述述2022-3-17第 129页附:汇编语言上机调试过程附:汇编语言上机调试过程 2022-3-17第 130页汇编语言程序的上机过程2022-3-17第 131页 在计算机上建立和运行汇编语言时,首先要用编程在计算机上建立和运行汇编语言时,首先要

24、用编程程序建立汇编语言源程序(扩展名必须为程序建立汇编语言源程序(扩展名必须为.ASM);); 汇编语言编写的源程序是不能直接被计算机运行的,汇编语言编写的源程序是不能直接被计算机运行的,必须经过汇编程序必须经过汇编程序MASM加以汇编(翻译),把源程序加以汇编(翻译),把源程序文件转换成为用机器码(二进制代码)表示的目标程序文件转换成为用机器码(二进制代码)表示的目标程序文件文件(扩展名必须为扩展名必须为.OBJ););2022-3-17第 132页 若在汇编过程中没有出现语法错误,则汇编结束后,若在汇编过程中没有出现语法错误,则汇编结束后,还还 必须经过连接程序必须经过连接程序LINK把目标程序文件与库文件或把目标程序文件与库文件或其它目标文件连接在一起形成可执行文件其它目标文件连接在一起形成可执行文件(扩展名必须扩展名必须为为.exe)。 最后可以在最后可以在DOS下直接键入文件名,就可执行该程下直接键入文件名,就可执行该程序了,若想查看程序执行过程,可进入程序调试过程序了,若想查看程序执行过程,可进入程序调试过程。2022-3-17第 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论