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

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: 进位标志
表明算术或逻辑操作发生了进位。详见指令集的说明。
上一篇:ATmega48 通用寄存器
下一篇:ATmega48 ALU
史海拾趣
|
各位高手 CE下的分层的串口驱动是怎么一个流程呢??? 我看资料写的似乎PDD层只有一个函数GetSerialObject是跟MDD通信的 那其他函数需要怎么定义呢? 简单一句: 分层的串口驱动是怎么样一个执行流程??? 编写串口驱动是什么样一个思路? ...… 查看全部问答> |
|
Embedded Visual C++3.0在XP下为什么不能编译运行 我刚在我的XP系统上装了Embedded Visual C++3.0但我选定了基于对话框的MFC应用程序框架后,我想编译运行看到框架,但是编译不了,说我的CPU不支持,有经验的朋友帮我分析下什么原因. 我的操作系统版本Microsoft Windows XP Professional 版本2002 Serv ...… 查看全部问答> |
|
刚在libero9.0里面建立了一个8051核的虚拟器件,不过不知道接下来应该怎么做,是不是建立一个verilog文件然后在这个verilog文件里面用c语言编程?那位用过51核啊?方便的话可以给我一个例程么?… 查看全部问答> |
|
1流水账新闻的新闻: 拜访北京几个电表客户,碰了一鼻子灰。看来总工和采购部经理都要做深关系。 拜访北京几个安防矩阵客户, 订单有着落。 他们工厂回龙观附近要拆迁,老百姓正忙着加盖房子想取得更多拆迁款 ,搞得的尘土飞扬,人仰马翻。 参加 ...… 查看全部问答> |
|
您在使用TI的GRLIB图形库,还是其他图形库,或是自己开发? TI的Stellarisware提供了丰富的软件库资源,其中包括GRLIB图形库,可以免费提供给TI的客户使用,您对GRLIB图形库了解吗?您在设计界面是使用的是什么图形库吗?… 查看全部问答> |




