ALU 运算功能详解

总表

在这里插入图片描述

  • S3、S2、S1、S0、CN_I为控制信号FC 进位标志FZ 零标志FS 正负标志I 中断允许标志;表中功能栏内的FC、FZ、FS表示当前运算可能会影响到该标志。

很显然只放这么一张表是很随意且模糊的,其中有着很多的基础知识,下文将详细讲述其中每一个功能,剖析每一次的运算过程。

  • 接下来我将会顺着二进制依次增大的顺序讲解,并将其作为标题。
  • 若 CN_I 有 1 与 0 的区别的将会分开解析。

FC,FZ,FS是什么

  • 在进入解释前我们先了解一下什么是 FC,FZ,FS

一、FC(Flag Carry)进位标志
在这里插入图片描述
二、FZ(零标识)
当运算结果为 0 时,FZ = 1,即 FZ 将会亮。

  • 所有的运算都有可能产生 0 的结果

三、FS(正负标识)
当运算结果为负数时,FS = 1,即 FS 将会亮。

逻辑运算

0 0 0 0,F 直通 A、B

  • CN_I = 1

直接输出 A

  • CN_I = 0

直接输出 B


0 0 0 1,F = A + B

这里的 A + B 不是指一般的 1 + 1 = 2,而是使用二进制逻辑运算 “或” 进行运算
有关逻辑运算可以看 二进制逻辑运算 这里我直接放样例

A = 580101 1000
B = AB1010 1011
或运算结果[0] 1111 1011 = FB
  • FC = 0,FZ = 0,FS = 0;
  • 上表中 [0] 表示 FC 的值,用以表示有无进位若有进位 FC 就会等于 1,也就是说 FC 将会亮(由于异或判断之类的逻辑运算不会产生进位,所以逻辑运算都不会亮

0 0 1 0,F = A * B

同样,这里的 A * B 不是指的 2 * 2 = 4,而是使用二进制逻辑运算 “与” 进行运算(二进制逻辑运算

A = 580101 1000
B = AB1010 1011
与运算结果[0] 0000 1000 = 08

0 0 1 1

0 1 0 0

移位运算

0 1 0 1

0 1 1 0

0 1 1 1

算数运算

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

其他 1 1 0 0

其他 1 1 0 1

1 1 1 0

1 1 1 1

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值