第5章 汇编语言的基本语法.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020-12-1
谢谢你的观赏
10
▪ 伪指令语句是说明性语句,其格式为:
[名字]伪指令说明符[参数表达式1[,参数表达式2[,…… ]]] [;注释]
▪ 其中,伪指令说明符(伪指令名)是伪指令语句中不可缺少 的主体,其余部分(方括号中的内容)有时可省略。
▪ 名字可为段名、过程名、变量名、符号名(或常量名)、宏 名、结构名、记录名等。
MOV DL, AL ;显示16进制数
ROL BX,CL
MOV AH,2
MOV AL,BL
INT 21H
AND AL,0FH ;AL中为一位16进制数 DEC CH
ADD AL,30H ;转换为ASCII码值
JNZ ROTATE
CMP AL,’9’ ;是0~9的数码?
MOV AX,4C00H;返回DOS
即,A EQU 7
可以:A=7
A EQU 8 (不允许)
A=8
2020-12-1
谢谢你的观赏
15
(2) 变量
▪ 编程时只能确定其初始值,程序运行期间可修改其值的数 据对象称为变量。变量是存储单元中的数据,可定义在任 何段(DS、 ES、 SS、 CS),但通常都定义在数据段(DS) 和附加段(ES)。
2020-12-1
谢谢你的观赏
13
5.1.4 汇编语言的表达式
1. 汇编语言的标识符 2. 汇编语言的操作对象( 数据类型)
(1) 常数、常量
▪ 编程时已经确定其值,程序运行期间不会改变其值的数据 对象称为常数。
▪ 8086/8088CPU允许定义四种形式的常数: 整数、字符串、 “组合BCD码数”和实数(浮点数),但只能处理整数、字 符串、“组合BCD码数”,不能处理实数(浮点数)。
ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA
MOV DS,AX MOV AX,STACK MOV SS, AX MOV SP,TOP
: CODE ENDS
END START
2020-12-1
谢谢你的观赏
9
5.1.2 汇编语言源程序的组成
1. 伪指令语句和指令语句
▪ 汇编语言源程序中除了包含机器指令外,还应包含说明性 的“指令”。这些说明性的“指令”是面向汇编程序和连 接程序的,称为伪指令(Directives)。
▪ 宏汇编程序5.0版(MASM V5.0)规定,汇编语言源程序的 每行只能写一个语句: 指令语句或伪指令语句。行长不 能超过128个字符。每个语句最多可由四个字段组成: 名 字字段、操作字段、操作数字段和注释字段。
2020-12-1
谢谢你的观赏
14
▪ 常数表达式的名字称为常量。
(程序员给出的一个名或助记名作为一个确定值的标识, 其值在程序执行过程中保持不变。)
▪ 常量可用伪指令说明符“EQU”或“=”定义。 ▪ 例如,A EQU 7或 A = 7都可将常量A的值定义为常数7。
▪ 注意:伪指令说明符EQU左边的符号名不允许重复定义, 而“=”左边的符号名可以重复定义。
BEGIN:
MOV AX, DATA
MOV DS,AX
MOV DX,OFFSET NOTES ;显示提示信息
MOV AH,9H
INT 21H
MOV BX,NUM
wenku.baidu.com
;将数装入BX
MOV CH,4
;CH作循环计数器
2020-12-1
谢谢你的观赏
7
示例程序(续)
ROTATE :
DISPLAY:
MOV CL, 4 ;CL中放移位位数
2020-12-1
谢谢你的观赏
12
▪ 汇编程序负责计算伪指令语句中表达式的值,解释伪指令 语句的含义并遵照“执行”,但并不产生机器代码。
▪ 汇编程序负责计算指令语句中表达式的值,并将汇编指令 翻译成机器指令代码。
▪ 指令语句经汇编后,在可执行程序运行期间由CPU解释, 并由CPU按指令的要求完成各种运算与操作。
2020-12-1
谢谢你的观赏
3
Assemble Language
用汇编语言编写的程序不 能由机器直接执行,而必 须经汇编程序翻译成机器 语言程序。汇编语言指令 与翻译成的机器语言指令 之间基本是一一对应的关 系。
汇编过程示意:
2020-12-1
谢谢你的观赏
4
采用汇编语言进行程序设计的优点:
第5章 汇编语言的基本语法
2020-12-1
谢谢你的观赏
1
本章主要内容
1.汇编语言的主要特点 2.汇编语言源程序的基本结构 3.汇编语言的表达式和伪操作符 4.汇编语言程序的上机过程
2020-12-1
谢谢你的观赏
2
Assemble Language
一种面向机器的程序设计语言,是一种用符号表 示的低级程序设计语言(机器语言的符号化描 述),通常是为特定计算机或计算机系列专门设 计的。
▪ 例: ▪ A DB 20H,30H ; 注释
2020-12-1
谢谢你的观赏
11
▪ 指令语句是可执行语句,其格式为:
[名字:]指令操作助记符[操作数表达式1[,操作数表达式2]][;注释]
▪ 其中,指令操作助记符(指令名)是指令语句中不可缺少的 主体,其余部分(方括号中的内容)有时可省略。
▪ 名字只能是标号。 ▪ 注释以分号开头,分号右边的内容将被汇编程序忽略。 ▪例 ▪ L: ADD AX,BX ;注释
可充分利用机器的硬件功能和结构特点,加快程 序的执行速度,减少目标程序所占用的存储空间。
常用来编写实时控制程序、实时通信程序,有时 也用来编制某些系统软件程序。
2020-12-1
谢谢你的观赏
5
缺点: 1. 编程效率低(与人们描述计算过程的需要差距
大);
2. 与机器硬件的具体结构联系过于紧密 ——在一种结构的机器上开发的程序极难移植
到另一种不同结构的机器上去。
2020-12-1
谢谢你的观赏
6
示例程序
DATA SEGMENT
;数据段
NUM DW 0011101000000111B
NOTES DB ‘The result is :’ , ’$’
DATA ENDS
CODE SEGMENT
;代码段
ASSUME CS:CODE,DS:DATA
JLE DISPLAY
INT 21H
ADD AL,07H ;在A~F之间
CODE ENDS ;代码段结束
END BEGIN ;模块结束
2020-12-1
谢谢你的观赏
8
堆栈段定义格式
STACK SEGMENT STACK STA DB 50 DUP (?) TOP EQU LENGTH STA
STACK ENDS CODE SEGMENT