2023 组成原理 标志寄存器 选择题
第 16 题

已知 x、y 为 int 类型,当 x=100,y=200 时,执行 x-y 指令的到的溢出标志 OF 和借位标志 CF 分 别为0,1,那么当 x=10,y=-2 0 时,执行该指令得到的 OF 和 CF 分别是()。

17. 某运算类型指令中有一个地址码为通用寄存器编号,对应通用寄存器中存放的是操作数或操作数地址, CPU 区分两者的依据是()。

A. 操作数的寻址方式

B. 操作数的编码方式

C. 通用寄存器编号

D. 通用寄存器的内容

A.OF=0,CF=0

B.OF=0,CF=1

C.OF=1,CF=0

D.OF=1,CF=1

[tag_link]

正确答案:B

int 类型在计算机中以补码形式表示,因此,x(10)的二进制表示为 0000 0000 0000 0000 0000 0000 0000 1010B,y(-20)的二进制表示为 11111111 11111111 1111 1111 11101100。OF 和 CF 是 CPU 中 标志寄存器 的标志位。CF 表示无符号整数运算时的进位/借位,因此计算 CF 的时候,需要把和 x 和 y 当成无符号数进行计算,因为 x 不够减 y,所以 CF = 1。计算 OF 的时候,需要把和 x 和 y 当成有符号数进行计算,x-y=30,不超过 int 的最大值,不会产生溢出,所以 OF=0。所以本题的正确选项为 B。