ATtiny2313 状态寄存器

2020-07-03来源: eefocus关键字:ATtiny2313  状态寄存器  AVR

状态寄存器包含了最近执行的算术指令的结果信息。这些信息可以用来改变程序流程以实现条件操作。如指令集所述,所有ALU 运算都将影响状态寄存器的内容。这样,在许多情况下就不需要专门的比较指令了,从而使系统运行更快速,代码效率更高。在进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢复。这些工作需要软件来处理。

ATtiny2313 SREG


AVR 中断寄存器 SREG 定义如下:
·Bit 7 – I: 全局中断使能
I 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果I 清零,则不论单独中断标志置位与否,都不会产生中断。任意一个中断发生后I 清零,而执行RETI指令后I 恢复置位以使能中断。I 也可以通过SEI 和CLI 指令来置位和清零。
·Bit 6 – T: 位拷贝存储
位拷贝指令BLD 和BST 利用T 作为目的或源地址。BST 把寄存器的某一位拷贝到T,而
BLD 把T 拷贝到寄存器的某一位。
·Bit 5 – H: 半进位标志
半进位标志H 表示算术操作发生了半进位。此标志对于BCD 运算非常有用。详见指令集的说明。
·Bit 4 – S: 符号位, S = N ⊕ V
S 为负数标志N 与2 的补码溢出标志V 的异或。详见指令集的说明。
·Bit 3 – V: 2 的补码溢出标志
支持2 的补码运算。详见指令集的说明。
·Bit 2 – N: 负数标志
表明算术或逻辑操作结果为负。详见指令集的说明。
·Bit 1 – Z: 零标志
表明算术或逻辑操作结果为零。详见指令集的说明。
·Bit 0 – C: 进位标志
表明算术或逻辑操作发生了进位。详见ATtiny2313指令集的说明。

关键字:ATtiny2313  状态寄存器  AVR 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic502044.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ATtiny2313 通用寄存器
下一篇:ATtiny2313 内核介绍

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ATtiny2313 引脚功能
发表于 2020-07-03
<font color='red'>ATtiny2313</font> 引脚功能
ATtiny2313 内核介绍
本节从总体上讨论ATtiny2313 AVR 内核的结构。CPU 的主要任务是保证程序的正确执行。因此它必须能够访问存储器、执行运算、控制外设以及处理中断。结构综述Figure 3. AVR 结构的方框图为了获得最高的性能以及并行性, AVR 采用了Harvard 结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。CPU 在执行一条指令的同时读取下一条指令( 在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器是可以在线编程的FLASH。 快速访问寄存器文件包括32 个8 位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU 操作。在典型的ALU 操作中,两个
发表于 2020-07-03
<font color='red'>ATtiny2313</font> 内核介绍
ATtiny2313 通用寄存器
。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活性,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。寄存器R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址寄存器示于Figure 5。Figure 5. X、Y、Z 寄存器在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。具体细节请参见ATtiny2313指令集。备注:以上所有图片中的地址中“$”更改为“0X”.
发表于 2020-07-02
<font color='red'>ATtiny2313</font> 通用寄存器
ATtiny2313 堆栈指针
堆栈指针主要用来保存临时数据、局部变量和中断 子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意 AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。堆栈指针指向数据SRAM堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使 能中断之前必须定义堆栈 0x60 的地址 PUSH 指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使 用 POP 指令将数据弹出堆栈时,堆栈指针加一;而用 RET 或 RETI 指令从子程序或中断 返回时堆栈指针加二。ATtiny2313的堆栈指针由I/O 8位寄存器实现。实际使用的位数与具体器件有关。请 注意某些 AVR 器件的数据区太小,用 SPL
发表于 2020-07-02
<font color='red'>ATtiny2313</font> 堆栈指针
ATtiny2313 指令执行时序
这一节介绍ATtiny2313 指令执行过程中的访问时序。 AVR CPU由系统时钟clkCPU驱动。此时钟直接来自选定的时钟源。芯片内部不对此时钟进行分频。Figure 6 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价比、功能/ 时钟比、功能/ 功耗比。Figure 7 演示的是寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
发表于 2020-07-02
<font color='red'>ATtiny2313</font> 指令执行时序
MSP430状态寄存器SR的使用实验及小结
MSP430驱动,很多语句要改,这个CY也估计要改。查msp430的h文件,是用C代替CY,但感觉不对。改完其它语句后,来实测这MSP430状态存器STATUS REGISTER BITS(SR)这个C是否能正常使用。找到的SR定义及说明仅有如下的内容:状态寄存器SR的位定义:   15                9    876543210保留未使用VSCG1SCG0OSCOFFCPUOFFGIENZCC  :进位标志位,发生进位时置1Z 
发表于 2020-07-21
MSP430<font color='red'>状态</font><font color='red'>寄存器</font>SR的使用实验及小结
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved