历史上的今天

今天是:2024年11月06日(星期三)

正在发生

2019年11月06日 | AVR单片机汇编指令的小合集

发布者:GHR2596 来源: 51hei关键字:AVR单片机  汇编指令  小合集 手机看文章 扫描二维码
随时随地手机看文章

目前在学AVR,主要还是以C为主,但是也希望能懂一些汇编的语句,就找了一些常用语句,一起记忆。


一、算术和逻辑指令

1、加法指令

不带进位位加法:ADD Rd,Rr

带进位位加法:ADC Rd,Rr

字加立即数:ADIW Rdl,K

增1指令:INCRd

2、减法指令

不带进位位减法:SUB Rd,Rr

减立即数(字节):SUBI Rd,K

带进位位减法SBC :Rd,Rr

带进位位减立即数(字节):SBCI Rd,K

减立即数(字):SBIW Rdl,K

减1指令:DECRd

3、取反码指令

COM Rd

4、取补码指令

NEG Rd

5、比较指令

寄存器比较:CP Rd,Rr

带进位比较:CPC Rd,Rr

与立即数(字节)比较:CPI Rd,K

6、逻辑“与”指令

寄存器逻辑“与”:AND Rd,Rr

“与”立即数(字节):ANDI Rd,K

寄存器位清零:CBR Rd,K

测试寄存器为零或负:TST Rd

7、逻辑“或”指令

寄存器逻辑“或”:OR Rd,Rr

“或”立即数(字节):ORI Rd,K

置寄存器位:SBR Rd,K

置寄存器为$FF:SER Rd

8、逻辑“异或”指令

寄存器“异或”:EOR Rd,Rr

寄存器清零:CLR Rd

9、乘法指令

无符号数乘法:MUL Rd,Rr

有符号数乘法:MULS Rd,Rr

有符号数与无符号数乘法:MULSU Rd,Rr

无符号定点小数乘法:FMUL Rd,Rr

有符号定点小数乘法:FMULS Rd,Rr

有符号定点小数和无符号定点小数乘法:FMULSURd,Rr


二、跳转指令

1、无条件跳转指令

相对跳转:RJMP k

间接跳转:IJMP

直接跳转:JMP k

2、条件跳转指令

①测试条件符合跳转指令

状态寄存器中位为“1”跳转:BRBS s,k

状态寄存器中位为“0”跳转:BRBC s,k

相等跳转:BREQ k

不相等跳转:BRNE k

进位标志位C为“1”跳转:BRCS k

进位标志位C为“0”跳转:BRCC k

大于或等于跳转(对无符号数):BRSH k

小于跳转:BRLO k

结果为负跳转:BRMI k

结果为正跳转:BRPL k

大于或等于跳转(带符号数):BRGE k

小于跳转(带符号数):BRLT k

半进位标志H为“1”跳转:BRHS k

半进位标志H为“0”跳转:BRHC k

T标志为“1”跳转:BRTS k

T标志为“0”跳转:BRTC k

溢出标志V为“1”跳转:BRVS k

溢出标志V为“0”跳转:BRVC k

中断标志I为“1”跳转:BRIE k

中断标志I为“0”跳转:BRID k

②测试条件符合跳行跳转指令

相等跳行:CPSE Rd,Rr

寄存器位为“1”跳行:SBRS Rr,b

寄存器位为“0”跳行:SBRC Rr,b

I/O寄存器位为“1”跳行:SBIS P,b

I/O寄存器位为“0”跳行:SBIC P,b

3、子程序调用和返回指令

相对调用:RCALL k

间接调用:ICALL

直接调用:CALL k

从子程序返回:RET

从中断程序返回:RETI


三、数据传送指令

1、直接寻址数据传送指令

工作寄存器间传送数据:MOV Rd,Rr

SRAM数据直接送寄存器:LDS Rd,k

寄存器数据直接送SRAM:STS k,Rr

立即数送寄存器:LDI Rd,K

2、间接寻址数据传送指令

①使用X指针寄存器间接寻址传送数据

使用地址指针寄存器X间接寻址将SRAM内容装入到指定寄存器:

LD Rd,X

LD Rd,X+

LD Rd,-X

使用地址指针寄存器X间接寻址将寄存器内容存储到SRAM:

ST X,Rr

ST X+,Rr

ST –X,Rr

②使用Y指针寄存器间接寻址传送数据

使用地址指针寄存器Y间接寻址将SRAM内容装入到指定寄存器:

LD Rd,Y

LD Rd,Y+

LD Rd,-Y

LDD Rd,Y+q

使用地址指针寄存器Y间接寻址将寄存器内容存储到SRAM:

ST Y,Rr

ST Y+,Rr

ST –Y,Rr

STD Y+q,Rr

③使用Z指针寄存器间接寻址传送数据

使用地址指针寄存器Y间接寻址将SRAM内容装入到指定寄存器:

LD Rd,Z

LD Rd,Z+

LD Rd,-Z

LDD Rd,Z+q

使用地址指针寄存器Y间接寻址将寄存器内容存储到SRAM:

ST Z,Rr

ST Z+,Rr

ST –Z,Rr

STD Z+q,Rr

3、从程序存储器中取数装入寄存器指令

从程序存储器中取数装入寄存器R0:LPM

从程序存储器中取数装入寄存器Rd:LPM Rd,Z

带后增量的从程序存储器中取数装入寄存器Rd:LPM Rd,Z+

4、写程序存储器指令

写程序存储器:SPM

5、I/O口数据传送指令

I/O口数据装入寄存器:IN Rd,P

寄存器数据送I/O口:OUT P,Rr

6、堆栈操作指令

进栈指令:PUSH Rr

出栈指令:POP Rd


四、位操作和位测试指令

1、带进位逻辑操作指令

寄存器逻辑左移:LSL Rd

寄存器逻辑右移:LSR Rd

带进位位的寄存器逻辑循环左移:ROL Rd

带进位位的寄存器逻辑循环右移:ROR Rd

寄存器算术右移:ASR Rd

寄存器半字节交换:SWAP Rd

2、位变量传送指令

寄存器中的位存储到SREG中的T标志:BST Rr,b

SREG中的T标志位值装入寄存器Rd中的某一位:BLD Rd,b

3、位变量修改指令

状态寄存器SREG的指定位置位:BSET s

状态寄存器SREG的指定位清零:BCLR s

I/O寄存器的指定位置位:SBI P,b

I/O寄存器的指定位清零:CBI P,b

置进位位:SEC

清进位位:CLC

置负标志位:SEN

清负标志位:CLN

置零标志位:SEZ

清零标志位:CLZ

使能全局中断位:SEI

禁止全局中断位:CLI

置S标志位:SES

清S标志位:CLS

置溢出标志位:SEV

清溢出标志位:CLV

置T标志位:SET

清T标志位:CLT

置半进位标志:SEH

清半进位标志:CLH

五、MCU控制指令

空操作指令:NOP

进入休眠方式指令:SLEEP

清0看门狗计数器:WDR


关键字:AVR单片机  汇编指令  小合集 引用地址:AVR单片机汇编指令的小合集

上一篇:单片机控制电力柜用操控状态仪表程序
下一篇:7脚12864spi单片机源程序,直接函数调用

推荐阅读

在全球节能减排环保的大趋势下,各国汽车油耗政策都趋于严苛。中国政府发布的汽车行业双积分政策已将乘用车平均油耗及车辆续航里程都将列入核心计分目标。和传统的燃油车相比,电动汽车对耗电量及续航里程等指标更为关注,因高低温环境会加大电动汽车空调能耗,车辆续航里程因此会出现大幅下降。EV-TEST标准实验舱日前,积水化学在天津中汽研EV-TEST标准实...
如果不按照如下设置,中断将无法执行或者无法使下一个中断进入。/*中断挂起设置,此过程加入到主函数中启动时加载*/void Eint_wait(){ rSRCPND=rSRCPND; //中断挂起寄存器清除 rINTPND=rINTPND; //中断源挂起寄存器清除 rEINTPEND|=0x1<<13; //外部中断挂起寄存器,Eint挂起等待中断 rSRCPND=BIT_EINT8_23; //中断源挂起寄存器相应位置1等...
此前爆料的消息显示,三星Galaxy S21系列旗舰新机预计会提前跟大家见面,现在最关键的发布时间信息曝光了。今天,爆料人Jon Prosser在推特透露,三星Galaxy S21系列包含三星Galaxy S21、Galaxy S21+和Galaxy S21 Ultra三款,它将于1月14日发布,1月29日上市发售。Jon Prosser透露,三星Galaxy S21系列提供黑色、白色、灰色、银色、紫色和粉色等多...
11月5日,2021年深圳市坪山区招商大会启幕。据《深圳特区报》报道,现场签约重点产业项目38个,意向投资额568亿元,项目涵盖生物医药、新一代信息技术、智能网联、自动驾驶、新能源、新材料等坪山区重点布局的产业,荣耀、AutoX等行业知名领军企业也进行了现场签约。会上,深圳市坪山区与荣耀终端有限公司正式签约。荣耀honor是全球领先的智能终端提供商,...

史海拾趣

问答坊 | AI 解惑

数字安防应用细分催熟产业链

据专业研究机构分析,随着科技不断进步,安防行业领域不断扩大。报警运营、中介、资讯等专业化服务开始起步,产品种类不断丰富,发展到了视频监控、出   入口控制、入侵报警、防爆安检等十几个大类。 目前,安防在各行业的应用,已经 ...…

查看全部问答∨

怎样将可执行文件转换成十六进制

怎样通过com1口实现可执行文件的传输啊,我写的程序可以传输文本文件,但不能传输可执行文件,该怎么改进程序 才可以通过串口传输可执行文件? 也就是怎么把可执行文件转换成十六进制  求源码 谢谢…

查看全部问答∨

如何用VHDL设计一个延时器

输入是一些随机产生的信号,要求所有的这些输入信号在延时100个时钟周期后循序输出。请问这个该如何设计?谢谢!…

查看全部问答∨

[小调查]马上比赛了,大家选用的是什么单片机?

本帖最后由 paulhyde 于 2014-9-15 09:17 编辑 我们用的430的,大家用的什么呢?  …

查看全部问答∨

CCS使用排错

我在CCS建了一个key的工程debug的时候总是报错。(在IAR中可以正常调试) 错误: Description        Resource        Path        Location        Type err ...…

查看全部问答∨

提高时序和FPGA资源利用率的小技巧

1.如果一个信号是由多个信号经过复杂的组合逻辑和时序逻辑产生的,那么应该将组合逻辑比较均匀的分布在各个reg变量前。不应当造成某些reg前面LUT里面没有组合逻辑,而另外一些reg前面的LUT里面组合逻辑过于复杂的情形。均匀分布不仅有利于时序,也 ...…

查看全部问答∨

Beaglebone外围电路设计之驱动代码修改

根据 TI Android ICS 4.0.3 DevKitV3.0.1 AM335x EMV-SK Sources 进行修改。 1 修改使支持beaglebone上的用户指示灯: 修改的源码位置: $HOME/rowboat-android/kernel/arch/arm/mach-omap2/board-am335xevm.c 找到:static struct pinmux_con ...…

查看全部问答∨

请教下 bus hound 如何向带有USB接口的430发送命令呢?

大家好,本人初来乍到,对一些问题不是很明白,希望好心人可以帮助解答!先谢谢咯!   我用 MSP430F5529 与电脑连接后,下载了USB通信的 LAB4 程序,希望通过bus hound向板子发送命令,但在 Send Command 的USB一栏中发送时总提示the de ...…

查看全部问答∨

电子设计竞赛常用电路模块制作

本帖最后由 paulhyde 于 2014-9-15 03:09 编辑 电子设计竞赛常用电路模块制作  …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved