计组复习错题回顾
这是博主使用《数字逻辑与计算机组成》配套练习题的复习时错题的整理,便于我回顾。
本文不定时更新。
第一章:二进制编码


在典型的指令周期中,CPU 的工作是严格分阶段的:
-
取指阶段:程序计数器(PC)指向的地址就是下一条要执行的指令所在的位置。在此阶段,CPU 从 PC 所指的地址读取内存内容,并将其解释为指令,送入指令寄存器(IR)。此时,地址总线上是 PC 的值,控制总线发出“读指令”的信号。
-
执行阶段:在指令被译码后,如果该指令需要从内存读取数据(操作数),CPU 会根据寻址方式(如你题目中的基址寻址)计算出操作数的有效地址,然后再次访问内存。此时,地址总线上是操作数的地址,控制总线发出“读数据”的信号。
核心:同一内存地址,在不同时刻、由CPU不同阶段的硬件逻辑发起访问,其“身份”就不同。 在“取指阶段”访问的就是指令,在“执行阶段”(根据指令译码结果)访问的就是数据。是访问发生的时机和目的决定了二进制串的身份。

这题A选项说法不全面:运算器还可以完成逻辑运算。

这题很坑,17题0后面有一个很小的小数点,规定小数的模为2。对于18题,记住对于n位运算部件,其模就是2^n,这里从0到n有n+1位。

除了补码,移码的0表示也是唯一的。

这题可以记忆一下C选项。

这题先写出-26的原码,转换为补码之后,为了满足8位的存储要求,高位补符号位。
-26原码:111010
-26补码:100110
拓展至8位:1110 0110

这题先判断si是否发在short可以表示的范围内,然后将其转换为二进制形式(补码),再将其按无符号数解释即可。

采用奇效验,并且没有发生数据错误,说明字符编码中含有奇数个1。
第二章:数字逻辑基础

a


卡诺图中的变量是按照格雷码排列的,格雷码是一种对称的编码,相邻的两个格雷码对应的位置只有一位不同。

这题没啥好说的,纯粹忘记了。

这题截出来是为了提醒我最大项中原变量表示0,原变量的反变量表示1,如图所示。

第三题死活化简不出来。

对于C选项,控制端的位数至少:是以2为底,取输入端的位数的对数,并且向上取整。

这题逻辑表达式只写输出为1的最小项。
第六章:运算方法和运算部件

补码的位移运算,符号位是始终要动的:
- 左移符号位丢失,低位补0
- 右移高位补符号位,低位丢失


这类题,需要联系教程图6.6进行作答:

需时刻记住数值在计算机内部都是以补码存储的。

这题也是结合上面的电路图回答,注意是无符号数。做了这题可以理解:Cn和Cout在数值上是相等的,但表示的含义有所不同。Cn表示的是符号位的进位(只对有符号来说);Cout不仅可以表示符号位的进位,还是无符号数最高位的进位。CF=Cout异或Sub。

这题逐层计算,先算三地址指令剩余的空闲指令条数,从里面取一条作为二地址指令的标志,再算二地址指令的空闲指令条数,从里面取一条作为一地址指令的标志,以此类推,直到可以弄清楚零地址指令的空闲位数n,零地址指令最多有2的n次方条。

这题先算最后一个元素的起始地址,再根据存储方式计算MSB位所在的地址。注意在计算起始地址的时候,是C000 1000H+499。因为a[0]的起始地址是C000 1000H + 04,a[1[的起始地址是C000 1000H + 4*1。得到起始地址后,起始地址保存了a[99]的第一个字节,MSB就是起始地址加3。

这题考寄存器间接寻址,寄存器中保存的是操作数的有效地址。对于间接寻址,指令中的地址码为操作数有效地址的地址,所以操作数的有效地址是地址码指向的区域的值。

这两题,将16 位的形式地址符号扩展到 32 位再与 32 位基址寄存器的值相加,是基址寻址在硬件实现中的标准做法。

432

被折叠的 条评论
为什么被折叠?



