AVR单片机汇编器的部分伪指令详解

描述

伪指令不属于单片机的指令系统,而是由汇编器提供的指令,用于调整存储器中程序的位置、定义宏、初始化存储器等。AVR单片机的汇编器共提供18条伪指令(见附表)。

AVR

其中,ORG、DB、DW、EQU读者比较熟悉,这里不再赘述。下面对部分伪指令加以说明。

BYTE-保存单字节数据到SRAM中。BYTE伪指令仅用在数据存储器。为提供数据保存的位置,在BYTE前应有标号。在由CSEG、ESEG定义的代码段和E2PROM段中不能使用BYTE伪指令。

格式LABEL:.BYTE表达式

CSEG-定义程序存储器代码段的起始位置一个汇编文件可以包括若干个代码段,汇编时这些代码段被连成一个代码段。在代码段中不能使用BYTE伪指令。

格式.CSEG

DSEG-定义数据段的起始位置一个汇编文件,可以包括若干个数据段,汇编时这些数据段被连成一个数据段。数据段等由BYTE伪指令组成。

格式.DSEG

ESEG-定义E2PROM段的起始位置一个汇编文件可以包括若干个E2PROM段,汇编时这些EEPROM段被连成一个EEPROM段。在EEPROM段中不能使用BYTE伪指令。

格式.ESE

GDEF-为寄存器设置符号名DEF伪指令允许周符号代替寄存器。一个寄存器可以赋多个符号。

格式.DEF符号=寄存器

DEVICE-定义使用的器件DEVICE定义程序所使用的器件,若程序中有指定器件不支持的指令,或程序段、E2PROM段超出指定器件的容量,汇编器将给出提示。若不用DEVICE伪指令,则默认器件支持所有指令,也不限制存储器容量。

格式.DEVICEAT90S1200|AT90S2313|AT90S4414|AT90S8515

AVR单片机的器件不同,指令的条数不同。

AT90S1200有89条最基本指令;Attinyll/12/15/22有90条指令:AT90S2313/2323/2343/2333/4414/4433/4434/8515/90S8534/8535有118条指令;ATmega603/103有121条指令;ATmega161有130条指令。因此在源程序中必须先用伪指令“DEVICE”定义使用的器件名。

INCLUDE-包括另外的文件INCLUDE告诉汇编器从指定的文件开。始读,然后汇编该文件,直至文件结束或遇到EXIT伪指令。

格式 INCLUDE“文件名”

EXIT-汇编结束若EXIT出现在包括文件中,则从文件中INCLUDE伪指令行继续执行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分