《计算机组成原理》作业答案Word文件下载.docx
《《计算机组成原理》作业答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《《计算机组成原理》作业答案Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
双符号位的作用是什么?
它只出现在什么电路之处?
⑴X=0.1101Y=-0.0111
⑵X=Y=-00101011
十进制数原码表示反码表示补码表示X+YX-Y
0.1101001101001101001101000110011100
-0.01111101111110001110010.0110溢出
00000000(和)
-001010111100101011111100(差)
双符号位用于简化补码加减运算时的判别溢出,它只出现在ALU的符号运算之处。
4、解释定点运算器的功能和组成部件?
以Am2901芯片为实例,来介绍定点运算器的有关知识,你的认可程度如何?
定点运算器主要完成对整型数据、逻辑型数据的算术与逻辑运算功能。
为了快速地完成数据运算,它至少应该由下述功能部件电路组成。
⑴算术与逻辑运算部件(ALU),它在给出运算结果的同时,还给出结果的某些特征,如溢出否、有无进位、结果是否为零、为负等。
⑵能被汇编程序员直接访问与使用的通用寄存器。
⑶能自行左右移位的乘商寄存器。
⑷多路选择器。
⑸接受外部数据和送出运算结果的逻辑电路。
Am2901芯片是一个4位的位片结构的运算器部件,该芯片由四大部分组成:
⑴4位的算术逻辑运算部件(ALU),它的输出为F,两路输入分别标记为R和S,最低位进位信号Cn,它能实现3种算术运算、5种逻辑运算功能。
⑵16个4位通用寄存器组成的寄存器组,它是一个用双端口(A口和B口)控制读出、单端口(B口)控制写入的部件。
⑶一个4位Q寄存器,主要用于实现硬件的乘除法指令,能对本身的内容完成左、右移位功能,能接受ALU的输出,输出送到ALU的S输入端。
⑷5组多路数据选择器电路,每组都由4套电路组成,一套电路对应一个数据位,通过它们实现芯片内部上述3个组成部分之间的连接。
5、以教学计算机为例,说明应如何控制与操作运算器完成指定的数据运算、传送功能,为什么必须在Am2901芯片之外解决向运算器提供最低位的进位输入信号,最低、最高位的移位输入信号,以及状态位的接收与记忆问题。
设计完成如下操作功能的操作步骤和必须提供的信号:
把戏100送入RO,RO的内容送入RI,
完成RO-RI并存入ROR1的内容减1
R1的内容送入QR1和Q与C联合右移一位。
在教学计算机中,为控制运算器完成指定的数据运算、传送功能,必须给出要用的数据组合、ALU要完成的运算功能、和对运算结果的保存及送出办法;
选择送到ALU最低位的进位信号的状态,如何处理最高、最低位的移位信号的状态,是否保存运算结果的特征位信号等问题,都要依据指令执行的实际需求来处理,不是运算器内部功能所能包含的,故只能到Am2901芯片之外来解决。
予期功能控制信号
I8-6I5-3I2-0SSTA地址B地址SCiSSH
R0←100(64H)011000111001不用00000000
R1←R0011000100001000000010000
R0←R0-R1011001001001000100000000
R1←R1-1010001011001不用00010100
Q←R10000001000010001不用0000
与Cy联合右移
R1│Q←R1│Q100000011001000100010010
控制的作用Y的输出运算运算状态选A口选B口最低位移位
通用与Q寄存功能数据寄存器数据数据进位控制
寄存器的接收
注意:
最后一项操作中,移入通用寄存起R1最高位的不是状态触发器C的值,而是ALU运算的符号位Cy的值,通用寄存器和Q联合右移时,不能支持与C的循环移位。
6.假定X=0.0110011×
211,Y=0.1101101×
2-10(此处的数均为二进制),在下使用隐藏位的情况下,回答下列问题:
⑴浮点数阶码用4位移码、尾数用8位原码表示(含符号位),写出该浮点数能表示的绝对值最大、最小的(正数和负数)数值;
⑵写出X、Y的下确的浮点数表示(注意,此处预设了个小陷阱);
⑶计算X+Y;
⑷计算X×
Y
参照模拟试题中对浮点数的运算过程完成本题运算,最终运算结果为:
(1)最大的正数0.1111111*27,最小的正数0.1000000*2-7
绝对值最大的负数-1*27,绝对值最小的负数-0.1000000*2-7
(2)[X]浮:
010101100110,[Y]浮:
001101101101
符号位阶码尾数符号位阶码尾数
(3)X+Y=0.*2+010
(4)X*Y=0.110111*2+000
计算机组成原理作业2
1、计算机指令中要用到的操作数一般可以来自哪些部件?
如何在指令中表示这些操作数的地址?
通常使用哪些寻址方式?
指令中要用到的操作数一般可以来自以下三个部件:
⑴CPU内部的通用寄存器,此时应在指令中给出用到的寄存器编号(寄存器名);
⑵外围设备(接口)中的一个寄存器,通常用设备编号或设备入出端口地址、或设备映像地址(与内存储器地址统一编址的一个设备地址编号)来表示;
⑶内存储器的一个存储单元,此时应在指令中给出该存储单元的地址。
计算机的寻址方式:
1.
立即数寻址:
操作数直接给出在指令字中,即指令字中直接给出的不同再是操作数地址,而是操作数本身。
2.
直接寻址:
操作数地址字段直接给出操作数在存储器中的地址。
3.
寄存器寻址:
指令字中直接给出操作数所在的通用寄存器的编号。
4.
寄存器间接寻址:
指令字中给出通用寄存器的编号,在寄存器中给出的不是一个操作数,而是操作数地址时,就可以用这一地址去读写存储器。
5.
变址寻址:
指令字中给出的一个数值(变址偏移量)与指定的一个寄存器(变址寄存器)的内容相加之和作为操作数的地址,用于读写存储器。
6.
相对寻址:
指令字中给出的一个数值(相对寻址偏移量)与程序计数器PC的内容相加之和作为操作数的地址或转移指令的转移地址。
7.
基地址寻址:
把在程序中所用的地址与一个特定的寄存器(基地址寄存器)的内容相加之和作为操作数的地址或指令的地址。
8.
间接寻址:
指令字的地址字段给出的既不是一个操作数的地址,也不是下一条指令的地址,而是一个操作数地址的地址,或一条指令地址的地址。
9.
堆栈寻址:
堆栈是存储器中一块特定的按“后进先出”原则管理的存储区,该存储区中被读写单元的地址是用一个特定的寄存器命同的,该寄存器被称为堆栈指针(SP)。
如果有些指令,其操作码部分已经指明一个操作数为堆栈中的一个单元的内容,则它已经约定将使用SP访问该单元,故不必在指令的操作数地址字段中另加说明。
2、什么是形式地址?
简述对变址寻址、相对寻址、基地址寻址应在指令中给出些什么信息?
如何得到相应的实际(有效)地址?
各自有什么样的主要用法?
表示在指令中的操作数地址,通常被称为形式地址;
用这种形式地址并结合某些规则,可以计算出操作数在存储器中的存储单元地址,这一地址被称为物理地址。
变址寻址:
主要适合于处理数组型数据。
相对寻址:
与变址寻址的区别是,计算实际地址所用的寄存器已确定为PC,故无须再在指令中指定;
而变址寻址中的可用的变址寄存器往往有多个,通常要在指令中指定本次要使用哪一个。
主要用于指令转移。
基地址寻址:
主要用于为多道程序或浮动地址程序定位存储器空间。
基地址寄存器中的值是由系统程序用特权指令设定的,用户不能在自己的程序对其进行修改。
3、用教学机的指令系统,设计一个程序,实现从键盘读入无符号的整型数据,到计算机内转达换成二进制数并保存在累加器RO中,要求有适当的检查各种操作错误的能力。
A2040
2040MVRDR2,0030;
用于判断数字字符的下界值
2041MVRDR3,0039;
用于判断数字字符的上界值
2042MVRDR4,0000
2043IN81;
以下4句检查有无键盘输入
2044SHRR0
2045SHRR0
2046JRNC2043
2047IN80;
把从键盘输入的一个字符读到R0的低位字节
2048INCR4;
记录输入的数字个数
2049MVRDR1,00FF
2050ANDR0,R1
2051CMPR0,R2;
判输入的字符<
字符0否
2052JRNC2098;
是,则转到程序处理
2053CMPR3,R0;
判输入的字符>
字符9否
2054JRNC2098;
是,则转到程序处理
2055CMPR0,0030;
以下语句是将数字字符转成数值
2056JRNZ2059
2057MVRDR5,0000
2058JMPA2095
2059CMPR0,0031
2060JRNZ2062
2061MVRDR5,0001
2062JMPA2095
2063CMPR0,0032
2064JRNZ2066
2065MVRDR5,0002
2066JMPA2095
2067CMPR0,0030
2068JRNZ2070
2069MVRDR5,0003
2070JMPA2095
2071CMPR0,0030
2072JRNZ2074
2073MVRDR5,0004
2074JMPA2095
2075……….
2095PUSHR5
2096JMPA20