下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 AVR指令系统

AVR指令系统.pdf

AVR指令系统

jinl
2011-03-28 0人阅读 举报 0 0 暂无简介

简介:本文档为《AVR指令系统pdf》,可适用于高等教育领域

第三章AVR汇编指令、指令系统、汇编程序问题�城市路灯控制�某公司接到一个城市路灯控制的项目要求实现路灯的开关控制�时间:个月�成本控制�安全可靠编程语言�汇编语言�IARAVRC编译器�ICCAVRC编译器�CodeVisionAVRC编译器�GNUC编译器�BASCOMAVRAVR指令系统�ATmega共有条指令按功能可分为五大类�算术和逻辑运算指令(条)�比较和跳转指令(条)�数据传送指令(条)�位操作和位测试指令(条)�MCU控制指令(条)AVR指令系统�AVR指令的寻址方式和寻址空间�单寄存器直接寻址�双寄存器直接寻址方式�IO寄存器直接寻址�数据存储器空间�数据空间直接寻址数据空间的寄存器间接寻址�后增量数据空间寄存器间接寻址预减量数据空间寄存器间接寻址�带位移的数据空间寄存器间接寻址数据空间堆栈寄存器SP间接寻址�程序存储器空间�程序空间取常量寻址程序空间直接寻址�程序空间写数据寻址程序空间Z寄存器间接寻址�程序空间相对寻址后增量程序空间取常量寻址AVR指令系统-算术和逻辑运算指令�加法指令�不带进位位加法ADDRdRr�带进位位加法ADCRdRr�字加立即数ADIWRdl,K�增指令INCRdAVR指令系统-算术和逻辑运算指令�减法指令�不带进位位减法SUBRdRr�减立即数(字节)SUBIRdK�带进位位减法SBCRdRr�带进位位减立即数(字节)SBCIRdK�减立即数(字)SBIWRdlK�减指令DECRdAVR指令系统-算术和逻辑运算指令�取反码指令COMRd�取补码指令NEGRd�比较指令�寄存器比较CPRdRr�带进位比较CPCRdRr�与立即数(字节)比较CPIRdKAVR指令系统-算术和逻辑运算指令�逻辑与指令�寄存器逻辑与ANDRdRr�与立即数(字节)ANDIRdK�寄存器位清零CBRRdK�测试寄存器为零或负TSTRd�逻辑或指令�寄存器逻辑或ORRdRr�或立即数(字节)ORIRdK�置寄存器位SBRRdK�置寄存器为$FFSERRdAVR指令系统-算术和逻辑运算指令�逻辑异或指令�寄存器异或EORRdRr�寄存器清零CLRRd�乘法指令�无符号数乘法MULRdRr�有符号数乘法MULSRdRr�有符号数与无符号数乘法MULSURdRr�无符号定点小数乘法FMULRdRr�有符号定点小数乘法FMULSRdRr�有符号定点小数和无符号定点小数乘FMULSURdRrAVR指令系统-比较和跳转指令�无条件跳转指令�相对跳转RJMPk�间接跳转IJMP�直接跳转JMPk�条件跳转指令�测试条件符合跳转指令�状态寄存器中位为“”跳转BRBSs,k�状态寄存器中位为“”跳转BRBCs,k�相等跳转BREQk�不相等跳转BRNEk�进位标志位C为“”跳转BRCSk�进位标志位C为“”跳转BRCCkAVR指令系统-比较和跳转指令�大于或等于跳转(对无符号数)BRSHk�小于跳转(对无符号数)BRLOk�结果为负跳转BRMIk�结果为正跳转BRPLk�大于或等于跳转(带符号数)BRGEk�小于跳转(带符号数)BRLTk�半进位标志为“”跳转BRHSk�半进位标志为“”跳转BRHCk�T标志为“”跳转BRTSk�T标志为“”跳转BRTCk�溢出标志为“”跳转BRVSk�溢出标志为“”跳转BRVCk�中断标志为“”跳转BRIEk�中断标志为“”跳转BRIDkAVR指令系统-比较和跳转指令�测试条件符合跳行跳转指令�相等跳行CPSERdRr�寄存器位为“”跳行SBRCRrb�寄存器位为“”跳行SBRSRrb�IO寄存器位为“”跳行SBICPb�IO寄存器位为“”跳行SBISPbAVR指令系统-比较和跳转指令�子程序调用和返回指令�相对调用RCALLk�间接调用ICALL�直接调用CALLk�从子程序返回RET�从中断程序返回RETIAVR指令系统-数据传送指令�直接寻址数据传送指令�工作寄存器间传送数据MOVRdRr�SRAM数据直接送寄存器LDSRdk�寄存器数据直接送SRAMSTSkRr�立即数送寄存器LDIRdKAVR指令系统-数据传送指令�间接寻址数据传送指令�使用X指针寄存器间接寻址传送数据�使用地址指针寄存器X间接寻址将SRAM内容装入到指定寄存器�LDRdX将指针为X的SRAM中的数送寄存器指针不变。�LDRdX先将指针为X的SRAM中的数送寄存器X指针加。�LDRdXX指针减将指针为X的SRAM中的数送寄存器。�使用地址指针寄存器X间接寻址将寄存器内容存储到SRAM�STXRr将寄存器内容送X为指针的SRAM中X指针不改变。�STXRr先将寄存器内容送X为指针的SRAM中后X指针加。�STXRr先将X指针减然后将寄存器内容送X为指针的SRAM中。AVR指令系统-数据传送指令�使用Y指针寄存器间接寻址传送数据�使用地址指针寄存器Y间接寻址将SRAM中的内容装入寄存器�LDRdY将指针为Y的SRAM中的数送寄存器Y指针不变。�LDRdY先将指针为Y的SRAM中的数送寄存器然后Y指针加。�LDRdY先将Y指针减将指针为Y的SRAM中的数送寄存器。�LDDRd,Yq将指针为Yq的SRAM中的数送寄存器而Y指针不改变。�使用地址指针寄存器Y间接寻址将寄存器内容存储到SRAM�STYRr将寄存器内容送Y为指针的SRAM中Y指针不改变。�STYRr先将寄存器内容送Y为指针的SRAM中然后Y指针加。�ST–YRr先将Y指针减然后将寄存器内容送Y为指针的SRAM中。�STDYqRr将寄存器内容送Yq为指针的SRAM中。AVR指令系统-数据传送指令�使用Z指针寄存器间接寻址传送数据�使用地址指针寄存器Z间接寻址将SRAM中的内容装入到指定寄存器�LDRdZ将指针为Z的SRAM中的数送寄存器Z指针不变。�LDRdZ先将指针为Z的SRAM中的数送寄存器然后Z指针加。�LDRdZ先将Z指针减然后将指针为Z的SRAM中的数送寄存器。�LDDRdZq将指针为Zq的SRAM中的数送寄存器而Z指针不改变。�使用地址指针寄存器Z间接寻址将寄存器内容存储到SRAM�STZRr将寄存器内容送Z为指针的SRAM中Z指针不改变。�STZRr先将寄存器内容送Z为指针的SRAM中然后Z指针加。�STZRr先将Z指针减然后将寄存器内容送Z为指针的SRAM中。�STDZqRr将寄存器内容送Zq为指针的SRAM中。AVR指令系统-数据传送指令�从程序存储器中取数装入寄存器指令�从程序中取数装入寄存器RLPM�从程序存中取数装入寄存器LPMRdZ�带后增量的从程序中取数装入寄存器RdLPMRdZ�从程序中取数装入寄存器R(扩展)ELPM�从程序中取数装入寄存器(扩展)ELPMRdZ�带后增量的从程序中取数装入寄存器Rd(扩展)LPMRdZAVR指令系统-数据传送指令�写程序存储器指令SPM�IO口数据传送�IO口数据装入寄存器INRdP�寄存器数据送IO口OUTPRr�堆栈操作指令�进栈指令PUSHRr�出栈指令POPRdAVR指令系统-位操作和位测试指令�带进位逻辑操作指令�寄存器逻辑左移LSLRd�寄存器逻辑右移LSRRd�带进位位的寄存器逻辑循环左移ROLRd�带进位位的寄存器逻辑循环右移RORRd�寄存器算术右移ASRRd�寄存器半字节交换SWAPRdAVR指令系统-位操作和位测试指令�位变量传送指令�寄存器中的位存储到SREG中的T标志BSTRrb�SREG中的T标志位值装入寄存器Rd中的某一位BLDRdd�位变量修改指令�状态寄存器SREG的指定位置“”BSETs�状态寄存器SREG的指定位清“”BCLRs�IO寄存器的指定位置“”SBIPb�IO寄存器的指定位置“”CBIPbAVR指令系统-位操作和位测试指令�置进位位SEC�清进位位CLC�置位负标志位SEN�清负标志位CLN�置零标志位SEZ�清零标志位CLZ�触发全局中断位SEI�置S标志位SES�清S标志位CLSAVR指令系统-位操作和位测试指令�置溢出标志位SEV�清溢出标志位CLV�置T标志位SET�清T标志位CLT�置半进位标志SHE�清半进位标志CLHAVR指令系统-MCU控制指令�空操作指令NOP�进入休眠方式指令SLEEP�清零看门狗计数器WDRAVR汇编语言系统�编译调试环境AVRStudio�汇编语言语句格式�标号:伪指令操作数注释�标号:指令操作数注释�注释�空行AVR汇编语言系统�条汇编器伪指令�BYTE在RAM中定义预留存储单元�CSEG声明代码段�DB定义字节常数�DEF定义寄存器符号名�DEVICE指定为何器件生成汇编代码�DSEG声明数据段�DW定义字常数�EQU定义标识符常量�ESEG声名EPROM段AVR汇编语言系统�条汇编器伪指令�EXIT退出文件�INCLUDE包含指定的文件�MACRO宏定义开始�ENDMACRO宏定义结束�LISTMAC列表宏表达式�LIST列表文件生成允许器�NOLIST关闭列表文件生成�ORG设置程序起始位置�SET赋值给标识符AVR汇编语言系统�器件定义文件“mdefinc”�函数�LOW(表达式)返回一个表达式值的最低字节。�HIGH(表达式)返回一个表达式值的第二个字节。�BYTE(表达式)与HIGH函数相同。�BYTE(表达式)返回一个表达式值的第三个字节。�BYTE(表达式)返回一个表达式值的第四个字节。�LWRD(表达式)返回一个表达式值的~位。�HWRD(表达式)返回一个表达式值的~位。�PAGE(表达式)返回一个表达式值的~位。�EXP(表达式)返回(表达式值)次幂的值。�LOG(表达式)返回Log(表达式值)的整数部分。AVR汇编语言程序实例分析�MyVeryFirstAVRProject�include“mdefinc"Includesthemdefinitionsfile�defTemp=RGives"Defines"RegisterRthenameTemp�orgxPlacesthefollowingcodefromaddressx�rjmpRESETTakeaRelativeJumptotheRESETLabel�RESET:ResetLabel�ldiTemp,xFFFtoreinR(SincewehavedefinedR=Temp)�outDDRB,TempStorethisvalueinThePORTBDatadirectionRegister�Loop:LoopLabel�outPORTB,TempWriteallhighs(decimal)toPORTB�decTempDecrementR(Temp)�rjmpLoopTakearelativejumptotheLooplabel第三章完

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/32

AVR指令系统

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利