# 错题集合

# Ch2

  1. 某计算机字长为 8 位,CPU 中有一个 8 位加法器,已知无符号数 x=69, y=38,若在该加法器中计算 x-y,则加法器的两个输入短信息和输入的低位进位信息分别为()
  • 0100 0101, 1101 1001, 1

无符号数减法,在加法器中输入 x 的原码,y 的取反和 1

  1. 减法指令 “sub R1, R2, R3” 的功能为 “(R1) - (R2) -> R3”, 该指令执行后将生成进位 / 借位标志 CF 和溢出标志 OF,若 (R1) = FFFF FFFFH, R2 = FFFF FFF0H, 则该减法指令执行后,CF 和 OF 分别为:
  • CF = 0, OF = 0
  1. 已知 x, y 为 int 类型,当 x = 100, y = 200 时,执行 "x - y" 指令得到的溢出标志 OF 和结尾标志 CF 分别为 0,1,那么当 x = 1-, y = -20 时,执行该指令得到的 OF 和 CF 分别为:
  • OF = 0, CF = 1

ALU 生成标志位时只负责计算,不管运算对象是有符号数还是无符号数。CF=1 表示当做无符号数运算时溢出,OF=1 表示当做有符号数运算时溢出。当做有符号数,10-(-20) 没问题,所以 OF=0;把它俩当做无符号数的时候,x = 10 = 0000 0000 0000 0000 0000 0000 0000 1010,y = -20 = 1111 1111 1111 1111 1111 1111 1110 1100,此时 x < y,所以 CF=1。

  1. 下列关于整数乘法运算的叙述中,错误的是:D
  • A. 用阵列乘法器实现的乘运算可以在一个时钟周期内完成 -- 正确,因为是组合逻辑理论上可以在一个 clc 里完成
  • B. 用 ALU 和移位器实现的乘运算无法在一个时钟周期内完成
  • C. 变量与常数的乘运算可编译优化为若干移位及家 / 减运算指令
  • D. 两个变量的乘运算无法编译转换为移位及加法等指令的循环实现

# Ch4

  1. 简化地址结构的方式是尽量采用: 隐含寻址