嵌入式学习小组
登录
直播中
李秦
7年用户
150经验值
私信
关注
请问ATmega168通用寄存器的输入/ 输出方案?
开启该帖子的消息推送
寄存器
ATmega168通用寄存器的输入/ 输出方案
回帖
(1)
李恬恬
2020-11-13 11:28:59
文件寄存器文件针对AVR增强型RISC指令集做了优化。为了获得需要的性能和灵活性,寄存器文件支持以下的输入/ 输出方案:
·输出一个 8 位操作数,输入一个 8 位结果
·输出两个 8 位操作数,输入一个 8 位结果
·输出两个 8 位操作数,输入一个 16 位结果
·输出一个 16 位操作数,输入一个 16 位结果
Figure 4 为CPU 32 个通用工作寄存器的结构。
(点击图片放大)
Figure 4. AVR CPU 通用工作寄存器
大多数操作寄存器文件的指令都可以直接访问所有的寄存器,而且多数这样的指令的执行时间为单个时钟周期。
如Figure 4 所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的头32 个地址。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活性,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。
寄存器R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址寄存器示于Figure 5。
Figure 5. X、Y、Z 寄存器
在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。
具体细节请参见指令集。
文件寄存器文件针对AVR增强型RISC指令集做了优化。为了获得需要的性能和灵活性,寄存器文件支持以下的输入/ 输出方案:
·输出一个 8 位操作数,输入一个 8 位结果
·输出两个 8 位操作数,输入一个 8 位结果
·输出两个 8 位操作数,输入一个 16 位结果
·输出一个 16 位操作数,输入一个 16 位结果
Figure 4 为CPU 32 个通用工作寄存器的结构。
(点击图片放大)
Figure 4. AVR CPU 通用工作寄存器
大多数操作寄存器文件的指令都可以直接访问所有的寄存器,而且多数这样的指令的执行时间为单个时钟周期。
如Figure 4 所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的头32 个地址。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活性,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。
寄存器R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址寄存器示于Figure 5。
Figure 5. X、Y、Z 寄存器
在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。
具体细节请参见指令集。
举报
更多回帖
rotate(-90deg);
回复
相关问答
寄存器
请问
ATmega168
的产品特性是什么?
2020-11-20
1621
求
ATmega168
SRAM 空间的组织结构和访问时间?
2020-11-20
1401
请问
如何处理
ATmega168
的中断?
2020-11-16
1625
请问
ATmega168
减少功耗的方法有哪些?
2020-11-23
1067
请问
ATmega168
MCU如何控制
寄存器
SMCR?
2020-11-19
1314
请问
哪位大神可以分享
ATmega168
指令执行过程中的访问时序吗?
2020-11-09
990
ATmega168
上电复位是如何产生的?
2020-11-10
1215
ATmega168
外部RC振荡
器
是如何工作的?
2020-11-10
1081
一文详解
ATmega168
低频晶体振荡
器
2020-11-06
1819
ATmega168
EEPROM数据存储
器
如何进行读/写访问?
2020-11-16
1443
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分