复杂模型机实验报告

更新时间:2023-12-04 21:19:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机组成原理实验报告

评语: 课中检查完成的题号及题数: 成绩:

自评分:

92

课后完成的题号与题数:

实验报告

实验名称:

基于复杂模型机两个8位二进制数乘法的实现

日期: 姓名: 姓名:

2012/1/9

班级: 班级:

学号: 学号:

一、实验目的:

1. 综合运用所学计算机组成原理知识,设计并实现较为完整的计算机 2. 锻炼动手能力,实践排错能力

3. 进一步理解计算机运行的原理以及微指令架构

二、实验内容:

1. 根据实验指导书提供的复杂模型机电路图连接电路,并校验电路 2. 装载示例程序并运行,分析理解所增加的微指令

3. 根据复杂模型机现有条件设计两个8位二进制相乘的程序

三、项目要求及分析:

实验内容1、2

按照实验指导书进行,略。

实验内容3 分析:

要求利用复杂模型机现有的指令系统以及硬件电路设计一段实现八位二进制数相乘的程序。因为乘法在计算机中有多种算法实现,包

1

计算机组成原理实验报告

括整数乘、小数乘、原码乘、补码乘等等,因为此次实验并不要求给出一个完整的实用乘法程序段,故实验程序只实现两个八位二进制整数无符号相乘运算。

采用算法如下:

乘数 A A7A6A5A4A3A2A1A0

被乘数 B

乘积 C = B·A0 +2(B·A1+2(B·A2+ …… 2·B·A7))))))

其中Ai为0或者1,在机器中使用原码表示2*X是使X左移1位。若不采用循环模式而是直接使用指令将该算法的乘积等式直接表示出来,需要A,B,RL(结果低位),RH(结果高位)四个通用寄存器;而若使用循环模式,则需要除A、B、RL、RH外的CX(控制循环次数以及高低位相与寄存器)和AD(取中间结果高低位)的辅助。

此次实验为了充分的接触指令系统,采用循环模式。由于复杂模型机中只有R0、R1、R2、R3四个通用寄存器,故一些原来计划使用的寄存器改为使用主存。

另外,因为低位结果相加可能进位,所以修改原微指令ADD为带进位加法。

四、具体实现:

1. 画出算法流程图

2

计算机组成原理实验报告

说明:

该流程图使用了以下6个寄存器CX, AD,A,B,RL,RH; 其中CX作为计数以及辅助生成AD的,CX变化为

1000 0000 0000 0001 0000 0010 …… 1000 0000

初始值

程序结束

AD作为被乘数的高低位划分数据, 其中被乘数B中高位对应的AD的位置1,低位置0:

0000 0000 0000 0001 0000 0011 ……

1111 1111

初始值

CX OR AD -> AD

另流程图中所用6个寄存器在实现中使用MEM代替,CX,AD,A,B使用R2作RL,R3作RH。左移1位等价右移7位

2. 根据算法实现,若需修改指令系统,画出修改后的微程序流程图

3

计算机组成原理实验报告

需修改一条微指令即A+B->RD修改为进位加法,因流程图大体

不变所以微程序流程图略

3.编写微程序

两个8位二进制数的乘法运算程序如下:;机器指令

$P 00 20;INPUT TO R0 $P 01 00

$P 02 22;INPUT TO R2 $P 03 00

$P 04 61;SET R1 TO 00 $P 05 00

$P 06 63;SET R3 TO 00 $P 07 00

$P 08 63;SET R3 TO F8 $P 09 F8

$P 0A D3;STORE R3 TO 80 AS A TAG $P 0B 80 ;循环主体

$P 0C 63;SET R3 TO 01 $P 0D 01

$P 0E 1B;AND R2,R3 $P 0F F0;BZC TO 12 $P 10 12

$P 11 01;ADD R0,R1 $P 12 63;SET R3 TO 01 $P 13 01

$P 14 AD;RR R3,R1 $P 15 AE;RR R3,R2 $P 16 63;SET R3 TO 7F $P 17 7F

4

计算机组成原理实验报告

$P 18 1E;AND R3,R2 $P 19 63;SET R3 TO 80 $P 1A 80

$P 1B 17;AND R1,R3 $P 1C 9E;OR R3,R2 $P 1D 63;SET R3 TO 01 $P 1E 01

$P 1F AF;RR R3,R3 JUST TO MAKE FZ NOT EQUAL ONE THEN BZC DEPENDS ON FC $P 20 F0;BZC TO 40 $P 21 40

$P 22 63;SET R3 TO 7F $P 23 7F

$P 24 1D;AND R3,R1 TO MAKE THE HB OF R1 AS 0 $P 25 63;SET R3 TO 01 $P 26 01

$P 27 AF;RR R3,R3 JUST TO ... $P 28 C3;LAD 80 TO R3 $P 29 80 $P 2A 73;R3++

$P 2B F0;BZC TO THE END WHICH IS 90 $P 2C 90

$P 2D D3;STA R3 TO 80 $P 2E 80

$P 2F E0;JMP TO THE ENTRANCE OF THE CYCLE $P 30 0C

;条件转移指令分支 $P 40 63;SET R3 TO 80 $P 41 80

$P 42 9D;OR R3,R1 TO MAKE THE HB OF R1 AS 1 $P 43 E0;JMP TO 25 $P 44 25 ;程序结尾

$P 90 34;OUTPUT R1 $P 91 40

$P 92 38;OUTPUT R2

5

计算机组成原理实验报告

$P 93 40 $P 94 50;STOP ;微指令

; //** Start Of MicroController Data **// $M 00 000001 ; NOP

$M 01 006D43 ; PC->AR, PC加1 $M 03 107070 ; MEM->IR, P<1> $M 04 002405 ; RS->B $M 05 04B201 ; A$M 06 002407 ; RS->B $M 07 013201 ; A$M 08 106009 ; MEM->AR $M 09 183001 ; IO->RD $M 0A 106010 ; MEM->AR $M 0B 000001 ; NOP $M 0C 103001 ; MEM->RD $M 0D 200601 ; RD->MEM $M 0E 005341 ; A->PC $M 0F 0000CB ; NOP, P<3> $M 10 280401 ; RS->IO $M 11 103001 ; MEM->RD $M 12 06B201 ; A$M 13 002414 ; RS->B $M 14 05B201 ; A$M 15 002416 ; RS->B $M 16 01B201 ; A$M 17 002418 ; RS->B $M 18 043201 ; A$M 1B 005341 ; A->PC $M 1C 10101D ; MEM->A $M 1D 10608C ; MEM->AR, P<2> $M 1E 10601F ; MEM->AR $M 1F 101020 ; MEM->A $M 20 10608C ; MEM->AR, P<2>

加B->RD 与B->RD 加1->RD 减B->RD 或B->RD 右环移->RD 6

计算机组成原理实验报告

$M 28 101029 ; MEM->A $M 29 00282A ; RI->B $M 2A 04E22B ; A加B->AR $M 2B 04928C ; A加B->A, P<2> $M 2C 10102D ; MEM->A $M 2D 002C2E ; PC->B $M 2E 04E22F ; A加B->AR $M 2F 04928C ; A加B->A, P<2> $M 30 001604 ; RD->A $M 31 001606 ; RD->A

$M 32 006D48 ; PC->AR, PC加1 $M 33 006D4A ; PC->AR, PC加1 $M 34 003401 ; RS->RD $M 35 000035 ; NOP

$M 36 006D51 ; PC->AR, PC加1 $M 37 001612 ; RD->A $M 38 001613 ; RD->A $M 39 001615 ; RD->A $M 3A 001617 ; RD->A $M 3B 000001 ; NOP

$M 3C 006D5C ; PC->AR, PC加1 $M 3D 006D5E ; PC->AR, PC加1 $M 3E 006D68 ; PC->AR, PC加1 $M 3F 006D6C ; PC->AR, PC加1 ; //** End Of MicroController Data **//

4. 编写机器指令验证

;机器指令

$P 00 20;INPUT TO R0 $P 01 00

$P 02 22;INPUT TO R2 $P 03 00

$P 04 61;SET R1 TO 00 $P 05 00

$P 06 63;SET R3 TO 00 $P 07 00

7

计算机组成原理实验报告

$P 08 63;SET R3 TO F8 $P 09 F8

$P 0A D3;STORE R3 TO 80 AS A TAG $P 0B 80 ;循环主体

$P 0C 63;SET R3 TO 01 $P 0D 01

$P 0E 1B;AND R2,R3 $P 0F F0;BZC TO 12 $P 10 12

$P 11 01;ADD R0,R1 $P 12 63;SET R3 TO 01 $P 13 01

$P 14 AD;RR R3,R1 $P 15 AE;RR R3,R2

$P 16 63;SET R3 TO 7F $P 17 7F

$P 18 1E;AND R3,R2 $P 19 63;SET R3 TO 80 $P 1A 80

$P 1B 17;AND R1,R3 $P 1C 9E;OR R3,R2

$P 1D 63;SET R3 TO 01 $P 1E 01

$P 1F AF;RR R3,R3 JUST TO MAKE FZ NOT EQUAL ONE THEN BZC DEPENDS ON FC $P 20 F0;BZC TO 40 $P 21 40

$P 22 63;SET R3 TO 7F $P 23 7F

$P 24 1D;AND R3,R1 TO MAKE THE HB OF R1 AS 0 $P 25 63;SET R3 TO 01 $P 26 01

$P 27 AF;RR R3,R3 JUST TO ... $P 28 C3;LAD 80 TO R3 $P 29 80

$P 2A 73;R3++

$P 2B F0;BZC TO THE END WHICH IS 90 $P 2C 90

$P 2D D3;STA R3 TO 80 $P 2E 80

$P 2F E0;JMP TO THE ENTRANCE OF THE CYCLE $P 30 0C

;条件转移指令分支

$P 40 63;SET R3 TO 80 $P 41 80

8

计算机组成原理实验报告

$P 42 9D;OR R3,R1 TO MAKE THE HB OF R1 AS 1 $P 43 E0;JMP TO 25 $P 44 25 ;程序结尾

$P 90 34;OUTPUT R1 $P 91 40

$P 92 38;OUTPUT R2 $P 93 40

$P 94 50;STOP

联机装入调试

五、调试运行结果:

六、所遇问题及解决方法:

在编写机器指令之前,不了解新增加的微指令系统的各个功能会怎样影响FC,FZ位, 尤其是循环右移RR以及与AND功能。导致不能直接使用BZC跳转命令,于是首先连线,并编写了几条简单的命令对功能进行验证,解决问题。

七、实验总结:

1. 经过实验,深层次的了解了微指令系统以及它存在的意义。并且通过自我拓

展,了解到了现在计算机底层所流行的技术以及有哪些公司正在做底层芯片,有哪些架构等等。

体会到了机器语言的速度之快以及变成之繁琐。贯通了从电路到桌面应用这一系列体系知识。 2. 3.

9

本文来源:https://www.bwwdw.com/article/kxbt.html

Top