北理工自动化复试微机原理-第七章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标号名
伪指令
操作数
;注释
图7-1 伪指令语句格式
返回
微 机 原 理 及 应 用
常数、变量和标号
常数、变量和标号是汇编语言能识别的数据项, 它是指令和伪指令语句中操作数的基本组成部 分。一个数据项包含它的数值和属性两部分, 这两部分对一条语句汇编成机器目标代码都有 直接关系。 • 常数
• 变量
• 标号
返回
微 机 原 理 及 应 用
段属性
• 段属性(SEG):表示变量存放在哪一个逻辑 中,即变量所在段的段基值。 • 在上例中变量名为DATA1、DATA2、DATA3 的三个变量都存放在VAR_DATA逻辑段中 (用SEGMENT/ENDS伪指令定义一个逻辑 段)。当在指令中要对这些变量进行存取操作 时,事先要把它们所在段的段基值存放在某一 个段寄存器中。
格式:LENGTH
其中SIZE、LENGTH要求为符号名定义的数 据项必须是用重复格式DUP()定义的。
上一页 返回
微 机 原 理 及 应 用
组合运算符
• 组合运算符是用来改变或建立符号名的新类型。
(1)定义符号名为新类型
格式:(类型) PTR(符号名) (2)指定新类型 格式:THIS (类型) 例: 已知内存变量D1是字节属性,要把它的两 个字节内容送到AX中。 MOV AX, WORD PTR D1
微 机 原 理 及 应 用
常数的应用
在程序中,常数主要出现在:
• 指令语句中源操作数中做立即数,它应与目的操
作数的位数相一致,可以是8位或16位的。 • 在指令语句中的基址加变址的寻址方式中作位 移量。 • 在数据定义伪指令中。
MOV AX,1234H
DB
MOV BX,[SI+32H]
12H ;定义一个字节数据
伪指令语句格式
这是一个任选字段。标号名 后面不能用冒号“:”,这是 这是伪指令语句不可省略的主 本字段是否需要,需要几 它与指令语句的突出区别。不 要成分。伪指令种类很多,如定 个,需要什么样的操作数 同的伪指令,标号名可以是常 义数据伪指令DB,DW,DD;段定 等都由伪指令字段中伪指 这是一个任选字段, 量名、变量名、过程名、结构 义伪指令SEGMENT;定义过程 令来确定。操作数可以是 它必须以分号为开 名、记录名等。它们可以作为 伪指令PROC等。它们是伪指令语 一个常数、字符串、常量 始,它的作用与指 伪指令语句和指令语句的操作 句要求汇编程序完成的具体操作 名、变量名、标号、一些 , 令语句的注释字段 数,这时,标号名就表示一个 命令。 专用的符号等。 相同。 常量或存储器地址。
(1)SEG 求段基址
格式:SEG 〈符号名〉
(2)OFFSET 求偏移地址
格式:OFFSET 〈符号名〉
(3)TYPE 求符号名类型值
格式:TYPE 〈符号名〉
下一页 返回
微 机 原 理 及 应 用
分析运算符
(4)SIZE 求为符号名分配的字节数
格式:SIZE〈符号名〉 (5)LENGTH 求为符号名分配的项数 〈符号名〉
43H
44H
44H
43H
00H
00H
45H
46H
46H
45H …
44H
43H
返回
…
…
微 机 原 理 及 应 用
带DUP表达式
• DUP是定义重复数据操作符。 • 使用DUP操作符格式是: 变量名+(DB,DW,DD)+表达式1 DUP (表达式2)
其中表达式1是重复的次数,表达式2是重复的 内容。
返回
微 机 原 理 及 应 用
内存数据定义伪指令
• 此指令主要有以下五大类:
一、字节定义伪指令
二、字定义伪指令
三、四字节定义伪指令
四、八字节定义伪指令
五、十字节定义伪指令
返回
微 机 原 理 及 应 用
• 不带引号的?表示可预臵任何内容。 • 例如: DA_B DA_W DB ? ,? DW ?, ?
第一条语句是要求汇编程序分配两个字节单位, 第二条语句是要求分配两个字单元。这些单元 里现在可以是任意值。
返回
微 机 原 理 及 应 用
字符串表达式
• DB伪指令:为字符串中每一个字符分配一个字节单元。 字符串必须是用引号括起来且不超过255个字符。字符 串自左至右以字符的ASCII码按地址递增的排列顺序依 次存放。 • DW伪指令:可以给两个字符组成的字符串分配两个字 节存储器单元,而且这两个字符ASCII码的存储顺序是 前一字符在高字节,后一字符在低字节,每一个数据 项不能多于两个字符。 • DD伪指令:仅可给两个字符组成的字符串分配四个字 节单元,且这两个字符ASCII码是存储在两个低字节中, 两个高字节均存放00H。 返回 下一页
• SHR:右移操作符
例如
32 MOD 5 = 2 21H SHL 2 = 2
返回
微 机 原 理 及 应 用
逻辑运算符
• AND:逻辑“与”操作符 • OR:逻辑“或”操作符 • XOR:“异或”操作符
• NOT:逻辑“非”操作符
例如 24H AND 0FH = 04H 24H XOR 0FH = 2BH
返回
微 机 原 理 及 应 用
常数
• 常数是没有任何属性的纯数值。在汇编期间,它的值 已能完全确定,且在程序运行中,它也不会发生变化。 它可以有以下几种类型:
(1)二进制数:以字母B结尾的,由0和1组成的数字序列,如 01011010B。 (2)八进制数:以字母O或Q结尾的0-7数字序列,如723Q,35O。 (3)十进制数:0-9数字序列,可以用字母D结尾,也可以没有 结尾字母。如129,129D。
微 机 原 理 及 应 用
第七章 汇编语言及汇编程序
• 宏汇编语言的基本语法
• 伪指令
• 宏指令
• 系统功能调用
• 汇编程序的功能及汇编过程
• 汇编语言程序设计
结束
微 机 原 理 及 应 用
宏汇编语言的基本语法
• 伪指令语句格式 • 常数、变量和标号 • 表达式与运算符
返回
微 机 原 理 及 应 用
例如: BB1 BB2 DB 12H DUP(’ABCD’)
DW 10H DUP(4)
微 机 原 理 及 应 用
例
ARRAY1 DB 2
题
ARRAY2
DUP(0,1,2,?)
700bytes
ARRAY2 DB 100 DUP(0, 2 DUP(1,2), 0, 3)
动画 返回
微 机 原 理 及 应 用
返回
微 机 原 理 及 应 用
偏移量属性
• 偏移量属性(OFFSET):表示变量在逻辑段 中离段起始点的字节数。 例如变量DATA1的偏移量为0,而DATA2的偏 移量为1,DATA3的偏移量为2。 • 段属性和偏移量属性构成了变量的逻辑地址。
返回
微 机 原 理 及 应 用
类属性
• 类属性(TYPE):表示变量占用存储单元的 字节数。 • 类属性是由数据定义伪指令DB,DW,DD来 规定的。 • 变量DATA1,DATA2是用DB定义的,它的类 属性为字节;而DATA3是用DW定义的,类属 性为字;如果用DD定义,类属性为双字。
返回
微 机 原 理 及 应 用
符号定义伪指令
• 格式:
(1)〈名字〉EQU〈表达式〉
(2)〈名字〉=〈表达式〉
作用:把表达式的值赋给符号名。
区别:在同一程序中,用EQU语句赋值的符号名 不能被重新赋值,但用“=”号赋值的符号名可以 被重新赋值。 “〈 〉”号表示此项不能缺省,但该符号不需要输 入。
返回
微 机 原 理 及 应 用
变量
• 变量是代表存放在某些存储单元的数据,这些 数据在程序运行期间随时可以修改。为了便于 对变量的访问,它常常以变量名的形式出现程 序中,它可以认为是存放在数据存储单元的符 号地址。 (1)变量的定义与预臵
(2)数据定义伪指令
返回
微 机 原 理 及 应 用
变量的定义与预臵
标号
• 标号是一条指令目标代码的符号地址,它常作 为转移指令(含子程序调用指令)的操作数。 与变量相似,每个标号亦具有三个属性: (1)段属性:表示这条指令目标代码在哪个逻 辑段中。 (2)偏移量属性:表示这条指令目标代码的首 字节在 段内离段起始点的字节数。 (3)距离属性:表示本标号可作为段内或段间 的转移特性。距离属性又分为NEAR(近)属性 和 FAR(远)属性。 返回
(1)符号定义伪指令 (8)定位伪指令
(2)内存数据定义伪指令 (9)列表伪指令 (3)段定义伪指令 (10)系统隐含进位制伪指令
(4)段寄存器说明伪指令 (11)连接伪指令 (5)子程序定义伪指令 (12)记录伪指令 (6)模块开始伪指令 (13)结构伪指令 (7)模块结束伪指令 (14)块注释伪指令
微 机 原 理 及 应 用
字符串表达式
STRING1 DB ‘ABCDEF’
STRING2 DW ‘AB’,’CD’,’EF’ STRING3 DD ‘AB’,CD’
动画
微 机 原 理 及 应 用
字符串表达式
STRING1 41H 42H STRING2 42H 41H STRING3 42H 41H
返回
微 机 原 理 及 应 用
分离运算符
• 分离运算符主要有以下两种类型: (1)LOW 取低字节 格式:LOW(表达式)
(2)HIGH 取高字节
格式:HIGH(表达式)
设AB=2050H
MOV AL, LOW AB MOV CL, HIGH AB
返回
微 机 原 理 及 应 用
伪指令
• 伪指令没有对应的机器指令,它不是有8086/8088 CPU来执行,而是有MASM-86识别,并完成相应 的功能。MASM-86中使用的伪指令可分成以下14 类:
微 机 原 理 及 应 用
wk.baidu.com表达式与运算符
• 表达式由操作数和运算符组成,而运算符主要 由以下几种类型组成: 一、算术运算符
二、逻辑运算符
三、关系运算符 四、分析运算符 五、组合运算符 六、分离运算符
返回
微 机 原 理 及 应 用
算术运算符
• +、-、*、/:加减乘除运算符 • MOD:除法取余运算符 • SHL:左移操作符
返回
微 机 原 理 及 应 用
关系运算符
• 关系运算是逻辑判定式的,当为“真”时结果 取0FFFFH,当为“假”时结果取0。关系运算 是数值型的。
EQ 等于
NE 不等于 LT 小于
LE
GT GE
小于等于
大于 大于等于
例如 5 LE 6 =0FFFFH
返回
微 机 原 理 及 应 用
分析运算符
• 分析运算符主要由以下几种类型组成:
• 定义变量就是给变量分配存储单元,且对这个 存储单元赋予一个符号名,即变量名,同时将 这些存储单元预臵初值。 VAR-DATA SEGMENT DATA1 DB 12H DATA2 DB 34H
DATA3 DW 9876H
VAR-DATA ENDS
微 机 原 理 及 应 用
变量的属性
• 定义变量是用数据定义伪指令DB,DW,DD 等。经过定义的变量,每个变量均有三个属性: (1)段属性(SEG) (2)偏移量属性(OFFSET) (3)类属性(TYPE)
返回
微 机 原 理 及 应 用
数据定义伪指令
• 该伪指令主要为数据项分配存储单元并预初值。
• 格式:
变量名+(DB/DW/DD)+表达式1,表达式2,…
其中表达式1,表达式2,…是给变量赋予的初值。 表达式可以有如下几种情况:
(1)数值表达式 (2)?表达式 (3)字符串表达式 (4)带DUP表达式
(4)十六进制数:以字母H结尾,由数字0-9和字母A-F(或a-f) 组成的序列,如3A5BH,0FH。为了区别由A-F组成的是一个十六进 制数还是一个标识符,凡以字母A-F为起始的一个十六进制数,必 须在前面冠以数字“0”,否则汇编程序认作标识符。
微 机 原 理 及 应 用
常数
(5)实数:它由整数、小数和指数三部分组成,这是 计算机中的浮点表示法。实数一般用十进制数形式给 出,实数的格式如下: ±整数部分. 小数部分E ±指数部分 其中,整数和小数部分形成这个数的值,称作尾数, 它可以是带符号的数。指数部分由指数标识符E开始, 它表示了值的大小,如5.213E-4。 (6)字符串常数:用引号括起来的一个或多个字符。 这些字符以ASCII码形式存储在内存中。如“AB”,在 内存中就是41H,42H。
返回
微 机 原 理 及 应 用
数值表达式
• 例如:
DA_BYTE
DA_WORD
DB 50H, 50
DW 0A3F1H, 4981H
变量DA_BYTE的内容为50H,它的下一个字节 为32H。
DA_WORD字单元内容为0A3F1H,它的下一 字单元为4981H。
返回
微 机 原 理 及 应 用
?表达式