11、AVR微控制器内部架构与算术逻辑指令解析

AVR微控制器内部架构与算术逻辑指令解析

1. RJMP指令详解

RJMP(相对跳转)指令通常出现在代码末尾,其以二进制数字1100开头,后面跟着一个12位地址。该地址是相对于程序计数器(PC)中的当前地址。若地址为正,程序跳转到更高地址;若为负,则跳转到更低地址。在指令集手册中,相对跳转指令的范围是PC – 2K + 1到PC + 2K(字)。

例如,在示例程序中,RJMP指令用于跳转到程序顶部,即跳转到更低地址。图6.15中该指令编码的地址是二进制补码格式的负数,如0b111111111100,十进制值为 -4。程序从地址0开始有四条16位指令,RJMP指令位于地址3。当执行RJMP指令时,PC值为3,根据公式PC – 地址 + 1 计算跳转地址,即3 – 4 + 1 = 0,所以程序会按预期跳转到地址0。不过在编程时,我们可以使用标签作为跳转目标,让汇编程序计算相对地址。

2. 寻址模式概述

寻址模式是微控制器或微处理器指令集架构的一部分,它规定了指令访问源数据和目标数据的不同方式,也就是指令如何寻址内存位置、寄存器或常量数据值。在AVR微控制器中,寻址模式允许指令访问程序内存和数据内存,数据内存包括SRAM以及映射到数据内存空间的寄存器,如寄存器文件和I/O寄存器。

3. 寄存器直接寻址

AVR寄存器直接寻址有两种变体:单寄存器和双寄存器直接寻址。单寄存器直接寻址的一个例子是CLR(清除寄存器)指令,该指令对目标寄存器的完整地址进行编码,从而可以直接寻址该寄存器。在CLR指令中,寄存器文件寄存器的地址实际上被编码了两次,因为源和目标是同一个寄存器。

4. I/O直接寻址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值