【计算机组成原理】实验报告07-乱码版

图片复制粘贴会失效,需要原报告请私聊。

一、实验目的:

[实验目的和要求]

  1. 掌握固定操作码和扩展操作码技术
  2. 掌握指令和数据的寻址方式
  3. 掌握常用指令的用法
  4. 理解CPU的主要功能和组成部件

二、实验环境:

计算机,局域网,Word

  • 实验内容和要求:

1.指令操作码为8位,地址码为8位,若采用操作码固定的方式设计零地址、一地址、二地址和三地址4种指令格式,最多可设计多少条指令?画出每种指令的格式图。

2.指令字长度固定为16位,地址码为4位,若采用扩展操作码的方式设计零地址、一地址、二地址和三地址4种指令格式,假设零地址有A条,一地址有B条,二地址有C条,三地址有D条,请写出A、B、C、D的关系式并画出每种指令的格式图。

3.画图说明指令和数据的寻址方式,写出每种数据寻址方式有效地址EA的计算公式和访存次数。

4.某机的指令格式如下图所示:

图中X 为2位寻址特征位:X=00表示直接寻址;X=01表示用变址寄存器X1进行变址;X=10表示用变址寄存器X2进行变址;X=11表示相对寻址。

设(PC)=1000H,(X1)=0024H,(X2)=1010H(H代表十六进制数),请计算下列指令中的有效地址:

(1) 0810H      (2) 0633H      (3) 1522H      (4) 1723H

5.查阅资料,对比ARM和x86的常用指令用法的区别。

6.说明CPU的功能和基本结构,要求列出CPU每个组成部件并说明其功能。

四、实验结果(答案粘贴此处):

由于指令操作码固定为8位,所以最多可设计 28 = 256 条指令

零地址

op

一地址

op

A1

二地址

op

A1(目的操作数)

A2(源操作数)

三地址

op

A1

A2

A3(result)

采用扩展指令操作码,指令长度固定为 16 位,一个操作数地址码为4位,因此可得关系式:

(((24 - D)*24 - C)*24 - B)*24 = A

指令格式图:

op

A1

A2

A3

三地址D条

D

二地址C条

(24 - D)

一地址B条

(24 - D)

((24 - D)*24 - C)

零地址A条

(24 - D)

((24 - D)*24 - C)

(((24 - D)*24 - C)*24 - B)

寻址方式

画图说明指令和数据的寻址方式,写出每种数据寻址方式有效地址EA的计算公式和访存次数。

访存0次

访存0次

访存1次

访存2次

访存0次

访存1次

访存1次

访存0次

 ARM指令集:

ARM(Acorn RISC Machine)是一种精简指令集(RISC)架构,广泛用于移动设备、嵌入式系统和一些服务器。ARM指令集包括一系列简单、定长的指令,旨在提供高性能和能效。

x86指令集:

x86是一种复杂指令集计算机(CISC)架构,最初由Intel开发,后来被AMD等厂商采用。x86指令集广泛应用于个人计算机和服务器。x86指令集包含大量的指令,有多种寻址方式,提供了丰富的功能。

区别:

架构类型:

ARM是RISC(Reduced Instruction Set Computing)架构,注重简洁性和效能。

x86是CISC(Complex Instruction Set Computing)架构,拥有更多复杂的指令集。

指令集的复杂性:

ARM指令集相对较简单,指令长度一致,执行速度较快。

x86指令集较为复杂,包含大量指令,有不同长度的指令,这可能导致一些复杂性和功耗上的增加。

应用领域:

ARM广泛应用于移动设备、嵌入式系统和低功耗设备,例如智能手机、平板电脑等。

x86主要用于个人计算机和服务器,但近年来也在一些低功耗服务器和嵌入式系统中有所应用。

性能和功耗:

ARM架构通常在功耗效能上表现较为出色,适用于移动设备和低功耗环境。

x86架构的处理器通常更强大,但在功耗方面较高,适用于高性能计算和服务器领域。

CPU的主要组成部件及其功能:

控制单元(Control Unit):

功能: 控制整个CPU的操作。它解释指令,从内存中读取指令,解码指令以确定执行哪些操作,并协调其他部件的工作。

算术逻辑单元(Arithmetic Logic Unit,ALU):

功能: 负责执行算术和逻辑运算,例如加法、减法、乘法、除法以及与、或、非等逻辑运算。

寄存器(Registers):

功能: 用于存储临时数据和指令。寄存器速度非常快,是CPU内部存储器的一部分。包括通用寄存器、程序计数器(PC)、指令寄存器等。

时钟(Clock):

功能: CPU中的时钟产生脉冲信号,控制CPU中的操作步骤,统一整个系统的时序。时钟频率决定了CPU的运行速度。

缓存(Cache):

功能: 存储临时数据,以提高对内存的访问速度。分为多级缓存(L1、L2、L3),位于CPU内部或附近。

总线(Bus):

功能: 用于在CPU内部各个组件之间传递数据和控制信号。分为数据总线、地址总线、控制总线。

指令寄存器(Instruction Register,IR):

功能: 存储当前正在执行的指令,供控制单元解码和执行。

程序计数器(Program Counter,PC):

功能: 存储下一条将要执行的指令的地址,保持指向程序的执行位置。

标志寄存器(Flag Register):

功能: 存储处理器状态标志,如零标志、进位标志等,用于条件分支和状态判断。

译码单元(Decoder):

功能: 解码指令,将指令翻译成对应的控制信号,以执行相应的操作。

执行单元(Execution Unit):

功能: 执行由控制单元和ALU生成的操作,进行算术和逻辑运算。

五、教师评语:

   

str.=.input().num_G.=.str.count('G').+.str.count('g').num_P.=.str.count('P').+.str.count('p').num_L.=.str.count('L').+.str.count('l').num_T.=.str.count('T').+.str.count('t').print(num_G,num_P,num_L,num_T)..while.num_G.!=.0.or.num_P.!=.0.or.num_L.!=.0.or.num_T.!=.0:.....if.num_G.!=.0:.........print("G",end="").........num_G.-=.1.....if.num_P.!=.0:.........print("P",end="").........num_P.-=.1.....if.num_L.!=.0:.........print("L",end="").........num_L.-=.1.....if.num_T.!=.0:.........print("T",end="").........num_T.-=.1.a.=.int(input()).i,c.=.1,0.while.True:.....b.=.'1'.*.i.....if.int(b)%a==0:.........c.=.int(b)//a.........break.....else:.........i.+=.1.print(c,len(str(b))).tel.=.input().tel.=.list(map(int,tel)).lis.=.list(set(tel)).lis.sort(reverse=True).index.=.[].for.i.in.tel:.....if.i.in.lis:.........index.append(lis.index(i)).lis.=.list(map(str,lis)).index.=.list(map(str,index)).print('int[].arr.=.new.int[]{%s};'%(','.join(lis))).print('int[].index.=.new.int[]{%s};'%(','.join(index))).

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值