微机原理与接口技术.ppt_第1页
微机原理与接口技术.ppt_第2页
微机原理与接口技术.ppt_第3页
微机原理与接口技术.ppt_第4页
微机原理与接口技术.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 MASM伪指令系统,3.1.1汇编语句种类与格式,汇编语言源程序中可以使用3类语句,指令性语句,伪指令语句,宏指令语句,(1)、指令性语句,能够被CPU所执行的语句,一条指令性语句对应于一条机器指令,指令性语句的种类取决与CPU的指令系统,(2)、伪指令语句,用于控制汇编过程,为汇编器提供必要的辅助信息的语句,如定义变量、定义符号常量等,该类语句也称为指示性语句。,(2)、伪指令语句与指令性语句间的区别,伪指令:汇编后不产生任何机器代码 指令性语句:汇编后产生机器代码,(3)、宏指令语句,为多次重复使用的一段程序起一个名字,在程序其他地方使用这段程序时,使用名字替代该段程序。被名字替换

2、的这段程序就叫宏。,宏展开:将名字还原为程序的过程,宏指令:用名字代替一段程序,宏名形成的指令称为宏指令。,第3章 MASM伪指令系统,3.1.2汇编语言语句的格式,指令性语句的一般格式为:,标号: 指令助记符 操作数1,操作数2 ;注释,指示性语句的一般格式为:,名字 伪指令定义符 参数,参数 ;注释,(1)、标号、名字,标号与符号统称符号,符号是一个字符串,可以使用字母、数字、特殊符号,字母:az ,AZ 数字:09 特殊符号:? . _ $等,(2)、助记符、定义符,助记符:定义了该语句实现的操作 定义符:定义了该伪指令所要实现的操作,(3)、参数,用于说明操作的对象,参数的类型和数目随

3、指令或伪指令而变。 参数可以是:常数、寄存器数、存储器数,(3)、参数,常数:二进制常数,由0和1组成,以字母B结尾 八进制常数,由07组成,以字母Q结尾 十六进制常数,以09及AF组成,以字母F结尾 串常量,用引号引起来的字符串,其值为ASCII码,(3)、参数,算术运算符: + - * / MOD,参与运算的数为整数,结果也为整数 如:ADD AX,100*4 + 2 SUB CX,101 / 2,(3)、参数,逻辑运算符: NOT,AND,OR,XOR,SHR,SHL 例如: MOV AX,1 SHL 3 OR AL,3 AND 58Q,(3)、参数,关系运算符: EQ,NE,LT,LE

4、,GT,GE 例如: MOV AX,123 GT 3,(3)、参数,注释: 用于说明程序的作用,可有可无,如果有,以;号开头,3.2常用伪指令,常用伪指令有一下几类,符号定义伪指令,数据定义伪指令,标号,析值/属性操作符,段定义伪指令,3.2.1符号定义伪指令,1、等值语句 EQU 格式:变量名 EQU 表达式 作用:通知汇编器,EQU左边和右边是等同的, 使用时,用变量名替代表达式 示例: COUNT EQU 15 MOV AX,COUNT,3.2.1符号定义伪指令,1、等值语句 EQU 使用注意事项: (1)EQU 所定义的符号,仅仅是用于替代右边的字符,不占用存储空间,也不产生目标代码

5、(2)符号必须先定义后使用 (3)同一源程序中,EQU所定义的符号不能重新定义,3.2.1符号定义伪指令,1、等号伪指令 格式:变量名 = 表达式 作用:与EQU类似,但表达式只能是数值表达式,且允许重复定义 示例: COUNT = 15 MOV AX,COUNT,3.2.2数据定义与变量伪指令,1、数据定义伪指令 格式: 变量名 DB 初值表达式 变量名 DW 初值表达式 变量名 DD 初值表达式 变量名 DQ 初值表达式 变量名 DT 初值表达式,3.2.2数据定义与变量伪指令,1、数据定义伪指令 DB:变量占1个字节存储空间 DW:变量占1个字存储空间 DD:变量占2个字存储空间 DQ:

6、变量占4个字存储空间 DT:变量占5个字存储空间,3.2.2数据定义与变量伪指令,2、功能: 定义变量,并指导汇编器为变量分配指定的存储空间,并初始化为变量定义语句中的初值表达式。 示例: B0 DB 2 B1 DB 3,5,?,9 B2 DW 10H,2 DUP(1234H,?) B3 DD 1,2 B4 DB 0,2 DUP(?,1,2 DUP(7),3.2.2数据定义与变量伪指令,3、注意事项: (1)每个初值所占用的空间取决于伪指令 (2)如果不想初始化,可以用?号,表示分配空间,但初值不确定 (3)对于重复的初值,可以用DUP描述,3.2.2数据定义与变量伪指令,4、变量的访问: 变

7、量名代表初值表达式列表所对应的存储单元的首地址,变量的访问类似于数组,变量名为该数组的首地址。,3.2.2数据定义与变量伪指令,5、示例: DA2 DB 1,3,5 MOV AL,DA2 MOV AH,DA2 + 2 MOV BL,DA2 + 1,3.2.2数据定义与变量伪指令,6、变量的属性: 变量定义后,具有以下3个属性: (1)、段属性:变量所在段的段基址 (2)、偏移属性:该变量的段内偏移量 (3)、类型属性:该变量所占用的存储单元,3.2.3标号及其属性,1、标号的概念: 标号是一条指令的符号地址,它常用作转移指令或子程序调用指令的操作数。,3.2.3标号及其属性,2、标号的属性:

8、段属性:标号所在段的段基址 偏移属性:标号所指出的机器码的段内偏移量 类型属性:该标号的有效范围,有NEAR类型和 FAR类型,3.2.3标号及其属性,3、标号的定义: 在指令助记符前加上标号,并用冒号:分隔,3.2.3标号及其属性,4、示例: MOV CX,20 AGAIN:ADD AX,AX DEC CX JNZ AGAIN,3.2.4析值/属性操作符,1、析值操作符: 析值操作符也称地址回送操作符,作用是把变量或标号的地址取出 (1) 取偏移地址操作符OFFSET 格式 :OFFSET 变量或标号 示例:MOV SI,OFFSET BUF (2) 取段基址操作符 SEG 格式:SEG 变

9、量或标号 示例:MOV AX,SEG BUF,3.2.4析值/属性操作符,2、属性改变操作符: 格式: 类型 PTR 地址表达式 功能:将地址表达式所指的内存单元临时指定为PTR前面所给定的类型 允许的类型有:BYTE,WORD,DWORD,NEAR,FAR,3.2.4析值/属性操作符,2、属性改变操作符: 用法: (1)、说明存储单元的类型 MOV BYTE PTR SI,5 (2)、改变存储单元属性 A_BYTE DB 1,2,3,4 MOV AX, WORD PTR A_BYTE (3)、建立FAR标号 L_NEAR : MOV AX,0 L_FAR EQU FAR PTR L_NEAR

10、,3.2.5段定义伪指令,1、段定义伪指令: 格式: 段名 SEGMENT 定位类型 组合类型 类别 段名 ENDS,3.2.5段定义伪指令,1、段定义伪指令: 说明: (1)、段名的命名方法同符号的命名方法 (2)、关键字SEGMENT开始一个段的定义,ENDS结束 一个段的定义 (3)、SEGMENT与ENDS之间的内容为一个逻辑段 (4)、段定义的参数可以省略,一般情况都省略,3.2.5段定义伪指令,1、段定义伪指令: 示例: DATA SEGMENT A DB, B DB ABCD DATA ENDS,3.2.5段定义伪指令,2、地址计数器: 每个逻辑段都有一个地址计数器,用于指出该段

11、已经使用的存储单元数,地址计数器名字为:$,在程序中可以使用$读取当前地址计数器的值 3、地址计数器的修改伪指令ORG: 用于调整地址计数器的值。,3.2.5段定义伪指令,示例: WW1 SEGMENT A1 DB 3 A2 DW 6,7 COUNT EQU $ - A2 ORG $ + 10 A3 DD 8 ORG 200H A4 DQ ? WW1 ENDS,3.3、程序的段结构,一个简单的汇编语言源程序 DATA SEGMENT VAR DB 12H DATA ENDS STACK SEGMENT STACK DB 300H DUP(?) STACK ENDS CODE SEGMENT A

12、SSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX INC VAR MOV AH,4CH,INT 21H CODE ENDS END STRAT,3.3.1、源程序的分段结构,段是程序的基本构成单位,8086的汇编程序由若干段组成,一般的小程序由数据段、堆栈段、代码段3个段构成。 一个程序必须有代码段,其余段根据需要定义。,3.3.2、段假设伪指令,格式:ASSUME 段寄存器:段名,段寄存器:段名, 功能:设定段和段寄存器的联系,设定好以后访问该段存储单元时可以省略段寄存器。 说明:可以多次使用ASSUME伪指令,一条ASSUME伪指令可以设定14段寄存器,3.3.3、段寄存器的装填,ASSUME指令仅仅告诉汇编器段寄存器与段之间的对应关系,但并没有初始化这些段寄存器,因此必须对段寄存器装入对应的段基址,3.3.3、段寄存器的装填,(1)、DS和ES的装填 MOV AX,DATA MOV DS,AX,3.3.3、段寄存器的装填,(1)、SS的装填 第一种方法:定义堆栈段时,指出组合类型为STACK,SS和SP的初始化由操作系统自动完成 第二种方法:雷同DS,ES的初始化 MOV AX,STAC

温馨提示

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

评论

0/150

提交评论