计算系统基础13年试卷 答案参考

2018-12-26  本文已影响0人  韩新虎

13计基答案参考

首先明白补码的规则,正数为源码,负数则全部取反,末尾加一

先将432转化为2进制000110110000,取反111001001111,末尾加一后为111001010000

1100+01111101 首先确定最长的位数,然后补齐 。补齐规则为1开头补1,0开头补0比如该题最长位数为8,将1100补齐11111100。

  11110000

+01111101

  01101101

至于溢出没有呢,一个正数加一个负数应该都不会溢出的吧

单纯的数值计算需要记得 NOT,XOR,OR,AND的规则,耐心即可

百度浮点数表示或者查阅书本ppt,记住规则即可。参考答案

首先把十六进制转换为2进制

x789A  ->111100010011010

X6789 -> 110011110001001

111100010011010

110011110001001

1011111110100011

负数相加还是负数应该是没有溢出的,可以手动验证一下。

补码转十进制,最高位为1,则将二进制取反加一,然后用常规方法转十进制。

首先要明白两种P型和M型晶体管的符号,以及原理。 PPT 第七章数字逻辑电路

A 是一个非们,B是一个非与门

ABC

111

101

010

001

b. 主要运用德摩根定律

先将D=1的情况并在一起

D = (!A&&!B&&!C) ||(!A&&B!C)||(!A&&B&&C)||(A&&!B&&!C)||(A&&B&&!C)

  = (!A&&C)||(!A&&B&&C)||(A&&!C)

即最后画出来

(NOT A AND C) OR (NOT A AND B AND C) OR (A AND NOT C)

3. 第七章数字逻辑电路

a. 译码器:n个输入,2^n个输出,被检测的组合的输出为1。7条输入线路,所以输出线路为2^7=128

b. 多路选择器n条选择线,2^n个输入,输出线都是1 条。功能是选择一个输入连接到输出。

16条输入线,故输出为1,选择线为4(2^ 4=16

c. 寻址能力:存储在每一个单元中的位数。

1) 首先明确定义,地址空间是唯一可识别的单元总数。故为 2^16(访问一个内存单元需要16位

2)内存的大小。 单元数乘以每个单元的位数。 2^16 * 16 = 2^20

3) 一字节等于8位。 故2^16* 16 / 8 =2^17

d.  第八章 冯诺伊曼模型 存储器、处理单元、控制单元、输入设备、输出设备

e.  1. 可能会重复读取上一个输入的字符 (第十二章 输入与输出) 2.可能会将DDR之前的数据覆盖

4. 首先明确每种格式需要的位数

操作码200个,则需要8位,2^8=256.

寄存器20个需要5位 2^5=32

则立即数的位数为32-8-3*5=9

最大值为 011111111 = 2^9-1 = 511

最小值为10000000 = - 2^9 = -512

5.

首先这条指令的意思是将Ry中的值存储进Rx+z的地址。首先把指令处理的步骤描述出来是 取指令,译码、取寄存器 3、执行/有效地址/完成分支 4、访问内存 5、写回。取寄存器:先把Rx,Ry传给ALU的A,B寄存器,计算PC与IR[15:0]符号扩展的和,结果存储于ALUOut寄存器。有效地址:计算出处理指令所需的存储单元的地址,即有效地址;访问内存:把在上一阶段计算得到的ALUOut寄存器中的地址加载到地址寄存器MAR读取存储器,一个32位的数据被放进数据寄存器MDR 写回:MDR中的值被写入MAR所指向的地点。(参考第八章冯诺伊曼结构中SW指令的处理)

6.

a. 不能,因为执行JAL指令后 R2 发生了变化

b. 执行JAL跳转前先将R2中的值保存在其他不会被覆盖的寄存器中

7.

一条指令为记得是4位,就从.text表示的地址后面依次加4就可以了,需要注意的是地址为16进制

| 标记    | 地址      |

| ------- | --------- |

| TESTOUT | x40000004 |

| MAIN    | X40000010 |

| BACK_1  | x40000018 |

| NEXT_1  | X4000o030 |

| NEXT_2  | X40000048 |

|        |          |

06 ADDI R1,R0,TESTOUT

000001  00001 00000

8

9.

​ a.输出为

1

2

3

b.

\# 3

\* 4

\# 5

c.

s = 55,i = 11

d. 关键注意break

44

4

7

55

e

没有输出

f

1256

10

a. &str

b. s[len]!='\0'

c i < len

d s[i]>='0'&&s[i]<='9'

e int j = i

f s[j+1] = s[j]

11.

将字符串中的字母将小写字母转为大写,并根据字母表向右平移两位比如A变C,B变D

上一篇下一篇

猜你喜欢

热点阅读