1、1SunplusSunplus 16 16 位位微控制器微控制器伪指令2伪指令指令 nSP汇编伪指令与汇编指令不同,它不会被编译,而仅被用来控制汇编器的操作。伪指令的作用有点像语言中的标点符号,它能使语言中的句子所表达意思的结构更加清晰而成为语言中不可缺少的一部分。在汇编语言中正确使用伪指令,不仅能使程序的可读性增强,且使汇编器的编译效率倍增。3伪指令常指令常规格式格式 伪指令可以写在程序文件中的任意位置,但在其前面必须用一个小圆点引导,以便与汇编指令区分开。伪指令行中方括弧里的参量是任选项,即不是必须带有的参量。如果某一个参量使用双重方括弧括起来,则说明这个任选项参量本身就必须带着方括弧。例
2、如count表示引用该任选参量时必须写出count才可。4伪指令分指令分类 伪指令依照其用途可分为五类:定义类、存储类、存储定义类、条件类及汇编方式类。5定定义类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 6常用定常用定义类伪指令指令说明明&举例例DEFINE【功能描述】定义常量符号【语法格式】.DEFINEvariable
3、 value,【举 例】.DEFINEIO_PORT0 x7016;7常用定常用定义类伪指令指令说明明&举例例PUBLIC【功能描述】声明将被引用在其它文件中的全局标号 【语法格式】.PUBLIC label,label,【举 例】.PUBLICsym1/声明要引用在其它文件中的全局标号8常用定常用定义类伪指令指令说明明&举例例EXTERNAL【功能描述】在某文件中声明已在其它文件里定义过的标号、变量或函数【语法格式】.EXTERNALlabel,label,.【举 例】.EXTERNALnum_var1,num_var2;/声明在其它文件中定义过的标号 9常用定常用定义类伪指令指令说明明&举
4、例例RAM【功能描述】切换定义预定义段RAM【语法格式】.RAM【举 例】.RAM.VAR num,max;/定义变量num、max 10常用定常用定义类伪指令指令说明明&举例例VAR【功能描述】定义变量并为变量置初始值【语法格式】.VAR variable=value【举 例】.RAM .VAR s1,s2,s3;/无赋初值 11常用定常用定义类伪指令指令说明明&举例例 DATA【功能描述】切换定义预定义段DATA【语法格式】.DATA【举 例】.DATA tone_table:.DW 5,8,6,9,3,8,0;12常用定常用定义类伪指令指令说明明&举例例CODE【功能描述】切换定义预定义
5、段CODE【语法格式】.CODE【举 例】.CODE .PUBLIC _MAIN;13常用定常用定义类伪指令指令说明明&举例例TEXT【功能描述】切换定义预定义段TEXT【语法格式】.TEXT【举 例】.TEXT.PUBLIC _IRQ0 .PUBLIC _IRQ1 14常用定常用定义类伪指令指令说明明&举例例PROC 【功能描述】开始程序的定义【语法格式】label:.PROC【举 例】test1:.PROCPUSH BP,BP TO SP;BP=SP+1;15常用定常用定义类伪指令指令说明明&举例例ENDP【功能描述】结束程序的定义【语法格式】ENDP【举 例】Test1:.PROCPUS
6、H BP to SPRETF;.ENDP16存存储类 以指定的数据类型存储数据或设定程序地址等 DW、DD、FLOAT、DOUBLE、END17 nSPnSP汇编指令中的数据指令中的数据类型型 数据类型字长度(位数)无符号数值域 有符号数值域 字型(DW)16 065535-32768+32767 双字型(DD)32 04294967295-2147483648+2147483647 单精度浮点型(FLOAT)32 无 以IEEE格式表示的32位浮点数 双精度浮点型(DOUBLE)64 无 以IEEE格式表示的64位浮点数 18存存储定定义类 定义若干指定数据类型的数据存储单元 DUP 19存
7、存储定定义类 DUP【类 别】存储定义类【功能描述】本伪指令与DW、FLOAT、DD、DOUBLE存储类伪指令组合在一起用于存放若干个具有相同数值的常量;或者申请若干个备用的整型、单精度浮点型、长整型以及双精度浮点型数据单元。20存存储定定义类 【语法格式1】label:.DW numberDUP(value)【说 明1】存储若干具有相同数值的16位的整型数据。【语法格式2】label:.FLOATnumber DUP(value)【说 明2】存储若干具有相同数值的32位的单精度浮点型实数数据。21存存储定定义类 【语法格式3】label:.DDnumberDUP(value)【说 明3】存储
8、若干具有相同数值的32位的长整型数据。【语法格式 4】label:.DOUBLEnumber DUP(value)【说 明4】存储若干具有相数值的64位双精度浮点型实数数据 22条件条件类 对汇编指令进行条件汇编 IF、ELSE、ENDIF;IFMA、IFDEF、IFNDEF 23常用条件常用条件类伪指令指令说明明&举例例IF【功能描述】引出在条件汇编结果为真时所要汇编的程序指令【语法格式】.IF value【举 例】.DEFINEvar1 0 x01.IF var1var2=var1+0 x10;.ENDIF24常用条件常用条件类伪指令指令说明明&举例例ELSE【功能描述】引出IF伪指令设置
9、的条件汇编结果为假时所要汇编的程序指令。【语法格式】.ELSE【应用解释】若本伪指令前面的IF伪指令设置的条件汇编结果为假时引出另一部分汇编程序指令。本伪指令必须与IF伪指令结合使用。25常用条件常用条件类伪指令指令说明明&举例例 ENDIF【功能描述】用来结束条件汇编组合的定义【语法格式】.ENDIF【举 例】.IF(Const1)R1=Const1.ENDIF/结束条件汇编,其后的程序指令或数据会接着被汇编 26汇编方式方式类 包含汇编文件或创建用户定义段 INCLUDE;SECTION 27汇编方式方式类 INCLUDE【功能描述】在汇编文件里包含某个文件【语法格式】.I INCLUDE
10、filename【举 例】.INCLUDE hardware.inc.INCLUDE key.h.INCLUDE hardware.h 28汇编方式方式类 SECTION【功能描述】创建用户定义段【语法格式】label:.SECTION.attribute【举 例】section1:.SECTION.CODE/定义一个段名为section1的段,其链接属性与预定义段CODE相同 29凌阳科技教育推广中心竭诚为您服务凌阳科技大学凌阳科技大学计划网站:划网站:http:/www.http:/cn凌阳科技大学凌阳科技大学计划划邮箱:箱:E_mail:E_mail:cn凌阳科技大学凌阳科技大学计划客服中心:划客服中心:Tel:010-62981668-2911Tel:010-62981668-2911凌阳科技大学凌阳科技大学计划技划技术支持中心:支持中心:Tel:010-62981668-2919Tel:010-62981668-291930