历史上的今天
今天是:2025年01月09日(星期四)
2020年01月09日 | AVR单片机汇编器的部分伪指令详解
2020-01-09 来源:eefocus
伪指令不属于单片机的指令系统,而是由汇编器提供的指令,用于调整存储器中程序的位置、定义宏、初始化存储器等。AVR单片机的汇编器共提供18条伪指令(见附表)。

其中,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伪指令行继续执行。
史海拾趣
|
大虾们 我现在有个CE程序能够运行但界面不能刷新是怎么回事啊? 我有个CE程序 开始运行没有问题界面能够实现跳转或刷新 但是运行10几个小时后 出现能够响应 ONLBUTTONDOWN 等消息函数 但是界面却刷新不了了 我郁闷拉 求教 谢谢… 查看全部问答> |
|
我刚接触Windows CE ,已装了,可是现在就盯着VS2005发呆~不知道怎么定制系统 我刚接触Windows CE ,已装了,可是现在就盯着VS2005发呆~不知道怎么定制系统~ 怎么都没这方面的书,我已看了何宗键的Windows CE嵌入式系统,可是没实践的~有没有这方面的demo分析啊?… 查看全部问答> |
|
德州仪器(TI) LED参考设计指南, 适合采用LED照明的众多应用;LED参考设计的葵花宝典,机不可失! [ 本帖最后由 德州仪器 于 2011-1-26 17:30 编辑 ]… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:43 编辑 问:1、T1有两个发射级,这行得通么? 2、倒相级由三极管T2和电阻R2、R3构成。通过T2的集电极和发射极,提供两个相位相反的信号相位是如何相反的?能否详解下? 3、输出级是由三极管T3、T4, ...… 查看全部问答> |
|
现用TivaLaunchpad驱动TFT显示汉字,ftrasterize使用求指点 采用ftrasterize生成.c文件时出现图中情况,其中ftrasterize 工具没有-c和-r参数,求指点 \0\0\0eeworldpostqq… 查看全部问答> |




