首页 AVR指令系统

AVR指令系统

举报
开通vip

AVR指令系统 第三章 AVR汇编指令 1、指令系统 2、汇编程序 问题 � 城市路灯控制 � 某公司接到一个城市路灯控制的项目,要求 实现路灯的开关控制 � 时间:1个月 � 成本控制 � 安全可靠 编程语言 � 汇编语言 � IAR AVR C编译器 � ICC AVR C 编译器 � Code Vision AVR C编译器 � GNU C编译器 � BASCOM-AVR AVR指令系统 � ATmega16 共有131 条指令,按功能可 分为五大类, � 算术和逻辑运算指令(28 条)...

AVR指令系统
第三章 AVR汇编指令 1、指令系统 2、汇编程序 问题 � 城市路灯控制 � 某公司接到一个城市路灯控制的项目,要求 实现路灯的开关控制 � 时间:1个月 � 成本控制 � 安全可靠 编程语言 � 汇编语言 � IAR AVR C编译器 � ICC AVR C 编译器 � Code Vision AVR C编译器 � GNU C编译器 � BASCOM-AVR AVR指令系统 � ATmega16 共有131 条指令,按功能可 分为五大类, � 算术和逻辑运算指令(28 条) � 比较和跳转指令(36 条) � 数据传送指令(35 条) � 位操作和位测试指令(28 条) � MCU 控制指令(4 条) AVR指令系统 � AVR 指令的寻址方式和寻址空间 � 单寄存器直接寻址 � 双寄存器直接寻址方式 � I/O 寄存器直接寻址 � 数据存储器空间 � 数据空间直接寻址 数据空间的寄存器间接寻址 � 后增量数据空间寄存器间接寻址 预减量数据空间寄存器间接寻址 � 带位移的数据空间寄存器间接寻址 数据空间堆栈寄存器SP 间接寻址 � 程序存储器空间 � 程序空间取常量寻址 程序空间直接寻址 � 程序空间写数据寻址 程序空间Z 寄存器间接寻址 � 程序空间相对寻址 后增量程序空间取常量寻址 AVR指令系统-算术和逻辑运算指令 � 加法指令 � 不带进位位加法 ADD Rd,Rr � 带进位位加法 ADC Rd,Rr � 字加立即数 ADIW Rdl, K � 增1 指令 INC Rd AVR指令系统-算术和逻辑运算指令 � 减法指令 � 不带进位位减法 SUB Rd,Rr � 减立即数(字节) SUBI Rd,K � 带进位位减法 SBC Rd,Rr � 带进位位减立即数(字节) SBCI Rd,K � 减立即数(字) SBIW Rdl,K � 减1 指令 DEC Rd AVR指令系统-算术和逻辑运算指令 � 取反码指令 COM Rd � 取补码指令 NEG Rd � 比较指令 � 寄存器比较 CP Rd,Rr � 带进位比较 CPC Rd,Rr � 与立即数(字节)比较 CPI Rd,K AVR指令系统-算术和逻辑运算指令 � 逻辑与指令 � 寄存器逻辑与 AND Rd,Rr � 与立即数(字节) ANDI Rd,K � 寄存器位清零 CBR Rd,K � 测试寄存器为零或负 TST Rd � 逻辑或指令 � 寄存器逻辑或 OR Rd,Rr � 或立即数(字节) ORI Rd,K � 置寄存器位 SBR Rd,K � 置寄存器为$FF SER Rd AVR指令系统-算术和逻辑运算指令 � 逻辑异或指令 � 寄存器异或 EOR Rd,Rr � 寄存器清零 CLR Rd � 乘法指令 � 无符号数乘法 MUL Rd,Rr � 有符号数乘法 MULS Rd,Rr � 有符号数与无符号数乘法 MULSU Rd,Rr � 无符号定点小数乘法 FMUL Rd,Rr � 有符号定点小数乘法 FMULS Rd,Rr � 有符号定点小数和无符号定点小数乘 FMULSU Rd ,Rr AVR指令系统-比较和跳转指令 � 无条件跳转指令 � 相对跳转 RJMP k � 间接跳转 IJMP � 直接跳转 JMP k � 条件跳转指令 � 测试条件符合跳转指令 � 状态寄存器中位为 “1”跳转 BRBS s, k � 状态寄存器中位为 “0”跳转 BRBC s, k � 相等跳转 BREQ k � 不相等跳转 BRNE k � 进位标志位C 为“1”跳转 BRCS k � 进位标志位C 为“0”跳转 BRCC k AVR指令系统-比较和跳转指令 � 大于或等于跳转(对无符号数) BRSH k � 小于跳转(对无符号数) BRLO k � 结果为负跳转 BRMI k � 结果为正跳转 BRPL k � 大于或等于跳转(带符号数) BRGE k � 小于跳转(带符号数) BRLT k � 半进位标志为 “1”跳转 BRHS k � 半进位标志为 “0”跳转 BRHC k � T 标志为“1”跳转 BRTS k � T 标志为“0”跳转 BRTC k � 溢出标志为 “1”跳转 BRVS k � 溢出标志为 “0”跳转 BRVC k � 中断标志为 “1”跳转 BRIE k � 中断标志为 “0”跳转 BRID k AVR指令系统-比较和跳转指令 � 测试条件符合跳行跳转指令 � 相等跳行 CPSE Rd,Rr � 寄存器位为“0”跳行 SBRC Rr,b � 寄存器位为“1”跳行 SBRS Rr,b � I/O 寄存器位为“0”跳行 SBIC P,b � I/O 寄存器位为“1”跳行 SBIS P,b AVR指令系统-比较和跳转指令 � 子程序调用和返回指令 � 相对调用 RCALL k � 间接调用 ICALL � 直接调用 CALL k � 从子程序返回 RET � 从中断程序返回 RETI AVR指令系统-数据传送指令 � 直接寻址数据传送指令 � 工作寄存器间传送数据 MOV Rd,Rr � SRAM 数据直接送寄存器 LDS Rd, k � 寄存器数据直接送SRAM STS k, Rr � 立即数送寄存器 LDI Rd, K AVR指令系统-数据传送指令 � 间接寻址数据传送指令 � 使用X 指针寄存器间接寻址传送数据 � 使用地址指针寄存器 X 间接寻址将SRAM 内容装入到指定寄存器 � LD Rd,X 将指针为X 的SRAM 中的数送寄存器,指针不变。 � LD Rd,X+ 先将指针为X 的SRAM 中的数送寄存器,X 指针加1。 � LD Rd,-X X 指针减1,将指针为X 的SRAM 中的数送寄存器。 � 使用地址指针寄存器 X 间接寻址将寄存器内容存储到 SRAM � ST X,Rr 将寄存器内容送X 为指针的SRAM 中,X 指针不改变。 � ST X,Rr 先将寄存器内容送X 为指针的SRAM 中,后X 指针加1。 � ST -X,Rr 先将X 指针减1,然后将寄存器内容送X 为指针的SRAM 中。 AVR指令系统-数据传送指令 � 使用Y 指针寄存器间接寻址传送数据 � 使用地址指针寄存器Y 间接寻址将SRAM 中的内容装入寄存器 � LD Rd,Y将指针为Y 的SRAM 中的数送寄存器,Y 指针不变。 � LD Rd,Y+ 先将指针为Y 的SRAM 中的数送寄存器,然后Y 指针加1。 � LD Rd,-Y 先将Y 指针减1,将指针为Y 的SRAM 中的数送寄存器。 � LDD Rd,Y+q 将指针为Y+q 的SRAM 中的数送寄存器,而Y 指针不改变。 � 使用地址指针寄存器Y 间接寻址将寄存器内容存储到 SRAM � ST Y,Rr将寄存器内容送Y 为指针的SRAM 中,Y 指针不改变。 � ST Y+,Rr 先将寄存器内容送Y 为指针的SRAM 中,然后Y 指针加1。 � ST –Y,Rr 先将Y 指针减1,然后将寄存器内容送Y 为指针的SRAM 中。 � STD Y+q,Rr将寄存器内容送Y+q 为指针的SRAM 中。 AVR指令系统-数据传送指令 � 使用Z 指针寄存器间接寻址传送数据 � 使用地址指针寄存器 Z 间接寻址将SRAM 中的内容装入到指定寄存器 � LD Rd,Z 将指针为Z 的SRAM 中的数送寄存器,Z 指针不变。 � LD Rd,Z+先将指针为Z 的SRAM 中的数送寄存器,然后Z 指针加1。 � LD Rd,-Z先将Z 指针减1,然后将指针为Z 的SRAM 中的数送寄存器。 � LDD Rd,Z+q 将指针为Z+q 的SRAM 中的数送寄存器,而Z 指针不改变。 � 使用地址指针寄存器 Z 间接寻址将寄存器内容存储到 SRAM � ST Z,Rr 将寄存器内容送Z 为指针的SRAM 中,Z 指针不改变。 � ST Z+,Rr 先将寄存器内容送Z 为指针的SRAM 中,然后Z 指针加1。 � ST -Z,Rr 先将Z 指针减1,然后将寄存器内容送Z 为指针的SRAM 中。 � STD Z+q,Rr 将寄存器内容送Z+q 为指针的SRAM 中。 AVR指令系统-数据传送指令 � 从程序存储器中取数装入寄存器指令 � 从程序中取数装入寄存器R0 LPM � 从程序存中取数装入寄存器 LPM Rd,Z � 带后增量的从程序中取数装入寄存器Rd LPM Rd,Z+ � 从程序中取数装入寄存器R0(扩展) ELPM � 从程序中取数装入寄存器(扩展) ELPM Rd,Z � 带后增量的从程序中取数装入寄存器Rd(扩展) LPM Rd,Z+ AVR指令系统-数据传送指令 � 写程序存储器指令 SPM � I/O 口数据传送 � I/O 口数据装入寄存器 IN Rd,P � 寄存器数据送I/O 口 OUT P, Rr � 堆栈操作指令 � 进栈指令 PUSH Rr � 出栈指令 POP Rd AVR指令系统-位操作和位测试指令 � 带进位逻辑操作指令 � 寄存器逻辑左移 LSL Rd � 寄存器逻辑右移 LSR Rd � 带进位位的寄存器逻辑循环左移 ROL Rd � 带进位位的寄存器逻辑循环右移 ROR Rd � 寄存器算术右移 ASR Rd � 寄存器半字节交换 SWAP Rd AVR指令系统-位操作和位测试指令 � 位变量传送指令 � 寄存器中的位存储到SREG 中的T 标志 BST Rr,b � SREG 中的T 标志位值装入寄存器Rd 中的某一位 BLD Rd,d � 位变量修改指令 � 状态寄存器SREG 的指定位置“1” BSET s � 状态寄存器SREG 的指定位清“0” BCLR s � I/O 寄存器的指定位置“1” SBI P,b � I/O 寄存器的指定位置“0” CBI P,b AVR指令系统-位操作和位测试指令 � 置进位位 SEC � 清进位位 CLC � 置位负标志位 SEN � 清负标志位 CLN � 置零标志位 SEZ � 清零标志位 CLZ � 触发全局中断位 SEI � 置S 标志位 SES � 清S 标志位 CLS AVR指令系统-位操作和位测试指令 � 置溢出标志位 SEV � 清溢出标志位 CLV � 置T 标志位 SET � 清T 标志位 CLT � 置半进位标志 SHE � 清半进位标志 CLH AVR指令系统-MCU 控制指令 � 空操作指令 NOP � 进入休眠方式指令 SLEEP � 清零看门狗计数器 WDR AVR 汇编语言系统 � 编译调试环境 AVR Studio 4.12 460 � 汇编语言语句 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 � [标号:] 伪指令 [操作数][;注释] � [标号:] 指令 [操作数][;注释] � [;注释] � 空行 AVR 汇编语言系统 � 18条汇编器伪指令 � BYTE 在RAM 中定义预留存储单元 � CSEG 声明代码段 � DB 定义字节常数 � DEF 定义寄存器符号名 � DEVICE 指定为何器件生成汇编代码 � DSEG 声明数据段 � DW 定义字常数 � EQU 定义标识符常量 � ESEG 声名E2PROM段 AVR 汇编语言系统 � 18条汇编器伪指令 � EXIT 退出文件 � INCLUDE 包含指定的文件 � MACRO 宏定义开始 � ENDMACRO 宏定义结束 � LISTMAC 列表宏表达式 � LIST 列表文件生成允许器 � NOLIST 关闭列表文件生成 � ORG 设置程序起始位置 � SET 赋值给标识符 AVR 汇编语言系统 � 器件定义文件“m16def.inc” � 函数 � LOW(表达式) 返回一个表达式值的最低字节。 � HIGH(表达式) 返回一个表达式值的第二个字节。 � BYTE2(表达式) 与HIGH 函数相同。 � BYTE3(表达式) 返回一个表达式值的第三个字节。 � BYTE4(表达式) 返回一个表达式值的第四个字节。 � LWRD(表达式) 返回一个表达式值的 0~15 位。 � HWRD(表达式) 返回一个表达式值的 16~31 位。 � PAGE(表达式) 返回一个表达式值的16~21 位。 � EXP2(表达式) 返回(表达式值)2 次幂的值。 � LOG2(表达式) 返回Log2(表达式值)的整数部分。 AVR 汇编语言程序实例分析 � ;My Very First AVR Project � .include “m16def.inc" ; Includes the m16 definitions file � .def Temp = R16 ; Gives "Defines" RegisterR16 the name Temp � .org 0x0000 ; Places the following code from address 0x0000 � rjmp RESET ; Take a Relative Jump to the RESET Label � RESET: ;Reset Label � ldi Temp, 0xFF ; Ftore 255 in R16 (Since we have defined R16 = Temp) � out DDRB, Temp ;Store this value in The PORTB Data direction Register � Loop: ;Loop Label � out PORTB, Temp ;Write all highs (255 decimal) to PORTB � dec Temp ;Decrement R16 (Temp) � rjmp Loop ;Take a relative jump to the Loop label 第三章 完
本文档为【AVR指令系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_181157
暂无简介~
格式:pdf
大小:544KB
软件:PDF阅读器
页数:32
分类:工学
上传时间:2011-03-28
浏览量:36