一、本课程设计的性质、目的、任务

《计算机组成与系统结构课程设计》是计算机学院各专业集中实践性环节之一,是学习完《计算机组成与系统结构》课程后进行的一次全面的综合练习。其目的是综合运用所学计算机原理知识,设计并实现一台模型计算机,以便巩固所学的知识,提高分析问题和解决问题的能力。

二、本课程设计的基本理论

1、掌握算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。

2、掌握存储器组织、读写方式及与总路线组成的数据通路,掌握地址总线、数据总线的工作原理。

3、掌握指令结构和指令取指、执行工作过程。

4、掌握CPU的微程序控制原理。

三、题目

1、综合运用所学计算机原理知识,设计并实现具有以下指令集结构的模型计算机:

编号

助记符

机器指令码

说明

1

IN Rd,IOL

0001Rd00

i/o(数据开关)低字节→RS

2

OUT  IOH,Rs

001000Rs

Rs→i/o(数据开关)高字节

3

LDA  Rd,M

0011Rd00   XXXXXXXX   XXXXXXXX

[M] →RD

4

STA  M,Rs

010000Rs   XXXXXXXX   XXXXXXXX

Rs→[M]

5

ADD  Rd,Rs

0101RdRs

Rd+Rs→Rd

6

SUB  Rd,Rs

0110RdRs

Rd-Rs→Rd

7

RL  Rd

0111Rd00

Rd循环左移一位

8

RR  Rd

1000Rd00

Rd循环右移一位

9

MOV Rd,Rs

1001RdRs

Rs→Rd

10

JMP M

10100000  XXXXXXXX   XXXXXXXX

[M]→PC,即跳转到M所指单元

11

JZ M

10110000  XXXXXXXX   XXXXXXXX

当Z=1时,跳转到M所指单元

12

JC M

11000000  XXXXXXXX   XXXXXXXX

当CY=1时,跳转到M所指单元

13

CLR Rd

1101Rd00

将Rd清零

14

DEC Rd

1110Rd00

将Rd值减1

15

HALT

11110000

停机

其中,高4位为指令操作码,M为16位存储器地址, Rs为源寄存器,Rd为目的寄存器,占2位,并规定:

Rs或Rd

选定的寄存器

00

01

10

11

R0

R1

R2

R3

2、利用上述指令集编写汇编程序,并在所设计的模型计算机上调试通过:

用累加的方法实现字节乘法(不溢出情况),被乘数:R0,乘数:R1,积:R2并输出至I/O。

  • 数据格式定义
  1. 数据格式

模型机规定采用定点补码表示数据,且字长为8位,其格式如下:

7

6 5 4 3 2 1 0

符号

尾  数

其中第7位为符号位,数值表示范围是:-1≤X<1。

  1. 指令格式

模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。

⑴ 算术逻辑指令

设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:

7 6 5 4

3 2

1 0

OP-CODE

Rs

Rd

其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:

Rs或Rd

选定的寄存器

00

01

10

11

R0

R1

R2

R3

9条算术逻辑指令的名称、功能和具体格式见表7-12-1。

⑵ 访问指令及转移指令

模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进

位转移指令(BZC),指令格式为:

7

6

5 4

3 2

1 0

0

0

M

2OP-CODE

Rd

D(低八)

D(高八)

其中“0 0  M ”为源码段,2OP-CODE为目的码段(LDA、STA指令使用)。D为十六位地址段(低八在前,高八随后),M为源寻址模式,其定义如下:

寻址模式M

有效地址E

说 明

00

01

10

11

E = D

E = (D)

E = (SP)+D

E = (PC)+D

直接寻址

间接寻址

SP变址寻址

相对寻址

⑶ I/O指令

输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:

7 6 5 4

3 2

1 0

OP-CODE

0 0

Rd

⑷ 停机指令

指令格式如下:

7 6 5 4

3 2

1 0

OP-CODE

0 0

0 0

HALT指令,用于实现停机操作。

五、模型机指令系统(用列表方式给出,含助记符、操作数、指令码、长度、注释等)

1.微程序:

编号

助记符

机器指令码

说明

微程序入口地址

微程序

1

IN Rd,IOL

0001Rd00

i/o(数据开关)低字节→rs

620

620:F0 FC 6D

2

OUT  IOH,Rs

001000Rs

Rs→i/o(数据开关)高字节

640

640:F5 F9 ED

3

LDA  Rd,M

0011Rd00 XXXXXXXX XXXXXXXX

[M] →RD

660

660:FA FB 7F

661:BB FB FF

662:BC C6 3F

663:70 FB ED

4

STA  M,Rs

010000Rs XXXXXXXX XXXXXXXX

Rs→[M]

680

680:FA FB 7F

681:BB FB FF

682:BC C6 3F

683:5F F9 ED

5

ADD  Rd,Rs

0101RdRs

Rd+Rs→Rd

6A0

6A0:F8 F9 7F

6A1:FA F9 FF

6A2:F0 66 6D

6

SUB  Rd,Rs

0110RdRs

Rd-Rs→Rd

6C0

6C0:F8 F9 7F

6C1:FA F9 FF

6C2:F0 6E 6D

7

RL  Rd

0111Rd00

Rd循环左移一位

6E0

6E0:F8 F9 7F

6E1:F0 76 6D

8

RR  Rd

1000Rd00

Rd循环右移一位

700

700:F8 F9 7F

701:F0 7E 6D

9

MOV Rd,Rs

1001RdRs

Rs→Rd

720

720:F0 F9 ED

10

JMP M

10100000 XXXXXXXX XXXXXXXX

[M]→PC,即跳转到M所指单元

740

740:FA FB FF

741:BB FB FF

742:3F C6 2D

11

JZ M

10110000 XXXXXXXX XXXXXXXX

当Z=1时,跳转到M所指单元

760

760:FA FB FF

761:BB FB FF

762:BC C6 3C

764:FF FF ED

765:3F C6 2D

12

JC M

11000000 XXXXXXXX XXXXXXXX

当CY=1时,跳转到M所指单元

780

780:FA FB FF

781:BB FB FF

782:BC C6 3D

784:FF FF ED

785:3F C6 2D

13

CLR Rd

1101Rd00

将Rd清零

7A0

7A0:F0 DE 4D

14

DEC Rd

1110Rd00

将Rd值减1

7C0

7C0:F8 F9 5F

7C1:F0 D6 4D

15

HALT

11110000

停机

7E0

7E0:F8 F8 DF

7E1:3F D6 0D

2.指令系统:

;基本模型机指令系统

;助记符          操作数              指令码             长度        解释

;---------------------------------------------------------------------------------------------------------------------------

IN               R0,IOL               10                 1             ;IOL->R0

IN               R1,IOL               14                 1             ;IOL->R1

IN               R2,IOL               18                 1             ;IOL->R2

IN               R3,IOL               1C                 1             ;IOL->R3

OUT             IOH,R0               20                 1             ;R0->IOH

OUT             IOH,R1               21                 1             ;R1->IOH

OUT             IOH,R2               22                 1             ;R2->IOH

OUT             IOH,R3               23                 1             ;R3->IOH

LDA             R0,*                 30                 3             ;[addr]->R0

LDA             R1,*                 34                 3             ;[addr]->R1

LDA             R2,*                38              3             ;[addr]->R2

LDA             R3,*                3C              3             ;[addr]->R3

STA             *,R0                40              3             ;R0->[addr]

STA             *,R1                41              3             ;R1->[addr]

STA             *,R2                42              3             ;R2->[addr]

STA             *,R3                43              3             ;R3->[addr]

ADD             R0,R0               50            1             ;R0+R0->R0

ADD             R0,R1               51            1             ;R0+R1->R0

ADD             R0,R2               52            1             ;R0+R2->R0

ADD             R0,R3               53            1             ;R0+R3->R0

ADD             R1,R0               54            1             ;R1+R0->R1

ADD             R1,R1               55            1             ;R1+R1->R1

ADD             R1,R2               56            1             ;R1+R2->R1

ADD             R1,R3               57            1             ;R1+R3->R1

ADD             R2,R0               58            1             ;R2+R0->R2

ADD             R2,R1               59            1             ;R2+R1->R2

ADD             R2,R2               5A            1             ;R2+R2->R2

ADD             R2,R3               5B            1             ;R2+R3->R2

ADD             R3,R0               5C            1             ;R3+R0->R3

ADD             R3,R1               5D            1             ;R3+R1->R3

ADD             R3,R2               5E            1             ;R3+R2->R3

ADD            R3,R3               5F             1             ;R3+R3->R3

SUB             R0,R0               60            1             ;R0-R0->R0

SUB             R0,R1               61            1             ;R0-R1->R0

SUB             R0,R2               62            1             ;R0-R2->R0

SUB             R0,R3               63            1             ;R0-R3->R0

SUB            R1,R0               64             1             ;R1-R0->R1

SUB             R1,R1               65            1             ;R1-R1->R1

SUB             R1,R2               66            1             ;R1-R2->R1

SUB             R1,R3               67            1             ;R1-R3->R1

SUB             R2,R0               68            1             ;R2-R0->R2

SUB             R2,R1               69            1             ;R2-R1->R2

SUB             R2,R2               6A            1             ;R2-R2->R2

SUB             R2,R3               6B            1             ;R2-R3->R2

SUB             R3,R0               6C            1             ;R3-R0->R3

SUB             R3,R1               6D            1             ;R3-R1->R3

SUB            R3,R2               6E             1             ;R3-R2->R3

SUB             R3,R3               6F            1             ;R3-R3->R3

RL              R0                  70             1             ;R0循环左移一位

RL              R1                  74             1             ;R1循环左移一位

RL              R2                  78            1             ;R2循环左移一位

RL              R3                  7C            1             ;R3循环左移一位

RR              R0                  80            1             ;R0循环右移一位

RR              R1                  84            1             ;R1循环右移一位

RR              R2                  88            1             ;R2循环右移一位

RR              R3                  8C            1             ;R3循环右移一位

MOV             R0,R0               90            1             ;R0->R0

MOV             R0,R1               91            1             ;R1->R0

MOV             R0,R2               92            1             ;R2->R0

MOV             R0,R3               93            1             ;R3->R0

MOV             R1,R0               94            1             ;R0->R1

MOV             R1,R1               95            1             ;R1->R1

MOV             R1,R2               96            1             ;R2->R1

MOV             R1,R3               97            1             ;R3->R1

MOV             R2,R0               98            1             ;R0->R2

MOV            R2,R1               99             1             ;R1->R2

MOV             R2,R2               9A            1             ;R2->R2

MOV             R2,R3               9B            1             ;R3->R2

MOV             R3,R0               9C            1             ;R0->R3

MOV             R3,R1               9D            1             ;R1->R3

MOV             R3,R2               9E            1             ;R2->R3

MOV             R3,R3               9F            1             ;R3->R3

JMP            *                   A0             3             ;无条件转移到[addr]

JZ             *                    B0             3 ;当Z=1时,跳转到[addr]所指单元

JC              *                   C0             3;当CY=1时,跳转到M所指单元

CLR             R0                  D0            1             ;将R0清零

CLR             R1                  D4            1             ;将R1清零

CLR             R2                  D8            1             ;将R2清零

CLR             R3                  DC            1             ;将R3清零

DEC             R0                  E0            1             ;将R0值减1

DEC             R1                  E4            1             ;将R1值减1

DEC             R2                  E8            1             ;将R2值减1

DEC             R3                  EC            1             ;将R3值减1

HALT            ""                  F0             1             ;停机

3.指令流程图

4.微指令表

微址

M23

M22

M21

M20

M19

M18

M17

M16

代码

M15

M14

M13

M12

M11

M10

M9

M8

代码

M7

M6

M5

M4

M3

M2

M1

M0

代码

后续微址

说明

E/M

IP

MWR

R/M

o2

o1

o0

OP

M

CN

S2

S2

S0

X2

X1

X0

XP

W

ALU

Iu

IE

IR

Icz

Ids

000

1

1

1

1

1

1

1

1

FF

1

1

1

1

1

1

1

1

FF

1

1

1

1

1

1

1

1

FF

+1

空操作

001

1

0

1

1

1

1

1

1

BF

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

0

0

0

F8

可变

ibus→ir

620

1

1

1

1

0

0

0

0

F0

1

1

1

1

1

1

0

0

FC

0

1

1

0

1

1

0

1

6D

001

i/o→RD

640

1

1

1

1

0

1

0

1

F5

1

1

1

1

1

0

0

1

F9

1

1

1

0

1

1

0

1

ED

001

RS->i/o

660

1

1

1

1

1

0

1

0

FA

1

1

1

1

1

0

1

1

FB

0

1

1

1

1

1

1

1

7F

+1

RAM→Bl

661

1

0

1

1

1

0

1

1

BB

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→BH

662

1

0

1

1

1

1

0

0

BC

1

1

0

0

0

1

1

0

C6

0

0

1

1

1

1

1

1

3F

+1

BX->aR

663

0

1

1

1

0

0

0

0

70

1

1

1

1

1

0

1

1

FB

1

1

1

0

1

1

0

1

ED

001

RAM->RD

680

1

1

1

1

1

0

1

0

FA

1

1

1

1

1

0

1

1

FB

0

1

1

1

1

1

1

1

7F

+1

RAM→Bl

681

1

0

1

1

1

0

1

1

BB

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→BH

682

1

0

1

1

1

1

0

0

BC

1

1

0

0

0

1

1

0

C6

0

0

1

1

1

1

1

1

3F

+1

BX->aR

683

0

1

0

1

1

1

1

1

5F

1

1

1

1

1

0

0

1

F9

1

1

1

0

1

1

0

1

ED

001

RD->RAM

6A0

1

1

1

1

1

0

0

0

F8

1

1

1

1

1

0

0

1

F9

0

1

1

1

1

1

1

1

7F

+1

RD->AL

6A1

1

1

1

1

1

0

1

0

FA

1

1

1

1

1

0

0

1

F9

1

1

1

1

1

1

1

1

FF

+1

RS->BL

6A2

1

1

1

1

0

0

0

0

F0

0

1

1

0

0

1

1

0

66

0

1

1

0

1

1

0

1

6D

001

AL+Bl->RD

6C0

1

1

1

1

1

0

0

0

F8

1

1

1

1

1

0

0

1

F9

0

1

1

1

1

1

1

1

7F

+1

RD->AL

6C1

1

1

1

1

1

0

1

0

FA

1

1

1

1

1

0

0

1

F9

1

1

1

1

1

1

1

1

FF

+1

RS->BL

6C2

1

1

1

1

0

0

0

0

F0

0

1

1

0

1

1

1

0

6E

0

1

1

0

1

1

0

1

6D

001

AL-Bl->RD

6E0

1

1

1

1

1

0

0

0

F8

1

1

1

1

1

0

0

1

F9

0

1

1

1

1

1

1

1

7F

+1

Rd->AL

6E1

1

1

1

1

0

0

0

0

F0

0

1

1

1

0

1

1

0

76

0

1

1

0

1

0

1

1

6D

001

RL->Rd

700

1

1

1

1

1

0

0

0

F8

1

1

1

1

1

0

0

1

F9

0

1

1

1

1

1

1

1

7F

+1

Rd->AL

701

1

1

1

1

0

0

0

0

F0

0

1

1

1

1

1

1

0

7E

0

1

1

0

1

1

0

1

6D

001

RR->Rd

720

1

1

1

1

0

0

0

0

F0

1

1

1

1

1

0

0

1

F9

1

1

1

0

1

1

0

1

ED

001

RS->RD

740

1

1

1

1

1

0

1

0

FA

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→Bl

741

1

0

1

1

1

0

1

1

BB

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→BH

742

0

0

1

1

1

1

1

1

3F

1

1

0

0

0

1

1

0

C6

0

0

1

0

1

1

0

1

2D

001

BX->PC

760

1

1

1

1

1

0

1

0

FA

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→Bl

761

1

0

1

1

1

0

1

1

BB

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→BH

762

1

0

1

1

1

1

0

0

BC

1

1

0

0

0

1

1

0

C6

0

0

1

1

1

1

0

0

3C

764

条件变址

764

1

1

1

1

1

1

1

1

FF

1

1

1

1

1

1

1

1

FF

1

1

1

1

1

1

1

1

ED

001

空操作

765

0

0

1

1

1

1

1

1

3F

1

1

0

0

0

1

1

0

C6

0

0

1

0

1

1

0

1

2D

001

BX->PC

780

1

1

1

1

1

0

1

0

FA

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→Bl

781

1

0

1

1

1

0

1

1

BB

1

1

1

1

1

0

1

1

FB

1

1

1

1

1

1

1

1

FF

+1

RAM→BH

782

1

0

1

1

1

1

0

0

BC

1

1

0

0

0

1

1

0

C6

0

0

1

1

1

1

0

1

3D

784

条件变址

784

1

1

1

1

1

1

1

1

FF

1

1

1

1

1

1

1

1

FF

1

1

1

1

1

1

1

1

ed

001

空操作

785

0

0

1

1

1

1

1

1

3F

1

1

0

0

0

1

1

0

C6

0

0

1

0

1

1

0

1

2D

001

BX->PC

7A0

1

1

1

1

0

0

0

0

F0

1

1

0

1

1

1

1

0

DE

0

0

1

0

1

1

0

1

4D

001

0->RS

7C0

1

1

1

1

1

0

0

0

F8

1

1

1

1

1

0

0

1

F9

0

1

0

1

1

1

1

1

5F

+1

RS->AL

7C1

1

1

1

1

0

0

0

0

F0

1

1

0

1

0

1

1

0

D6

0

1

0

0

1

1

0

1

4D

001

A-1->RS

7E0

1

1

1

1

1

0

0

0

F8

1

1

1

1

1

0

0

0

F8

1

1

0

1

1

1

1

1

DF

+1

PC->AX

7E1

0

0

1

1

1

1

1

1

3F

1

1

0

1

0

1

1

0

D6

0

0

0

0

1

1

0

1

0D

001

A-1->PC

计算机组成与系统结构(课程设计)相关推荐

  1. 计算机组成与系统结构课程设计

    计算机组成与系统结构课程设计   一.本课程设计的性质.目的.任务 <计算机组成与系统结构课程设计>**计算机组成与系统结构课程设计** 一.本课程设计的性质.目的.任务 <计算机组 ...

  2. 计算机组成与系统结构课程设计报告

    计算机组成与系统结构课程设计 一. 本课程设计的性质.目的.任务 <计算机组成与系统结构课程设计>是计算机学院各专业集中实践性环节之一,是学习完<计算机组成与系统结构>课程后进 ...

  3. 计算机系统结构综合课程设计报告,计算机系统结构课程设计报告书.doc

    文档介绍: 河北大学工商学院计算机系统结构课程设计学部信息科学与工程学部学科门类工学专业网络工程班级网络一班学号2007480218姓名张杨2010年6月20日目录第1章引言 1第2章WinDLX指令 ...

  4. 计算机组成原理乘法器组成图,计算机组成原理阵列乘法器课程设计报告

    <计算机组成原理阵列乘法器课程设计报告>由会员分享,可在线阅读,更多相关<计算机组成原理阵列乘法器课程设计报告(20页珍藏版)>请在人人文库网上搜索. 1.课 程 设 计;.教 ...

  5. 计算机专业课程设计报告c语言,计算机程序设计(C语言)课程设计报告.doc

    计算机程序设计(C语言)课程设计报告.doc 计算机程序设计C语言课程设计报告题目电子动画时钟 学院 机电工程学院专业 班级090109班学号 姓名 指导教师 设计日期 一.概述选题背景 随着社会的进 ...

  6. 2010年6月计算机组织与结构,2010 计算机组织与体系结构课程设计.doc

    2010 计算机组织与体系结构课程设计 东 莞 理 工 学 院 本 科 课 程 设 计 课程设计题目: 具有访存及循环移位运算功能的 复杂模型机的设计 学生姓名: 许悦 学 号: 2008414021 ...

  7. 计算机组成原理带符号的阵列乘法器,计算机组成原理阵列乘法器课程设计报告精选.doc...

    计算机组成原理阵列乘法器课程设计报告精选 编 号: 学 号: XXX 课 程 设 计 教 学 院计算机学院课程名称计算机组成原理题 目阵列乘法器专 业计算机科学与技术班 级2011级计科(X)班姓 名 ...

  8. 用英文给嵌入式计算机下定义,嵌入式课程设计报告--嵌入式系统项目设计.doc

    河海大学计算机与信息学院(常州) 课程设计报告 题 目 嵌入式系统项目设计 专业.学号 授课班号 277704 学生姓名 同组学生 指导教师 完成时间 2011年6月 课程设计(报告)任务书 (理 工 ...

  9. 计算机图形学课程设计html源码,孔令德的计算机图形学实验及课程设计(VC++版)...

    [实例简介] 计算机图形学实验及课程设计,是太原工业学院孔令德教授编写的关于计算机图形学这门课程相关的18个实验及5个课程设计.案例由浅入深,具有很强的操作性和实际意义. 本资源给出实验的ppt课件以 ...

  10. 设计制作计算机组装评论,计算机组装与维护课程设计_new解析.doc

    计算机组装与维护课程设计 一.根据自己或同学实际需要,按照计算机组成的相关理论和方法,组装一台微型计算机.请列出此微型计算机的具体配置方案以及配置的理由. 配件类型 型号 理由处理器 AMD羿龙II ...

最新文章

  1. Know about Oracle RAC Heartbeat
  2. sourcetree,创建工作流报错:Fatal: Not a gitflow-enabled repo yet. Please run 'git flow init' first.-》解决办法...
  3. .net的retrofit--WebApiClient底层篇
  4. 《Python Cookbook 3rd》笔记(1.18):映射名称到序列元素
  5. IIS负载均衡(转)
  6. DOMJavaScript示例练习
  7. 教程:VS2010 之TFS入门指南
  8. java代码安全检测机制_全面解析:java中的反射机制,内含代码验证解析
  9. java tostring格式_如何在Java中使用toString()获得数字的字符串表示形式?
  10. 记一次wireshark抓取QQ好友IP和火绒抓取微信IP
  11. 从0到100:基于微信小程序的羽毛球馆预约系统的开发笔记
  12. ionic 项目文件下载总结
  13. c#进行三角形周长面积计算公式_C#程序设计 输入三角形三边长,并计算的周长和面积...
  14. WMS系统运用波次拣货原理
  15. 从网课安全到多场景挑战,网易云信构建全方位安全合规屏障
  16. BBED修改数据文件的SCN
  17. 自助取款机系统(python+mysql+GUI)
  18. c++-文件操作-1.创建文件夹
  19. 虚拟机——KSM Kernel Samepage Merging
  20. 树状数组原理及经典应用问题

热门文章

  1. 数据分析真题日刷 | 京东2019春招京东数据分析类试卷
  2. 算法-求数组的子数组之和的最大值
  3. jmeter打开bat文件闪退
  4. 华为交换机常见ARP操作
  5. 全球排名前四的眼药水,第一款来自欧洲老牌安瞧AGEPHA Pharma,眼科医生自留!
  6. element表格固定表头
  7. CMD命令窗口全屏设置
  8. xp系统电脑如何链接宽带连接服务器,WinXP设置开机自动宽带连接的方法
  9. 是不是不知道用什么命令查看mac系统信息?
  10. matlab中portcons,马柯维茨均值-方差模型