使用进位位和溢出位的原因 [英] Reason to use the carry bit and the overflow bit

查看:191
本文介绍了使用进位位和溢出位的原因的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在介绍嵌入式系统类。正如我正在阅读,我遇到一个有趣的问题,即进位位和溢出位的实现。我知道一个进位和溢出位是什么,但是我不能想到有人会使用进位的情况。我认为的一个原因是调整记忆。有没有人能够清楚这个问题吗?



谢谢!

解决方案

进位标志对于比处理器的累加器或寄存器宽的数据有效执行算术和逻辑运算非常有用。这可能不是现代64位处理器的一个问题,但早期的微处理器和一些当前的微控制器可能仍然只有一个8位或16位的累加器。进位位将允许使用单个累加器对任何多字长度进行加/减和移位/旋转。除了基本添加,减法,移位和旋转指令(开始对多字数据进行操作)之外,还有附加进位,减法与借位移位和随身携带指令(以随后的字进行操作)。为了方便这样的代码序列, INC reg DEC reg 指令(用于指针和循环计数器修改)不会修改(并因此保留)进位标志,即使它们是算术指令。



某些微控制器(例如Intel 8051)还将进位标志用作其单位端口I / O操作的读取目的地或写入源。



根据处理器架构,进位和溢出标志(以及其他一些标志,例如半进位,标志或零标志)在各种算术和逻辑运算中被置位或清零。应查询处理器的指令集,了解有哪些标志存在,以及由指令修改的条件。


I am taking an Introduction to Embedded Systems Class. As I was reading, I encountered an interesting question on the implementations of the carry bit and overflow bit. I know what a carry bit and overflow bit is, however I cannot think of a situation in where someone would use a carry bit. One reason i thought was to align memory. Can someone shed light on this issue please?

Thanks!

解决方案

The carry flag is useful for efficiently performing arithmetic and logical operations on data that is wider than the processor's accumulator or registers. This may not be a concern on a modern 64-bit processor, but early microprocessors and some current microcontrollers may still have only an 8-bit or 16-bit accumulator. The carry bit would permit add/subtract and shift/rotate of any multi-word length with the single accumulator. Besides the basic add, subtract, shift and rotate instructions (to begin the operation on multi-word data), there would be add-with-carry, subtract-with-borrow, shift-with-carry and rotate-with-carry instructions (to operate on subsequent words). And to facilitate such code sequences, the INC reg and DEC reg instructions (for pointer and loop counter modification) would not modify (and therefore preserve) the carry flag, even though they were arithmetic instructions.

Some microcontrollers (e.g. Intel 8051) also use the carry flag as a read destination or write source for its single-bit port I/O operations.

The carry and overflow flags (and perhaps some other flags, e.g. half-carry, sign or zero flags, depending on the processor architecture) are set or cleared on various arithmetic and logical operations. The processor's instruction set should be consulted for what flags exist and the conditions for which they are modified by instructions.

这篇关于使用进位位和溢出位的原因的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆