选择题:
浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为 5 位和 7 位(均含 2 位符号位)。若有两个数 X=27×29/32,Y=25×5/8,则用浮点加法计算 X+Y 的最终结果是____ 。
A.00111 1100010
B.00111 0100010
C.01000 0010001
D.发生溢出
题解:
考查浮点加法运算。
根据题意,X可记为00, 111; 00, 11101(分号前为阶码,分号后为尾数),Y可记为00, 101; 00, 10100。
首先对阶,X、Y 阶码相减,即 00, 111-00, 101=00, 111+11, 0111=00, 010,可知 X 的阶码比 Y 的价码大 2,根据小阶向大阶看齐的原则,将 Y 的阶码加 2,尾数右移 2 位,可得 Y 为 00, 111; 00, 00101。
尾数相加,即 00, 11101+00, 00101=01, 00010,尾数相加结果符号位为 01,故需进行右规。
规格化,将尾数右移 1 位,阶码加 1,得 X+Y 为 01, 000; 00, 1000,阶码符号位为 01,说明发生溢出。故选D。
解答题:
某计算机字长为 16 位,主存地址空间大小为 128KB,按字编址。采用单字长指令格式,指令各字段定义如下:
转移指令采用相对寻址方式,相对偏移量用补码表示,寻址方式定义如下:
Ms/Md | 寻址方式 | 助记符 | 含义 |
000B | 寄存器直接 | Rn | 操作数=(Rn) |
001B | 寄存器间接 | (Rn) | 操作数=((Rn)) |
010B | 寄存器间接、自增 | (Rn) + | 操作数=((Rn)),(Rn)+1→Rn |
011B | 相对 | D (Rn) | 转移目标地址=(PC)+(Rn) |
注:(X)表示存储器地址 X 或寄存器 X 的内容。
请回答下列问题:
⑴ 该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需要多少位?
⑵ 转移指令的目标地址范围是多少?
⑶ 若操作码0010B 表示加法操作(助记符为 add),寄存器 R4和 R5的编号分别为100B 和101B,R4的内容为1234H,R5的内容为5678H,地址1234H 中的内容为5678H,地址5678H 中的内容为1234H,则汇编语言为“add (R4),(R5)+”(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元中的内容会改变?改变后的内容是什么?
题解:
(1) 操作码占 4 位,则该指令系统最多可有 24 =16 条指令;操作数占 6 位,寻址方式占 3 位,于是寄存器编号占 3 位,则该机最多有 23 =8 个通用寄存器;主存容量 128KB,按字编址,计算机字长为 16 位,划分为 128KB/2B=216个存储单元,故 MDR 和 MAR 至少各需 16 位。
(2) PC 和 Rn 可表示的地址范围均为 0~216 -1,而主存地址空间为 216,故转移指令的目标地址范围是 0000H~FFFFH(0~216 -1)。
(3) 汇编语句“add (R4), (R5) +”,对应的机器码为 0010 0011 0001 0101B=2315H。
该指令执行后,寄存器 R5 和存储单元 5678H 的内容会改变。执行后,R5 的内容从 5678H 变成 5679H。存储单元 5678H 中的内容变成该加法指令计算的结果 5678H+1234H=68ACH。
-END-