ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

“21天好习惯”第一期——8

2021-10-30 11:33:27  阅读:288  来源: 互联网

标签:标志 天好 21 ZF CF 第一期 ALU SF 运算


《计算机组成原理》

  3.3.2 算术逻辑运算单元

  1.ALU的外部特性与功能

  算术逻辑运算单元(ALU)通常包括:输入、输出和控制引脚。

输入部分:A和B是输入到ALU的两个n位数(数值量或逻辑量),C_{in}代表ALU的初始进位信号。

输出部分:运算结构由A和B经过ALU运算以后的结果;C_{out}是ALU运算过程中最高位产生的进位信号;CF/ZF/SF/OF/PF分别是ALU输出的运算标志信息,分别对应进位/借位标志、零标志、符号标志、溢出标志和奇偶标志。

控制部分:Control是一个m位的控制信号,通过不同的控制信号来控制ALU执行不同的运算功能。若ALU执行的运算功能数位k,则m和k应满足2^{m}\geq k

2.ALU的标志位

    常用标志位只有ZF、CF、OP、SF和PF这几种,它们通常自动记录到程序状态字(PSW)中的对应标志段,以便系统能实时掌握ALU的运行状态。

 (1)零标志 ZF

ZF主要用于标识当前ALU的运算结果F是否为0,如果F=0,则置ZF=1,否则置ZF=0。

(2)进位/借位标志CF

CF主要用于指示ALU当前执行  “加或减” 运算时,最高位是否存在进位和借位。如无符号二进制数A=1001、B=1010则A+B=1001+1010=1 0011,这里最左边的1是A+B运算过程中最高位产生进位C_{out},故此时CF应置CF=1,否则置CF=0。

    CF通常对无符号数的运算有实际意义,对有符号数则无应用意义。

(3)溢出标志OF

运算发生溢出,通常会导致ALU输出结果F的错误,因此必须设置为ALU设置溢出标志位。如,4位二进制补码数A=0111,B=0100,则A+B=0111+0100=1011 (为-5),两个正数相加的运算结果是负数,显然此运算结果是不正确的,因为A+B=11,超出4为二进制补码数的表示范围,因此发生了溢出,故应该置OF=1。

(4)符号标志SF

   SF主要用来标识ALU输出的运算结果即F的符号位。例如,若F=1011,则置SF=1;若F=0110,则置SF=0。SF仅对符号数才有实际意义。

(5)奇偶标志PF

    PF主要用来标识ALU输出的运算结果F的二进制代码中,代码1的个数是奇数还是偶数。如果有偶数个1,则置PF=1,否则置PF=0。

  数据采用奇偶校验编码方式,那么可以通过ALU输出的PF来对输入数据进行奇偶校验,以判断被校验的数据代码是否正确。

 

判断两个定点数A/B是否相等,可以先在ALU中执行“A-B”,再根据输出的标志位ZF来判断。除此外还有别的通过ALU输出的标志位来判断任意两个数的大小关系呢?

对无符号数A/B,ALU先执行“A-B”运算再按下列规则判断;

  •    标志位ZF=1,则A=B。
  •    标志位CF=0,且ZF=0,则A>B。
  •    标志位CF=1,则A<B。

对于带符号数A/B,ALU先执行“A-B”运算,再按下列规则判断:

  •    标志位OF=1且SF=0、ZF=0,或者OF=1且SF=1,那么A>B。
  •    标志位ZF=1,则A=B。
  •    标志位OF=0且SF=1,或者OF=1且SF=0,则A<B。

   在某些条件转移类指令或者专用的比较类指令中常常涉及对两个参数的值进行大小比较,从而判定是否符合转移条件。因此在设计ALU的逻辑电路时,通常需要设计这些标志位,以便快速地通过这些标志位来构建比较的逻辑条件。 

标签:标志,天好,21,ZF,CF,第一期,ALU,SF,运算
来源: https://blog.csdn.net/weixin_56001158/article/details/121047771

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有