汇编语言PPT教学课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/12/12
11
分隔符
语句的4个组成部分要用分隔符分开 标号后用冒号,注释前用分号 操作数之间和参数之间使用逗号分隔 其他部分通常采用空格或制表符 多个空格和制表符的作用与一个相同 续行符 “&”
2020/12/12
12
属性
常数:无
属性
段
变量 偏置
字节
类型
字
双字 段
标号 偏置
操作数与参数
指令的操作数可以是立即数、寄存器和 存储单元。
伪指令的参数可以是常数、变量名、表 达式等,可以有多个,参数之间用逗号分隔。
2020/12/12
10
注释
语句中由分号“;”开始的部分为注释内容, 用以增加源程序的可读性。
必要时,一个语句行也可以由分号开始作为阶 段性注释。
汇编程序在翻译源程序时将跳过该部分,不对 它们做任何处理。
汇编语言大小写不敏感
2020/12/12
8
助记符
指令(操作码)助记符是指令名称的代 表符号,它指出指令的操作类型,汇编 程序将其译成机器指令。
伪指令助记符(定义符)是在对源程序汇 编期间由汇编程序处理的操作,如定义 数据、分配存储区、指示程序结束等。 没有对应的机器指令。
2020/12/12
9
近
类型
远
2020/12/12
13
4.2 8086汇编语言中的 伪指令
伪指令语句主要完成变量定义、存储 器分配、指示程序开始和结束、段定义、 段分配等。
伪指令语句没有对应的机器代码,它 是由汇编程序(MASM)对源程序汇编期 间进行处理的。
2020/12/12
14
4.2.1 符号定义语句
1.EQU 格式: 符号名 EQU 表达式 功能: 定义符号名 2.= 格式: 符号名 = 表达式 功能:与EQU相同
2020/12/12
5
语句格式
⑴ 指令性语句——由指令构成的语句,它通常对应一条机 器指令,出现在程序的代码段中:
[标号:] 指令助记符 [操作数1][,操作数2][;注释]
操作码
⑵ 说明性语句——由伪指令构成的语句,它通常指示汇 编程序如何汇编源程序:
[名字] 伪指令助记符 参数,参数,… [;注释]
汇编语言是面向机器的,是和机器的 硬件密切相关的。
汇编语言编写的程序效率高,节省内 存,运算速度快。
2020/12/12
3
编辑
4.1 8086汇编语言的语句
MASM
A.ASM
汇编语言源 程序文件
汇编
A.OBJ
目标 文件
LINK
A.EXE
可执行 连接 文件
伪指令
汇编
第一遍扫描:存储分配 第二遍扫描:代真
PORTA EQU 4000 × PORTB = 1000
2020/12/12
16
4.2.2 变量定义语句
格式1:[变量名] 助记符 操作数,操作数,……[;注释] 格式2:[变量名] 助记符 n DUP(操作数,操作数,……)[;注释]
变量名为用户自定义标识符,代表紧跟在它后面的操作 数的逻辑地址;用这个符号表示地址,常称为符号地址。
➢EQU与“=”的不同点在于,EQU不能重新定义,而 “=”可以。
➢常数若使用有意义的符号名来表示,可以提高程序的可 读性,同时更具有通用性
2020/12/12
15
符号定义
PORTA equ 10H PORTB = 12H DATA equ 20
符号应用(左侧的符号形式等价右边程序段) IN AL,PORTA ;IN AL,10H OUT PORTB,AL ;OUT 12H,AL MOV AX,DATA*2 ;MOV AX,20*2
第4 章 8086汇编语言
2020/12/12
1
本章要点
1. 掌握汇编语言语句格式 2. 掌握段定义源程序格式 3. 了解指令与伪指令的区别,掌握常用伪指令的使用。 4. 掌握常量表达式、变量的定义及应用;变量、标号
的属性。 5. 掌握基本DOS功能的调用
2020/12/12
2
汇编语言是利用指令的助记符、符号 地址、标号来编写的语言,它是机器语 言的符号表示,是低级语言。
2020/12/12
17
定义存储单元伪指令助记符
变量定义伪指令根据申请的主存空间单位分类 DB——定义字节伪指令 DW——定义字伪指令 DD——定义双字伪指令 DQ——定义4字伪指令 DT——定义10字节伪指令
2020/12/12
18
DB 定义字节单元伪指令
DB伪指令用于分配一个或多个字节单元,并可以将 它们初始化为指定值
汇编语句
指令性语句 伪指令语句
2020/12/12
执行
指令
4
指令和伪指令
指令——使CPU产生动作、并在程序执行时才处理的 语句,生成目标码。
伪指令——不产生CPU动作、在程序执行前由汇编程 序处理的说明性语句,例如,数据说明、变量定义 等等,不生成目标码。 MOV SP,BX 10011 DB 1,2
一个程序中,每个标识符的定义是唯一的,还不 能是汇编语言采用的保留字。
2020/12/12
7
保留字
保留字是汇编程序已经利用的标识符,主要有:
o 指令助记符——例如:MOV、ADD o 伪指令助记符——例如:DB、EQU o 操作符——例如:OFFSET、PTR o 寄存器名——例如:AX、CS o 预定义符号——例如:@data
初值表中每个数据一定是字节量(Byte),存放一 个8位数据:
可以是0~255的无符号数 或是-128~+127带符号数 也可以是字符串常数
2020/12/12
19
存储单元 偏移地址
Data segment
;数据段
X d,?
Y db 'ABC'
变量名可以没有。这种情况,汇编程序将直接为操作数 分配空间,无符号地址。
设置变量名是为了方便存取它指示的存储单元。
n 必须是正整数,表示括号中的操作数重复的次数
DUP——表示重复
操作数可以是常数、字符串、变量、标号、表达式、?等, 多个操作数之间必须要用逗号分开。
?——表示初值不确定,即未赋初值;
定义
2020/12/12
6
标号、变量与标识符
标号是反映指令位置(逻辑地址)的标识符,后跟一个冒
号分隔。
变量是反映伪指令位置(逻辑地址)和属性的标识符,后
跟空格或制表符分隔,没有冒号。
标识符一般最多由31个字母、数字及规定的特殊符号
(如 _、$、?、@)组成,不能以数字开头。默认情 况下,汇编程序不区别标识符中的字母大小写。