伪指令.docx
- 文档编号:2431140
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:26
- 大小:47.64KB
伪指令.docx
《伪指令.docx》由会员分享,可在线阅读,更多相关《伪指令.docx(26页珍藏版)》请在冰豆网上搜索。
伪指令
• 常用伪指令
SPMC65汇编伪指令与汇编指令不同,它不会被CPU执行,而是在汇编器对程序进行汇编期间实现对汇编器的控制。
使用伪指令可以完成分配存储区、定义宏、指导汇编器汇编指定的代码等功能,从而增加程序的可读性和可维护性。
• SPMC65伪指令的语法格式及分类
SPMC65伪指令可以出现在程序文件的任意位置,为了与汇编指令区分,建议伪指令的前面加上一个句点“.”,例如“.CODE”。
SPMC65伪指令不必区分字母的大小写,也就是说,在SPMC65程序中,“.code”、“.CODE”、“.cODe”是等价的,建议伪指令全部大写。
但是利用伪指令定义的标号(包括段名、宏名、变量名、结构名等)则要区分其字母的大小写,例如标号“Temp”与标号“temp”代表两个不同的标号。
为便于对SPMC65伪指令的语法进行描述,我们采用了下列符号约定:
lable——标号
count——数量
value——常量数值
args——参数
[]——可缺省项目。
如果出现[[……]]的形式,则表示可缺省项的内容本身就带有方括号。
SPMC65伪指令依照其用途可分为五类:
存储类、定义类、条件类、汇编链接类以及调试类。
详见表2.86。
表中用斜线“/”隔开的伪指令是同义伪指令,它们虽然名字不同,但实现的功能是相同的。
例如“ORG/ORGIN”表示ORG与ORGIN两条伪指令可以相互替换。
表2.86伪指令分类列表
类别
用途
伪指令
存储类
定义变量和常量
DB/BYTE/DEFB/STRING,DW/DEFW/WORD,
DD/LONG,FLOAT,DOUBLE,DS/DEFS,DUP,
ASCII,BLKB,BLKL,BLKW
定义类
标号定义
段定义
过程和结构的定义
宏定义
VAR/DEFL/SET、EQU/EQUAL
CODE,DATA,PAGE0,SECTION,ORG/ORGIN
PROC,ENDP,STRUCT,ENDST
MACRO,ENDM/MACEND,MACEXIT
条件类
对汇编指令进行条件汇编
IF/IFN/IFNFALSE/IFNZ/IFTRUE,
IFE/IFFALSE/IFNTRUE/IFZ,IFDIFF/IFNSAME、
IFNDIFF/IFSAME,IFDEF,IFNDEF,IFMA,IFNMA,
IFABS/IFNREL,IFNABS/IFREL,IFSSEQ,IFSSNEQ,
IFPAGE0,IFNPAGE0,IFCLEAR,IFNEXT,
ELSE,ENDIF/ENDC,EXIT
汇编链接类
指导汇编器和连接器
PUBLIC/GLOBAL/XDEF,EXTERN/EXTERNAL/XREF,INCLUDE,LINKLIST,SYMBOLS,COMMENT,ASK,MESSAGE/MESSG,ABSOLUTE,RELATIVE,END
调试类
与调试相关的伪指令
STABF,STABN,STABS
下面将分类介绍比较常用的伪指令。
• 存储类伪指令
1.DB
[功能]以字节型数据的形式来存储常量(定位在ROM区,参见.CODE伪指令)
[同义伪指令]DEFB、BYTE、STRING
[格式]
[label:
].DB[[count]][value][,[count]][value][,…]
[说明]本伪指令把一系列8位常量值存入连续的数据单元中。
多个value值用逗号分隔开,也可在每个value值的前面指定一个[count]值,表示连续存储count个相同的value。
如果存储的常量中含有ASCII字符或字符串,则必须用单引号或双引号将其括起来。
例如:
Lb1:
.DB17h;1个字节,值为17h
.DB3,[2]'d','ef';5个字节,值为3,'d','d','e','f'
Lb3:
.DB“Isn't”;包含单引号的字符串
上述定义将使汇编器分配一段ROM空间用来存储这些数值:
初值
17h
3
‘d'
‘d'
‘e'
‘f'
‘I'
‘s'
‘n'
单引号
‘t'
ROM区存储内容
17h
03h
64h
64h
65h
66h
49h
73h
6Eh
27h
74h
如果利用.DB定义变量(在RAM区存储,参见.PAGE0和.DATA伪指令),那么.DB后面的初始化值将不起作用,汇编器仅仅在RAM中分配相应长度的空间,而不会存入初值,因此不建议使用.DB定义变量。
2.DW
[功能]以16位整型数据的形式来存储常量(定位在ROM区,参见.CODE伪指令)
[同义伪指令]DEFW、WORD
[格式]
[label:
].DW[[count]][value][,[count]][value][,…]
[说明]本伪指令将申请若干连续的16位整型数据单元来存储双字节型常量序列。
其使用方法与.DB伪指令相同。
例如:
Lb1:
.DW1074h;1个双字节,值为1074h
.DW3,[2]'d','ef';5个双字节数据
上述定义将使汇编器分配一段ROM空间用来存储这些数值:
初值
1074h
3
‘d'
‘d'
‘e'
‘f'
ROM区存储内容
74h
10h
03h
00h
64h
00h
64h
00h
65h
00h
66h
00h
如果利用.DW定义变量(在RAM区存储,参见.PAGE0和.DATA伪指令),那么.DW后面的初始化值将不起作用,汇编器仅仅在RAM中分配相应长度的空间,而不会存入初值。
不建议用.DW定义变量。
3.DD
[功能]以32位长整型数据的形式来存储常量(定位在ROM区,参见.CODE伪指令)
[同义伪指令]LONG
[格式]
[label:
].DD[[count]][value][,value][,…]
[说明]本伪指令申请若干连续的32位长整型数据单元来存储四字节型常量。
其使用方法与.DB伪指令相同。
例如:
Lb1:
.DD123456h;占用1个32位单元
.DD3,[2]'d','ef';占用5个32位单元
上述定义将使汇编器分配一段ROM空间用来存储这些数值:
初值
123456h
3
‘d'
ROM区存储内容
56h
34h
12h
00h
03h
00h
00h
00h
65h
00h
00h
00h
初值
‘d'
‘e'
‘f'
ROM区存储内容
65h
00h
00h
00h
66h
00h
00h
00h
67h
00h
00h
00h
如果利用.DD定义变量(在RAM区存储,参见.PAGE0和.DATA伪指令),那么.DD后面的初始化值将不起作用,汇编器仅仅在RAM中分配相应长度的空间,而不会存入初值。
不建议用.DD定义变量。
4.FLOAT
[功能]以单精度浮点型实数的形式来存储常量(定位在ROM区,参见.CODE伪指令)
[格式]
[label:
].FLOAT[[count]][value][,value][,…]
[说明]本伪指令用来把实数常量转换为IEEE格式表示的单精度浮点型数据并存储,每个浮点数将占用4字节的存储空间。
.FLOAT的使用方法与.DB伪指令相同。
同样地,只用当利用.FLOAT定义常量时,value预置的初值才会起作用,而定义的变量(存储于RAM区,参见.PAGE0和.DATA伪指令)不会被相应的value值初始化,仅仅会占用同样大小的RAM空间,因此不建议用.FLOAT定义变量。
例如:
Lb1:
.FLOAT134.576;将134.576转换为IEEE格式(43069375h)
.FLOAT[2]78;将两个78转换为IEEE格式(429C0000h)
上述对常量的定义将使汇编器分配一段ROM空间用来存储这些数值:
初值
134.576
78
78
ROM区存储内容
75h
93h
06h
43h
00h
00h
9Ch
42h
00h
00h
9Ch
42h
5.DOUBLE
[功能]以双精度浮点型实数的形式来存储常量(定位在ROM区,参见.CODE伪指令)
[格式]
[label:
].DOUBLE[[count]][value][,value][,…]
[说明]本伪指令用来把实数常量值转换为IEEE格式表示的双精度浮点型数据并存储,每个浮点数将占用8字节的存储空间。
.DOUBLE的使用方法与.DB伪指令相同。
同样地,只用当利用.DOUBLE定义常量时,value预置的初值才会起作用,而定义的变量(在RAM区存储,参见.PAGE0和.DATA伪指令)仅会占用同样大小的RAM空间,不会被相应的value值初始化。
不建议用.DOUBLE定义变量。
例如:
Lb1:
.DOUBLE134.576;转换为IEEE(4060D26E978D4FDFh)
若上述定义处于常量区,那么将占用一段ROM空间用来存储这些数值:
初值
DFh
4Fh
8Dh
97h
6Eh
D2h
60h
40h
ROM区存储内容
134.576
6.DUP
[功能]与.DB、.DW、.DD、.FLOAT、.DOUBLE等常量存储类伪指令配合使用,用来存放若干个具有相同数值的常量。
[格式]
[label:
].DBcount.DUP(value)
[label:
].DWcount.DUP(value)
[label:
].DDcount.DUP(value)
[label:
].FLOATcount.DUP(value)
[label:
].DOUBLEcount.DUP(value)
[说明]本伪指令将分配co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令