- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章80X86伪指令系统
第三章 80X86伪指令系统
一.伪指令概述
构成汇编语言程序的语句可以分为三种:指令性语句(指令语句)、指示性语句(伪指令语句)和指令语句(宏调用语句)。指令语句,又称可执行语句,表示计算机具有的一
个基本能力。比如数据传送,数据相加、相减等。伪指令语句,又称命令语句,告诉汇编程序如何对程序进行汇编。比如段定义、储存单元分配等。一个汇编语言程序经汇编,连接和装入内存后,在执行程序之前:
指示性语句的功能已经完成,故又称伪操作。
指令性语句的功能尚未完成,需控制CPU去执行,才能完成。
二、伪指令详解
符号定义语句
等值语句
格式:符号名 EQU 需等值的表达式
功能:用符号名等值指定的表达式;其中表达式可以是任何有效的操作数,汇编时用语句中的表达式代替程序中符号所在的地方。
说明:
▲可用于定义符号常量,方便修改程序。
▲某表达式多次出现时,用等值伪操作可以方便编程。
▲等值语句表达式的种类
(1)常数或数值表达式
COUNT EQU 10
NUM EQU 89*3+5-9
(2)地址表达式
ADD1 EQU VAR2+10H
(3)变量或标号
CON EQU VAR
▲在EQU语句右边出现的标号需在EQU语句以前进行定义。
等号语句
格式:符号 需等值的表达式
功能:把等号“ ”右边表达式的值或符号赋给等号“ ”左边的符号。表达式可以是任何有效的操作数。
说明:EQU语句与“ ”的区别:
在同一源程序中,EQU语句定义的符号不能被重新赋值或者说不能被重新定义,同一符号只能定义一次,符号的数值不能被改变。“ ”定义的符号可以被重新赋值,同一符号的数值在同一个程序中可以改变。
数据定义语句
格式:变量名 类型助记符 操作数 [ ,操作数 , ……]
功能:用于在内存中为常数、初始数据或者变量分配储存单元。
说明:
(1)变量名指示内存操作数所占用的内存单元地址(符号地址),在程序中,可以通过变量,名对内存单元进行访问。变量名为用户自定义标识符,表示初值表首元素的逻辑地址。可以用变量名这个符号表示地址,常称为符号地址。变量名可以没有,这种情况,汇编程序将直接为初值表分配空间,无符号地址。设置变量名是为了方便存取它指示的存储单元。
(2)类型助记符指示定义的内存操作数的类型 字节、字、双字等 。常用的类型助记符有:
DB——定义字节伪指令:用于分配一个或多个字节单元,并可以将它们初始化为指定值。初值表中每个数据一定是字节量(Byte)。
DW——定义字伪指令:用于分配一个或多个字单元,并可以将它们初始化为指定值。初值表中每个数据一定是字量(Word)。
DD——定义双字伪指令:用于分配一个或多个双字单元,并可以将它们初始化为指定值。初值表中每个数据是一个32位的双字量(Double Word)。
DF——定义3字伪指令:用于为一个或多个6字节变量分配空间及初始化。
DQ——定义4字伪指令:?用于为一个或多个8字节变量分配空间及初始化。
DT——定义10字节伪指令:用于为一个或多个10字节变量分配空间及初始化。
思考:各种类型助记符在程序中可以分别用于存放哪些类型的操作数?
(3)操作数指示内存操作数的内容,即初始化的数值。初值表是用逗号分隔的参数,主要由数值常数、表达式或“?”以及DUP组成。
数值常数——汇编程序将定义的操作数,按其类型分配内存单元数,顺序存入变量名指向的内存单元中。常量和表达式表示内存操作数的初始值,其值应在其定义的类型范围内,否则汇编出错。 例 aa DB 270;错
bb DW 80000;错
?——表示初值不确定,即未赋初值;
DUP——表示重复初值。可用 DUP 复制操作符定义相同的操作数,其格式为: 重复次数 DUP 操作数
例 ee DB 3 DUP 4 等价于 ee DB 4, 4, 4
例 ee DB 2 DUP (2DUP(1,2)) 等价于 ee DB 1,2,1,2,1,2,1,2
数值返回语句
§SEG 取符号地址的段地址
§OFFSET 取符号地址的偏移地址
§TYPE取变量或标号的类型值
§LENGTH取DUP汇编回送分配给变量单元数
§SIZE取变量的大小
格式:SEG/OFFSET/TYPE/LENGTH 变量/标号(LENGTH/TYPE/SIZE后面不能使用标号)
§HIGH取数值的高半部分
§LOW取数值的低半部分
格式:HIGT/LOW 变量
类型指定语句
PTR
格式:变量/标号 PTR 属性
THIS
格式:变量/标号 EQU THIS 属性
段定义伪指令
SEGMENT……ENDS
段寻址伪指令
ASSUME
过程定义伪指令
PROC……ENDP
定位
文档评论(0)