spce061a教学30课时v11第2章指令系统24伪指令_第1页
spce061a教学30课时v11第2章指令系统24伪指令_第2页
spce061a教学30课时v11第2章指令系统24伪指令_第3页
spce061a教学30课时v11第2章指令系统24伪指令_第4页
spce061a教学30课时v11第2章指令系统24伪指令_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Sunplus

16位微控制器伪指令伪指令

’nSP™汇编伪指令与汇编指令不同,它不会被编译,而仅被用来控制汇编器的操作。伪指令的作用有点像语言中的标点符号,它能使语言中的句子所表达意思的结构更加清晰而成为语言中不可缺少的一部分。在汇编语言中正确使用伪指令,不仅能使程序的可读性增强,且使汇编器的编译效率倍增。

伪指令常规格式伪指令可以写在程序文件中的任意位置,但在其前面必须用一个小圆点引导,以便与汇编指令区分开。伪指令行中方括弧里的参量是任选项,即不是必须带有的参量。如果某一个参量使用双重方括弧括起来,则说明这个任选项参量本身就必须带着方括弧。例如[[count]]表示引用该任选参量时必须写出[count]才可。伪指令分类 伪指令依照其用途可分为五类:定义类、存储类、存储定义类、条件类及汇编方式类。定义类1.程序;CODE、DATA、TEXT

2.程序中所用数据的性质、范围或结构;IRAM、ISRAM、ORAM、OSRAM、RAM、SRAM

3.宏或结构MACRO、MACEXIT、ENDM

4.程序PROC、ENDP、STRUCT、ENDS

5.其它DEFINE、VAR、PUBLIC、EXTERNAL、EQU、VDEF

常用定义类伪指令说明&举例<1>DEFINE【功能描述】定义常量符号【语法格式】.DEFINE variable[value][,…]【举

例】.DEFINE IO_PORT 0x7016;常用定义类伪指令说明&举例<2>PUBLIC

【功能描述】声明将被引用在其它文件中的全局标号【语法格式】.PUBLIC label[,label][,…]【举

例】

.PUBLIC sym1 //声明要引用在其它文件中的全局标号常用定义类伪指令说明&举例<3>EXTERNAL【功能描述】在某文件中声明已在其它文件里定义过的标号、变量或函数【语法格式】.EXTERNAL label[,label][,...]【举

例】

.EXTERNAL num_var1,num_var2;

//声明在其它文件中定义过的标号常用定义类伪指令说明&举例<4>RAM【功能描述】切换定义预定义段RAM【语法格式】.RAM【举

例】.RAM.VARnum,max;//定义变量num、max

常用定义类伪指令说明&举例<5>VAR【功能描述】定义变量并为变量置初始值【语法格式】.VAR variable[=value]

【举

例】.RAM

.VAR s1,s2,s3;//无赋初值常用定义类伪指令说明&举例<6>DATA【功能描述】切换定义预定义段DATA【语法格式】.DATA

【举

例】.DATA

tone_table:.DW5,8,6,9,3,8,0;

常用定义类伪指令说明&举例<7>CODE【功能描述】切换定义预定义段CODE【语法格式】.CODE【举

例】.CODE.PUBLIC_MAIN;常用定义类伪指令说明&举例<8>TEXT【功能描述】切换定义预定义段TEXT【语法格式】.TEXT【举

例】

.TEXT .PUBLIC_IRQ0.PUBLIC_IRQ1常用定义类伪指令说明&举例<9>PROC【功能描述】开始程序的定义【语法格式】label: .PROC【举

例】test1:.PROCPUSHBP,BPTO[SP];BP=SP+1;……常用定义类伪指令说明&举例<10>ENDP【功能描述】结束程序的定义【语法格式】ENDP【举

例】

Test1:.PROCPUSHBPto[SP]……RETF;.ENDP存储类以指定的数据类型存储数据或设定程序地址等

DW、DD、FLOAT、DOUBLE、END’nSP™汇编指令中的数据类型数据类型字长度(位数)无符号数值域有符号数值域字型(DW)16

0~65535

-32768~双字型(DD)32

0~-2147483648~7单精度浮点型(FLOAT)32

无以IEEE格式表示的32位浮点数双精度浮点型(DOUBLE)64

无以IEEE格式表示的64位浮点数存储定义类<1>定义若干指定数据类型的数据存储单元

DUP

存储定义类<2>DUP【类别】存储定义类【功能描述】本伪指令与DW、FLOAT、DD、DOUBLE存储类伪指令组合在一起用于存放若干个具有相同数值的常量;或者申请若干个备用的整型、单精度浮点型、长整型以及双精度浮点型数据单元。存储定义类<3>【语法格式1】[label:].DWnumber DUP(value)【说明1】存储若干具有相同数值的16位的整型数据。【语法格式2】[label:].FLOAT numberDUP(value)【说明2】存储若干具有相同数值的32位的单精度浮点型实数数据。存储定义类<4>【语法格式3】[label:] .DD number DUP(value) 【说明3】存储若干具有相同数值的32位的长整型数据。【语法格式4】[label:] .DOUBLE number DUP(value)【说明4】存储若干具有相数值的64位双精度浮点型实数数据条件类对汇编指令进行条件汇编

IF、ELSE、ENDIF;IFMA、IFDEF、IFNDEF

常用条件类伪指令说明&举例<1>IF【功能描述】引出在条件汇编结果为真时所要汇编的程序指令【语法格式】.IF value【举

例】.DEFINE var1 0x01.IF var1var2=var1+0x10;.ENDIF常用条件类伪指令说明&举例<2>ELSE【功能描述】引出IF伪指令设置的条件汇编结果为假时所要汇编的程序指令。【语法格式】.ELSE

【应用解释】

若本伪指令前面的IF伪指令设置的条件汇编结果为假时引出另一部分汇编程序指令。本伪指令必须与IF伪指令结合使用。常用条件类伪指令说明&举例<3>ENDIF【功能描述】用来结束条件汇编组合的定义【语法格式】.ENDIF【举

例】

.IF(Const1)R1=Const1.ENDIF //结束条件汇编,其后的程序指令或数据会接着被汇编汇编方式类<1>包含汇编文件或创建用户定义段

INCLUDE;SECTION

汇编方式类<2>INCLUDE【功能描述】在汇编文件里包含某个文件【语法格式】.INCLUDE filename【举

例】.INCLUDE hardware.inc.INCLUDE key.h.INCLUDEhardware.h汇编方式类<3>SECTION【功能描述】创建用户定义段【语法格式】label: .SECTION .attribute

【举

例】section1:.SECTION .CODE//定义一个段名为section1的段,其链接属性与预定义段C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论