微机原理与接口技术教学课件作者第2版电子教案4课件

上传人:E**** 文档编号:91695992 上传时间:2019-07-01 格式:PPT 页数:100 大小:1.80MB
返回 下载 相关 举报
微机原理与接口技术教学课件作者第2版电子教案4课件_第1页
第1页 / 共100页
微机原理与接口技术教学课件作者第2版电子教案4课件_第2页
第2页 / 共100页
微机原理与接口技术教学课件作者第2版电子教案4课件_第3页
第3页 / 共100页
微机原理与接口技术教学课件作者第2版电子教案4课件_第4页
第4页 / 共100页
微机原理与接口技术教学课件作者第2版电子教案4课件_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《微机原理与接口技术教学课件作者第2版电子教案4课件》由会员分享,可在线阅读,更多相关《微机原理与接口技术教学课件作者第2版电子教案4课件(100页珍藏版)》请在金锄头文库上搜索。

1、概述,汇编语言语句,伪指令系统,基本结构程序设计,DOS/BIOS功能调用,汇编语言程序的结构,1 机器语言,机器指令是CPU能直接识别的命令又称硬指令。,机器指令是由一组能为计算机所接受的0和1组成的二进制代码。,4.1.1 机器语言和汇编语言,机器指令的集合构成了机器语言,用机器语言编写的程序就是机器语言程序。,4.1 概述,2 汇编语言,汇编指令是由助记符号表示的机器指令,它与机器指令一一对应。,伪指令是向汇编程序提供如何进行汇编工作的命令。,汇编指令、伪指令、宏指令和汇编程序一起组成了汇编语言。 用汇编语言编制的用户程序称为汇编语言源程序。,补充例题,4.1.2 汇编与连接,将一个汇编

2、指令翻译成机器语言的过程称为汇编。,汇编程序就是把汇编语言源程序翻译成机器语言程序的 一种系统软件。,由汇编程序生成的目标程序文件不能执行,必须经过连接程序连接以后,才能变成可执行文件。,通过连接程序可将若干个目标文件连接成一个地址可浮动的、可由装入程序对地址定位的可执行文件。,4. 2汇编语言语句,汇编语言源程序由若干语句组成,这些语句可分为三类:,4.2.1 汇编语言语句的种类,指令语句。用助记符表示的机器指令,它们由汇编程序汇编成相应的能被CPU直接识别并执行的目标代码。,宏指令语句。允许用户为多次重复使用的程序段命一个名字,然后可在程序中用这个名字代替该程序段,将定义的过程称为宏定义。

3、将该程序段称为宏。 宏指令语句就是宏的引用。,伪指令语句。向汇编程序提供汇编过程要求的一些辅助信息。如:给变量分配内存单元地址、定义各种符号、实现分段等。,伪指令与指令性语句最大区别是:伪指令语句经汇编后不产生任何机器代码,而指令性语句经汇编后会产生相应的机器代码;其次,伪指令语句所指示的操作是在程序汇编时就完成了的,而指令性语句的操作必须在程序运行时才能完成。,4.2.2 汇编语言的语句格式,标识项 操作项 操作数 ; 注释项,其中带方括号的项表示可选项。,是用标识符表示的符号。,是语句要进行某种操作的助记符,可以是前述三类语句之一。,操作数项根据不同的语句,操作数项由0个、1个或多个表达式

4、组成,并由它提供执行指定操作所需要的操作数或地址,当操作数不止一个时,相互之间应该用逗号隔开。,必须以分号开头,主要用来说明程序或重要语句的功能。也可单独出现在程序的任何位置。,语句书写时项与项之间必须用空格或“TAB”符分隔。,补充例题,1. 标识项,标识项出现在指令语句或宏指令语句前时,称该标识项为标号且对应的标识符后面必须跟有冒号,标号在汇编以后分配有地址。标号又称为符号地址,可作为转移指令或子程序调用的目标地址。,若标识项出现在伪指令语句前,则该标识项称为符号名,根据不同的伪指令,这些符号又可分为变量名、符号常数名、子程序名或段名等。,标识项的书写有严格的规定,这可使用下列字符;,字母

5、 AZ、az; 数字 09; 特殊符号 ?、$等。,标识项的第1个字符不可以是数字,必须是字母或特殊字符,但是问号本身不能单独作为标识,标识中如果用到“”,则必须是第一个字符。标识最多31个字符组成,多则无效。,注意:标识不能使用汇编语言的专用保留字。寄存器名,8086、8088汇编语言中的指令助记符,伪指令名,表达式中使用的运算符和属性运算符等均不能作为标识项,否则汇编时会给出错误信息;标识项在程序中不能重复定义。,2. 操作项,操作项表示语句要实现的的具体操作,可以是指令、宏指令语句、伪指令的助记符,操作项是汇编语句中不可缺少的部分。汇编程序对上述三类语句会作不同的处理。,对指令语句,汇编

6、程序会将它翻译成二进制代码;,对于伪指令语句,汇编程序会按其指定的伪操作进行处理。,对于宏指令语句,汇编程序将其展开,也就是用宏体替代原来的 宏指令语句,并翻译成机器指令。,3. 操作数项,操作数项根据不同的语句由一个或多个表达式组成,它给执行的操作提供原始数据并指出结果数据存储位置。,操作数项常见形式有:常数、寄存器、标号、变量或表达式等。其中表达式是由常数、变量、标号通过操作数运算符连接而成的式子。,注意:表达式的值是在汇编过程中计算出来的,根据表达式中的成分,计算出来的结果可能是操作数的地址值,也可能就是操作数。两个以上的表达式要用逗号分开。,4. 注释项,注释项主要来说明程序或语句功能

7、,增加程序的可读性。,分号“;”放在某一行的开头,用来说明下一段程序的功能。,分号加到指令前,可暂时冻结有疑问的指令,调试正确后,再把这些指令解冻或删除。,分号“;”放在语句后,用来说明该语句的功能。,4.2.3 指令语句的操作数组成,1 常数 常数分为数值常数、字符串常数和符号常数。,数值常数可为二、八、十、十六进制数,用不同的后缀来区别。当操作数或地址使用十六进制数表示时,若数值的最高位以AF开头,则必须在它前面加上1个0,以免和变量、标号或寄存器名混淆。,字符串常数是指用单引号括起来的一个字符或多个字符的序列。,符号常数一般在数据段中用EQU伪指令或 “=” 伪指令定义。程序中可用符号名

8、代表一个常数或表达式值,以增加程序的可读性。符号常数可在表达式中使用,也可单独作为操作数出现在语句中。,补充例题,2 变量,变量是1 个数据存储单元的名字,即数据存放地址的符号表示。,它一般在除代码段以外的其它段中用伪指令进行定义的,可经常做为操作数出现在各种语句中。,定义变量实际上就是给变量分配内存单元。,变量有3种属性:段属性、偏移属性和类型属性。,段属性;表示变量所在段的起始地址。,偏移属性;表示变量在段内的偏移地址,即从段的起始地址开始到变量所对应的内存单元之间的字节数,用16位无符号数表示偏移地址。,类型属性;表示该变量能存放的数据长度,它与变量定义时使用的伪指令有关。,注意:同一个

9、标号或变量的定义在1个程序中只允许1次,否则会出现重复定义错误。,段属性;表示该标号的段起始地址,且该地址一定是在 cs 段 寄存器中。,偏移属性;表示标号在代码段中的段内偏移地址,是一个16位的无符号数,表示从段起始地址开始到定义标号的位置之间的距离(字节数),类型属性;表示该标号是在本段内引用,还是在其他段中引用。在段内引用的标号为 NEAR 属性,在段外引用的标号为 FAR 属性。,3 标号,标号一般在代码段中定义,出现在指令语句前面,后面跟“:” 与指令操作符分离,它表示指令的符号地址,指示汇编后该指令代码 在内存中的位置。,4 表达式,表达式是由常数、变量、标号通过运算符或操作符连接

10、而成的,它可以分为数值表达式和地址表达式。,数值表达式主要由算术运算符、关系运算符和逻辑运算符连接常数组成的有意义的式子,运算结果为数值常数,只有大小,没有属性。,地址表达式是由变量、标号、常数、寄存器(BP、BX、SI、DI)的内容和操作符组成的有意义的式子,它的运算结果不是1个单纯的数值,总是和存储器地址相联系。单个变量、标号、寄存器的内容是地址表达式的特例。,4.2.4 指令语句中的运算符和操作符,1 运算符,(1)算术运算符 算术运算符有+、*、/、MOD、右移SHR和左移SHL运算符。,(2)逻辑运算符 依次为NOT、AND、OR、XOR。是按位进行操作,位与位之间没有进位和借位,其

11、结果为整数常量。NOT为单操作运算符,其余为双操作数运算符。,补充例题,补充例题,(3)关系运算符,关系运算符有六种分别为: EQ 相等 NE 不等 LT 小于 LE 小于或等于 GT 大于 GE 大于或等于,它们用两个表达式值的比较,表达式的值一定是常数或是同一段内的偏移地址,比较的结果为逻辑值,关系成立,结果为真,用全1表示,即0FFFFH;不成立为假用全0表示,即0。,补充例题,(1)数值回送操作符 有五种,这些操作符的运算对象必须是变量或标号,其运算结果是变量或标号的特征值或是它们对应的内存单元地址(段基址或段内偏移地址)。,下面介绍五种数值回送操作符。,1) 取偏移地址操作符OFFS

12、ET,格式: OFFSET 变量或标号,功能:当操作符OFFSET置于变量或标号前时,汇编程序就自动计算出该变量或标号在它段内的偏移地址。,例如: MOV SI,OFFSET BUF 说明:汇编程序将BUF在数据段内的偏移地址作为立即数送到SI中。,2 操作符,补充例题,2) 取段基址操作符SEG(Segment),格式:SEG 变量或标号,功能:当操作符 SEG 置于变量或符号前面时,汇编程序就回送变量或标号所在段的段基址。,例如: MOV AX,SEG BUF,说明:若BUF是从存储器的2000H地址处开始的1个数据段 DATA中的变量,则该语句的功能是将变量BUF的段基址2000H作为立

13、即数存放到AX寄存器。,补充例题,3) 取类型操作符TYPE,格式:TYPE 变量或标号,功能:当操作符TYPE置于变量前面时,汇编程序按操作符TYPE的功能,取得变量的类型数字,该数字表示该变量所分配的存储单元(字节)数:即DB为1,DW为2,DD为4,DT为10。 当操作符TYPE置于标号前面时,汇编程序按其功能,返回标号的类型属性值;当该标号为NEAR属性时,返回值为一1,标号为FAR属性时,返回值为一2。,例如: 数据段中有如下定义:DATA DW 75H, 134H 执行:ADD SI, TYPE DATA 该语句在汇编后相当于指令ADD SI,2。,补充例题,4) 取变量所含的数据

14、存储单元个数操作符 LENGTH,格式 :LENGTlH 变量,功能:操作符 LENGTH 只对变量起作用,它的取值根据定义该变量时,数据定义伪指令后面第1个表达式的形式而定。如果第1个表达式为重复子句“n DUP(表达式)”,则返回外层操作符DUP前面的重复因子n;如果为其它形式的表达式,则返回值为1。,5) 取变量所含的数据存储区大小操作符SIZE,格式:SIZE 变量,功能:操作符SIZE仅对变量起作用,汇编程序用该操作符返回的值 表示该变量所分配的总字节数,此数的值是(LENGTH 变量)(TYPE 变量)。,补充例题,补充例题,属性修改操作符主要用于临时修改变量、标号或某个内存单元中

15、的操作数的类型属性,它们共有五种:,1) 属性定义操作符PTR(Pointer),格式:类型 PTR 地址表达式,功能:操作符PTR的作用是将地址表达式的原类型属性临时修改成操作符PTR前面所指定的类型或专门指定某操作数地址的类型。地址表达式的形式可以是标号、变量或是用作地址偏移量的寄存器。指定的类型可以是BYTE、WORD 或 DWORD 。,2) 操作符SHORT,格式:SHORT 标号,功能:操作符SHORT。用来说明JMP指令中转移地址的属性是短属性,即转移的范围比较小,其转向地址是在JMP的下一条指令地址IP值上加上1 B的偏移量,即转移范围在IP-128IP+127之间。,(2)属

16、性修改操作符,补充例题,3) 操作符THIS,格式:THIS属性或类型,功能:指定下一个能分配的存储单元的类型。操作符THIS和操作符PTR相似,它可以建立一个指定类型或指定距离的地址操作数。当建立一个指定类型的地址操作数时,该操作数的段基址和段内偏移地址与下一个存储单元地址相同。它常与伪指令EQU或“=”等连用。 例如: NEWTYPE EQU THIS BYTE WORDTYPE DW 10H,2356H,汇编后建立1个新的地址操作数 NEWTYPE,它的段基址,段内偏移地址和WORDTYPE相同,但 NEWTYPE 将紧跟其后的变量重新定义为字节类型的,而WORDTYPE是字类型。根据需要可以选择其中的符号地址,取1B的数据用符号地址NEWTYPE,取1个字的数据用符号地址WORDTYPE 。,补充例题,4) 操作符HIGH和LOW,格式:HIGHLOW 常数或地址

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

当前位置:首页 > 高等教育 > 大学课件

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