408王道计算机组成原理强化——数据的运算及大题(下)

简介: 408王道计算机组成原理强化——数据的运算及大题

3.加法器电路

3.1.无符号数加法d245e50b0f7a4bbcb9e7da7899cf14d9.png

①加法器的左端输入被加数A(1010),右端输入加数B(1000)

②加法 → Sub = 0,即加减法控制信号向多路选择输入0,B通过MUX的0侧输入到加法器中

③加法器进行对1010和1000进行逐位相加 → 1 0010 → 只保留低4bit,最高位丢弃

④OF(虽然对无符号数没有意义,但是仍然会生成):1010的最高位(1)和1000的最高位(1)进位(1)和1010的次高位(0)和1000的次高位(0)进位(0)进行异或 → OF = 1

⑤CF(无符号数通过CF是否为1判断是否产生溢出):最高位进位(即cout输出位,1)和sub输入位(加法,0)进行异或 → CF = 1,1010 + 1000发生进位/借位,即溢出

3.2.无符号数减法image.png

①加法器的左端输入被加数A(1010),右端输入加数B(1000)

②减法 → Sub = 1

1.加减法控制信号向多路选择输入1,B通过MUX的1侧输入到加法器中:B经过非门,即B按位取反 → 0111(实现按位取反)

2.加法器进行对1010和0111进行逐位相加 → 1 0001

3.加减法控制信号通过cin向加法器输入1 → 1 0010(实现末位加1)只保留低4bit,最高位丢弃

③CF(无符号整数的减法中,减数大于被减数,就会发生借位,即结果为负数,而无符号数只能表示整数,故CF = 1时表示无符号减法溢出):最高位输出位(1)和sub输入位(减法,1)进行异或 → CF = 0,1010 - 1000没有借位/进位,即没有溢出

3.3.补码加法/减法

①实现原理和无符号数的加/减原理一样(ALU在实现运算时,并不区分是实现的原码还是补码的运算)

②是否溢出看CF是否为1:最高位进位和SUB异或(OF对补码加/减无意义)

③SF = 1表示负数,SF = 0表示负数

3.4.标志位CF、ZF、OF、SF

1.OF(无符号数无意义):最高位进位和次高位进位异或

2.SF(无符号数无异议):结果的最高位

3.ZF:结果全0,ZF = 1;结果非全0,ZF = 0

4CF.(有符号数无意义):最高位进位和SUB异或43ff46a7f35843c68dd81351aea68e07.png

3.5.补充

1.计算机通过当前指令的不同,即进行的微操作不同,对当前进行有符号数/无符号数的计算进行区分,进而让有符号数的加减进行溢出判断时,检查OF;无符号数的加减进行溢出判断时,检查CF

2.加减乘除出现溢出时,并不一定导致异常(内中断):

①硬件:让硬件自动捕捉异常并且发生异常时直接运行中断处理程序

②软件:在执行加减乘除指令后,加上一条陷入指令,由该陷入指令检查溢出是否发生,并且发生时运行中断处理程序

③溢出无所谓,不进行处理

4.乘法溢出b8e8bf7245644ae28865b79af00c02b3.png1.2n位保存结果:nbit * nbit 结果一定能用2n bit表示(999 * 999 = 998 001,即3位 * 3位一定不超过6位),故当使用2n bit保存结果时,不会发生溢出

2.n位保存结果:只保留后nbit

(1)无符号数:当前nbit全为0时,舍弃前nbit不影响结果的真值,故不发生溢出;当前nbit只要有出现1时,舍弃前nbit就会影响结果的真值,故发生溢出

(2)有符号数:当前n+1bit全为0/1,舍弃前nbit不影响结果的真值,故不发生溢出,当前nbit不是全为0/1,舍弃前nbit就会影响结果的真值,故发生溢出

原因是补码的符号扩展:当n位补码最高位为0时,扩展为2nbit,则扩展的nbit为全0;当n位bit最高位为1时,扩展为2nbit,则扩展的nbit全为1;故前n+1bit全0/全1时,舍弃前nbit不影响真值b57cef122ff84c35960a22816151b084.png

5.精度丢失2b94c85a5e7b4e05b077787bd18ebf97.png


1.浮点数的表示隐含了一个最高位的1,即计算精度位数时,需要尾数位数 + 1

2.被转换数有效位数 > 转换类型的精度:发生精度丢失

INT类型有1位是符号位,故精度为32 - 1 = 31bit

INT类型精度为31bit,float类型精度为23 + 1 = 24bit → 31 > 24 →可能发生丢失

INT类型精度为31bit,double类型精度为52 + 1 = 53bit → 31 < 53 → 不会发生丢失

883a7a3e612d49f3912f523bd3fe8875.png

6.真题image.png

(1)可以通过软件的方式使用n轮循环加法指令、减法指令、移位指令等价实现乘法操作

(2)控制逻辑控制循环的次数,并且发出右移和加法指令

(3)a即用软件方式实现(2n轮),b即用硬件方式实现(n轮),c即(1轮)

相关文章
408王道计算机组成原理强化——输入输出系统大题(I/O)
408王道计算机组成原理强化——输入输出系统大题(I/O)
377 1
408王道计算机组成原理强化——输入输出系统大题(I/O)
|
算法 网络虚拟化 内存技术
408王道计算机组成原理强化——存储系统大题
408王道计算机组成原理强化——存储系统大题(下)
2162 2
408王道计算机组成原理强化——存储系统大题
|
存储 算法 调度
【考研必备】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(下)
【考研必备】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)
|
6月前
|
算法 C语言 索引
计算机简单算法
计算机简单算法
44 1
|
5月前
|
存储 知识图谱
【计算机组成原理】指令系统&考研真题详解之拓展操作码!
也就是说 “其中三地址指令29”条这句话,完全可以翻译成“三地址这种类型的指令一共能有29种不同的可能性” 这样说就清晰多 因为这就意味着 我们需要用若干个字节 来表示这29种不同的可能性 然后又已知每一个字节位能表示的可能性是2种(0/1),那么我们想有多少个字节可以表示29种不同的可能呢?最少5种 (因为2的4次方=16<29),2^5=32>29,也就是说有32-29=3种可能性是不在三地址指令这种类型的指令集里面的,所以这3 种余出来的可能性要被利用 就在下一种 “二地址指令集”中利用到
70 0
|
存储 安全 网络安全
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(下)
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)
|
存储 Unix Linux
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
|
存储 机器学习/深度学习 Unix
【考研必备】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
【考研必备】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)
【考研必备】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
|
存储
计算机组成原理:计算机的体系与结构
本文介绍早期计算机、冯·诺依曼体系结构和现代计算机结构。
211 0
计算机组成原理:计算机的体系与结构
谈一谈|计算机是如何做减法的
谈一谈|计算机是如何做减法的
258 0