微机原理课件1第08次课第04章NEW

上传人:E**** 文档编号:91485683 上传时间:2019-06-28 格式:PPT 页数:121 大小:678KB
返回 下载 相关 举报
微机原理课件1第08次课第04章NEW_第1页
第1页 / 共121页
微机原理课件1第08次课第04章NEW_第2页
第2页 / 共121页
微机原理课件1第08次课第04章NEW_第3页
第3页 / 共121页
微机原理课件1第08次课第04章NEW_第4页
第4页 / 共121页
微机原理课件1第08次课第04章NEW_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《微机原理课件1第08次课第04章NEW》由会员分享,可在线阅读,更多相关《微机原理课件1第08次课第04章NEW(121页珍藏版)》请在金锄头文库上搜索。

1、第4章 汇编语言程序设计,微机原理及应用,本章主要内容:,汇编语言源程序的结构 汇编语言语句格式 伪指令 功能调用 汇编语言程序设计,微机原理及应用,一、计算机设计语言,机器语言 汇编语言 高级语言,面向机器 的语言,机器语言,汇编语言,高级语言,微机原理及应用,汇编程序,汇编语言源程序,用助记符编写,源程序的编译程序,汇编程序,汇编语言源程序,机器语言目标程序,微机原理及应用,二、汇编语言源程序结构,数据段名 SEGMENT 数据段名 ENDS 附加段名 SEGMENT 附加段名 ENDS,堆栈段名 SEGMENT 堆栈段名 ENDS 代码段名 SEGMENT 代码段名 ENDS,微机原理及

2、应用,三、汇编语言语句类型,指令性语句 指示性语句,CPU执行的语句,能够生成目标代码,CPU不执行,而由汇编程序执行的语句,不生成目标代码,微机原理及应用,四、汇编语言语句格式,指令性语句: 标号: 前缀 助记符 操作数,操作数 ;注释,指令的符号地址,标号后要有冒号,操作码,注释前加分号,指示性语句格式: 名字 伪指令助记符 操作数 ,操作数, ;注释,变量的符号地址,其后不加冒号,指示性语句中至少有一个操作数,微机原理及应用,区分标号和名字,标号后有冒号,在指令性语句前;名字后不加冒号,在指示性语句前。 英文字母、数字及专用字符组成,最大长度不能超过31个,且不能由数字打头,不能用保留字

3、(如寄存器名,指令助记符,伪指令)。,微机原理及应用,数据项及表达式,寄存器 存储器单元 常量 变量或标号 表达式,操作数,微机原理及应用,常量,数字常量:没有任何属性的纯数值。在汇编期间,它的值已能完全确定,且在程序运行中,它也不会发生变化。 字符串常量:用引号引起的字符或字符串 例:A,ABCD,汇编时被译成对应的ASCII码41H,42H,43H,44H,微机原理及应用,常数的应用,在程序中,常数主要出现在: 1)指令语句源操作数中做立即数,它应与目的操作数的位数相一致,可以是8位或16位的。 2)在指令语句中的基址加变址的寻址方式中作位移量。 3)在数据定义伪指令中。 例如: MOV

4、AX,1234H MOV BX,SI+32H DB 12H ;定义一个字节数据,微机原理及应用,变 量,变量是代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以修改。为了便于对变量的访问,它常常以变量名的形式出现程序中,它可以认为是存放在数据存储单元的符号地址。 (1) 变量的定义与预置 (2) 数据定义伪指令,微机原理及应用,变量的定义与预置,定义变量就是给变量分配存储单元,且对这个存储单元赋予一个符号名,即变量名,同时将这些存储单元预置初值。 VAR-DATA SEGMENT DATA1 DB 12H DATA2 DB 34H DATA3 DW 9876H VAR-DATA EN

5、DS,微机原理及应用,变量的属性,定义变量是用数据定义伪指令DB,DW,DD等。经过定义的变量,每个变量均有三个属性: (1)段属性(SEG) (2)偏移量属性(OFFSET) (3)类属性(TYPE),微机原理及应用,段属性,段属性(SEG):表示变量存放在哪一个逻辑中,即变量所在段的段基值。 例如: VAR-DATA SEGMENT DATA1 DB 12H DATA2 DB 34H DATA3 DW 9876H VAR-DATA ENDS 三个变量都存放在VAR_DATA逻辑段中。当在指令中要对这些变量进行存取操作时,事先要把它们所在段的段基值存放在某一个段寄存器中。,微机原理及应用,偏

6、移量属性,偏移量属性(OFFSET):表示变量在逻辑段中离段起始点的字节 数。 例如变量DATA1的偏移量为0,而DATA2的偏移量为1,DATA3的偏移量为2。 段属性和偏移量属性构成了变量的逻辑地址。,类属性,类属性(TYPE):表示变量占用存储单元的字节数。 类属性是由数据定义伪指令DB,DW,DD来规定的。 变量DATA1,DATA2的类属性为字节;而DATA3的类属性为字;如果用DD定义,类属性为双字。,微机原理及应用,标号,标号是一条指令目标代码的符号地址,它常作为转移指令(含子程序调用指令)的操作数。 与变量相似,每个标号亦具有三个属性: (1)段属性:表示这条指令目标代码在哪个

7、逻辑段中。 (2)偏移量属性:表示这条指令目标代码的首字节在段内离段起始点的字节数。 (3)距离属性:表示本标号可作为段内或段间的转移特性。距离属性又分为NEAR(近)属性和FAR(远)属性。,微机原理及应用,五、 表达式与运算符,表达式由操作数和运算符组成,而运算符主要由以下几种类型组成: 一、算术运算符(自学) 二、逻辑运算符(自学) 三、关系运算符(自学) 四、取值运算和属性运算符 五、其它运算符,微机原理及应用,算术运算符(自学),+、-、*、/:加减乘除运算符 MOD:除法取余运算符 例如: MOV AL, 32 MOD 5 ;(AL)= 2,逻辑运算符(自学),AND:逻辑“与”操

8、作符 OR:逻辑“或”操作符 XOR:“异或”操作符 NOT:逻辑“非”操作符 例如: MOV AL, 24H AND 0FH;(AL)=04H 24H XOR 0FH = 2BH,微机原理及应用,关系运算符(自学),参与关系运算的必须是两个数值,关系运算是数值型的。 关系运算是逻辑判定式,当为“真”时结果取0FFFFH,当为“假”时结果取0。 EQ 等于 LE 小于等于 NE 不等于 GT 大于 LT 小于 GE 大于等于 例如: 5 LT 6 = 0FFFFH,微机原理及应用,取值运算符,OFFSET 取得其后变量或标号的偏移地址 SEG 取得其后变量或标号的段地址,TYPE 取变量的类型

9、 LENGTH 取所定义存储区的长度 SIZE 取所定义存储区的字节数,用于分析存储器操作数的属性,微机原理及应用,取值运算符例,MOV AX,SEG DATA MOV DS,AX MOV BX,OFFSET DATA LEA BX,DATA,等价于,微机原理及应用,属性运算符,属性运算符PTR 用于指定其后存储器操作数的类型 格式:(类型) PTR(符号名) 例1:MOV BYTE PTRBX,12H 例2:已知内存变量D1是字节属性,要把它 的两个字节内容送到AX中。 MOV AX, WORD PTR D1,微机原理及应用,其它运算符,方括号: 方括号中内容为操作数的偏移地址 段重设符 段

10、寄存器名: 用于修改默认的段基地址 例: MOV AX,BX MOV AX,ES:BX,微机原理及应用,4.2 伪指令,掌握: 伪指令的格式及实现的操作 伪指令的应用,微机原理及应用,伪指令,由汇编程序执行的“指令系统”。伪指令没有对应的机器指令,它不是由8086/8088CPU来执行,而是由MASM-86识别,并完成相应的功能。 用于定义变量、分配存储区、定义逻辑段、指示程序开始和结束等,微机原理及应用,标号名,伪指令,操作数,注释,,,伪指令语句格式,这是一个任选字段。标号名后面不能用冒号“:”,这是它与指令语句的突出区别。不同的伪指令,标号名可以是常量名、变量名、过程名、结构名、记录名等

11、。它们可以作为伪指令语句和指令语句的操作数,这时,标号名就表示一个常量或存储器地址。,这是伪指令语句不可省略的主要成分。伪指令种类很多,如定义数据伪指令DB,DW,DD;段定义伪指令SEGMENT;定义过程伪指令PROC等。它们是伪指令语句要求汇编程序完成的具体操作命令。,本字段是否需要,需要几个,需要什么样的操作数等都由伪指令字段中伪指令来确定。操作数可以是一个常数、字符串、常量名、变量名、标号、一些专用的符号等。,这是一个任选字段,它必须以分号为开始,它的作用与指令语句的注释字段相同。,伪指令语句格式,微机原理及应用,伪指令,MASM-86识别的伪指令可分成以下几类: (1)符号定义伪指令

12、 (8)定位伪指令 (2)内存数据定义伪指令 (9)列表伪指令 (3)段定义伪指令 (10)系统隐含进位制伪指令 (4)段寄存器说明伪指令 (11)连接伪指令 (5)子程序定义伪指令 (12)记录伪指令 (6)模块开始伪指令 (13)结构伪指令 (7)模块结束伪指令 (14)块注释伪指令 (15)宏命令伪指令,微机原理及应用,符号定义伪指令,格式: (1)名字EQU表达式 (2)名字=表达式 作用:把表达式的值赋给符号名。 区别:在同一程序中,用EQU语句赋值的符号名不能被重新赋值,但用“=”号赋值的符号名可以被重新赋值。,微机原理及应用,符号定义伪指令,例: CONSTANT EQU 100

13、 VAR EQU 30H+99H,EQU说明的表达式不占用内存空间,微机原理及应用,内存数据定义伪指令,用于定义数据区中变量的类型 此指令主要有以下五大类:,字节定义伪指令DB 定义的变量为字节型 字定义伪指令DW 定义的变量为字类型 四字节定义伪指令DD 定义的变量为双字型 八字节定义伪指令DQ 定义的变量为4字型 十字节定义伪指令DT 定义的变量为10字节型,微机原理及应用,字节定义伪指令,格式: 名字 DB表达式或数据项表 表达式值或项表中的每一项是一个字节数,它们从符号名地址开始按字节连续存放,直到表中数据项结束(地址递增方向)。方括号 表示该项可以缺省。,字定义伪指令,格式: 名字

14、DW 表达式或数据项 除表达式值或项表中的每一项是两个字节数之外,其它与DB伪指令相同。,微机原理及应用,四字节定义伪指令,格式: 名字 DD表达式或数据项 表达式值或项表的每一项是四个字节数。,八字节定义伪指令,格式: 名字 DQ 表达式或数据项表 表达式值或数据项表的每一项是八字节数,各项从小地址一端连续存放,允许浮点数形式,与DD伪指令相同。高四个字节填0。,微机原理及应用,十字节定义伪指令,格式: 名字 DT表达式或数据项表 表达式值或数据项表的每一项是10个字节数,允许浮点数形式,与DQ伪指令相同,若项表中的数据项是十进制整数书写的,汇编程序按组合的BCD码格式存放,最低字节在高地址

15、一端存放,数据的最高字节的最高位是符号位,“0”表示正,“1”表示负。,微机原理及应用,数据定义伪指令,该伪指令主要为数据项分配存储单元并预初值。 该伪指令构成的语句格式是: DB 变量名+ DW +表达式1,表达式2, DD 其中表达式1,表达式2,是给变量赋予的初值。表达式可以有如下几种情况: (1)数值表达式 (2)?表达式 (3)字符串表达式 (4)带DUP表达式,微机原理及应用,数值表达式,例如: DA_BYTE DB 50H, 50 DA_WORD DW 0A3F1H, 4981H 变量DA_BYTE的内容为50H,它的下一个字节为32H。DA_WORD字单元内容为0A3F1H,它的下一字单元为4981H。,?表达式,不带引号的?表示可预置任何内容。 例如: DA_B DB ?, ? DA_W DW ?, ? 第一条语句是要求汇编程序分配两个字节单位,第二条语句是要求分配两个字单元。这些单元里现在可以是任意值。,微机原理及应用,字符串表达式,DB伪指令:为字符串中每一个字符分配一个字节单元。字符串必须是用引号括起来且不超过255个字符。字符串自左至右以字符的ASCII码按地址递增的排列顺序依次存放。 DW伪指令:可以给两个字符组成的字符串分配两个字节存储器单元,且这两个字符ASCII码的存储顺序是前一字符在高字节,后一字符在低字节,每一个

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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