没有合适的资源?快使用搜索试试~ 我知道了~
微型计算机原理技术 第04章.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 68 浏览量
2021-10-11
18:01:42
上传
评论
收藏 720KB PDF 举报
温馨提示
试读
25页
计算机技术
资源推荐
资源详情
资源评论
第一讲
第四章 汇编语言程序设计-语句特点、伪指令
回顾:8086/8088 的内部结构、寄存器功能和工作过程,指令格式、
寻址方式和功能。
重点和纲要:汇编语言程序设计-语句特点、伪指令(了解汇编的概念
及其方法 , 掌握汇编程序的基本格式,常用运算符的使用方
法,汇编的步骤。了解伪指令的功能,掌握定义数据、符号、
段、过程等伪指令的使用方法,能编写格式正确的汇编程序)。
讲授内容:
4.1 汇编语言的基本元素
一、 汇编语言的语句格式
由汇编语言编写的源程序是由许多语句 (也可称为汇编指令)组成的。每个语
句由 1~4 个部分组成,其格式是:
[标号] 指令助记符 [操作数][;注解]
其中用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一
个)分开,一行最多可有 132 个字符。
1.标识符
是给指令或某一存储单元地址所起的名字。
可由下列字符组成:
字母:A ~ z ; 数字:0 ~ 9 ; 特殊字符:?、· 、@、一、$ 。
数字不能作标识符的第一个字符,而圆点仅能用作第一个字符。标识符最长
为 31 个字符。当标识符后跟冒号时,表示是标号。它代表该行指令的起始地址;
当标识符后不带冒号时,表示变量;伪指令前的标识符不加冒号。
2.指令助记符
表示不同操作的指令
,可以是 8088 的指令助记符,也可以是伪指令。
3.操作数
是指令执行的对象。
依指令的要求,可能有一个、两个或者没有,
52
例如: RET ;无操作数
COUNT: INC CX ;一个操作数
如果是伪指令,则可能有多个操作数,例如:
COST DB 3,4,5,6,7 ;5 个操作数
MOV AX,[BP 十 4] ;第二个操作数为表达式
4.注解
该项可有可无,是为源程序所加的注解,用于提高程序的可读性。
二、 汇编语言的运算符
1.算术运算符、逻辑运算符和关系运算符
① 算术运算符可以应用于数字操作数,结果也是数字。而应用于存储器操作
数时,只有+、- 运算符有意义。
2.取值运算符 SEG、OFFSET、TYPE、SIZE 和 LENGTH
· SEG
和
OFFSET
分别给出一个变量或标号的段地址和偏移量。
例如,定义: SLOT DW 25
则:MOV AX,SLOT;从 SLOT 地址中取一个字送入 AX
MOV AX,SEG SLOT;将 SLOT 所在段的段地址送入 AX
MOV AX,OFFSET SLOT;将 SLOT 所在段的段内偏移地址送 AX
· TYPE
操作符返回一个表示存储器操作数类型的数值。
各种存储器地址操作数类
型部分的值如表 3-1 所示。
· LENGTH 和 SIZE 操作符只应用于数据存储
器操作数。(用 DB/DW/DD 等定义的操作数)
LENGTH
返回一个与存储器地址操作数相联系的单元数,
SIZE
操作数返回一个为存储器操作数分配的字节数。
例如:若 MULT-WORD DW 50DUP(0)
则 LENGTH(MULT-WORD)=50
SIZE(MULT-WORD)=100
注意:SIZE(X)=(LENGTH X)* (TYPE X)
表 3-1 存储器操作数的类型属性及返回值
字节
NEAR
1
-1
字
FAR
2 双字
-2
4
53
3.属性运算符
属性运算符用来给指令中的操作数指定一个临时属性,而暂时忽略当前的属
性
。常用的有:
(1) 合成运算符 PTR
它作用于操作数时,则忽略了操作数当前的类型(字节或字)及属性(NEAR 或
FAR),而给出一个临时的类型或属性,
一般格式
:类型 PTR 表达式
功能:
建立一个存储器地址操作数,它与其后的存储器地址操作数有相同的
段地址偏移量,但有不同的类型。
例如:SLOT DW 25
此时 SLOT 已定义成字单元。若我们想取出它的第一个字节内容,则可用 PTR
对其作用,使它暂时改变为字节单元,即
MOV AL,BYTE PTR SLOT
三、 表达式
是由运算符和操作数组成的序列,在汇编时产生一个确定的值。这个值可以仅
表示一个常量,也可以表示一个存储单元的偏移地址,相应的表达式称为常量表
达式和地址表达式。
1.常数
汇编语言语句中出现的常数可以有 7 种:
① 二进制数 后跟字母 B,如 01000001B。
② 八进制数 后跟字母 Q 或 O,如 202Q 或 202O。
③ 十进制数 后跟 D 或不跟字母,如 85D 或 85。
④ 十六进制数 后跟 H,如 56H,0FFH。注意,当数字的第一个字符是 A~F
时,在字符前应添加一个数字 0,以示和变量的区别。
另有,十进制浮点数、十六进制实数、字符和字符串
2.常量操作数
常量操作数是一个数值操作数,一般是常量或者是表示常量的标识符
。可以
为数字常量操作数或字符串常量操作数。前者可采用二进制、八进制、十进制或
十六进制等计数形式;而后者则为相应字符的 ASCII 码。
3.存储器操作数
54
存储器操作数是一个地址操作数,代表一个存储单元的地址,通常以标识符
的形式出现
。
存储器操作数可以分为变量及标号两者类型,如果存储器操作数所代表的是
某个数据在数据段、附加段或堆栈段中的地址,那么这个存储器操作数就称为变
量;如果存储器操作数所代表的是某条指令代码在码段中的地址,那么这个存储
器操作数称为标号。变量所对应的存储单元内容在程序的运行过程中是可以改变
的,标号通常作为转移指令或调用指令的目标操作数,在程序运行过程中不能改
变。
存储器操作数有三个方面的属性。
(1) 段地址:即存储器操作数所对应的存储单元所在段的段地址;
(2) 偏移地址:即存储器操作数所对应的存储单元在所在段内的偏移地址;
(3) 类型:变量的类型是相应存储单元所存放的数据项的字节数;而标号的
类型则反映了相应存储单元地址在作为转移或调用指令的目标操作数时的寻址
方式,可有两种情况,即 NEAR 和 FAR。具体值可见表 3-1
4.常量表达式
由常量操作数及运算符构成
,
在汇编时产生一个常量
。
如 PORT、VAL 十 1、 OFFSET SUM、SEG SUM、TYPE CYCLE 等。
5.地址表达式
由存储器操作数与运算符构成,必须有明确的物理意义
。
例如 SUM+2、CYCLE-5
表达式 SUM+2、CYCLE-5 的值仍然是一个存储器操作数,该存储器操作数的
段地址与类型属性分别与存储器操作数 SUM 及 CYCLE 相同,但偏移地址分别比
SUM 及 CYCLE 大 2 或小 5。表达式是在汇编时计算的,而变量单元的内容在程
序的运行过程中可以改变。
四、
汇编语言程序汇编步骤
汇编语言程序要能在机器上运行,还必需将汇编源程序汇编成可执行程序。
为此必须完成以下几个步骤。 过程如图 3-1 所示。
1.编辑源程序
2.调用宏汇编对源程序进行汇编
3.对目标程序进行连接
55
4.运行可执行程序并调试
4.2 伪指令
伪指令用来对汇编程序进行控制,对程序中的数据实现条件转移、列表、存
储空间分配等处理,其格式和汇编指令一样,但一般不产生目的代码,即不直接
命令 CPU 去执行什么操作。
一、 定义数据伪指令
该类伪指令用来定义存储空间及其所存数据的长度。
· DB:定义字节,即每个数据是 1 个字节。
· DW:定义字,即每个数据占 1 个字(2 个字节)。
· DD:定义双字,即每个数据占 2 个字。低字部分在低地址,高字部分在高
地址。
· DQ:定义 4 字长,即每个数据占 4 个字。
· DT:定义 10 个字节长,用于压缩式十进制数,
例如:DATA1 DB 5,6,8,100
DATA2 DW 7,287
TABLE DB ? ;表示在 TABLE 单元中存放的内容是随机的
当一个定义的存储区内的每个单元要放置同样的数据时,可用 DUP 操作符。
一般格式
:COUNT DUP(?),COUNT 为重复的次数,“( )”中为要重复
的数据。
如:BUFFER DB 100DUP(0) ;表示以 BUFFER 为首地址的 100 个字节
中存放 00H 数据
BUFFER1 DB 100 DUP(3,5,2DUP(10),35),24,‘NUM’)
想一想存储区的情况?
二、 符号定义伪指令 EQU、=、及 PURGE
· EQU 伪指令给符号定义一个值。在程序中,凡是出现该符号的地方,汇编时均
用其值代替,
如:TIMES EQU 50
DATA DB TIMES DUP(?)
上述两个语句实际等效于如下一条语句:
56
剩余24页未读,继续阅读
资源评论
nidezlk
- 粉丝: 1
- 资源: 11万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP Explorer 文件浏览器 v1.0-fileexplorer.zip
- JS+Flash让网页元素发光的插件 glow! 0.1-glow.zip
- JdonFramework开源框架 v5.1 Build20071025-jdonframework-5.1.zip
- 汽车行驶工况数据,excel,m文件
- Xshell6是一款功能强大的终端模拟器软件,主要用于远程管理和访问多种网络设备和服务器
- OPA548运放E/S脚使能后,输入电压为零时,输出电压为0.6V;电路如何设计才能使输出电压偏置为:0V
- MicrosoftRootCertificateAuthority2011.rar
- ISOSAE21434.D1-2020SAE美国汽车标准
- 奥比中光RGBD在JETSON ORIN NX的ROS程序
- SerialNumberUtil.java
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功