跳转指令的实现.docx

上传人:b****5 文档编号:27928122 上传时间:2023-07-06 格式:DOCX 页数:38 大小:1.13MB
下载 相关 举报
跳转指令的实现.docx_第1页
第1页 / 共38页
跳转指令的实现.docx_第2页
第2页 / 共38页
跳转指令的实现.docx_第3页
第3页 / 共38页
跳转指令的实现.docx_第4页
第4页 / 共38页
跳转指令的实现.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

跳转指令的实现.docx

《跳转指令的实现.docx》由会员分享,可在线阅读,更多相关《跳转指令的实现.docx(38页珍藏版)》请在冰豆网上搜索。

跳转指令的实现.docx

跳转指令的实现

课程设计任务书

学生姓名:

专业班级:

指导教师:

工作单位:

题目:

基本模型机的设计——跳转指令的实现

初始条件:

理论:

学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。

实践:

计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。

2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。

3、课程设计的书写报告应包括:

(1)课程设计的题目。

(2)设计的目的及设计原理。

(3)根据设计要求给出模型机的逻辑框图。

(4)设计指令系统,并分析指令格式。

(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。

(6)模型机当中时序的设计安排。

(7)设计指令执行流程。

(8)给出编制的源程序,写出程序的指令代码及微程序。

(9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中跳转指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。

(10)课程设计总结(设计的特点、不足、收获与体会)。

时间安排:

设计时间为第18周

周一:

熟悉相关资料。

周二:

系统分析,设计程序。

周三、四:

编程并上实验平台调试周五:

撰写课程设计报告。

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

基本模型机的设计

——跳转指令的实现

1、课程设计的题目

基本模型机的设计——跳转指令的实现

2设计的目的及设计的原理

2.1设计的目的

1、掌握了各个单元模块的工作原理,进一步将其组成整的系统,构造成1台基本的模型计算机。

2、根据实验要求,规划读写内存、寄存器、数值计算等功能,并且编写相应的微程序。

用软件HKCPT的微单步功能观察指令运行状态,掌握微过程控制原理。

3、利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念,具体上机调试各个模块单元以便进一步掌握整机的概念。

2.2设计的原理

在各个模型实验中,各模块的控制信号都是由实验者手动模拟产生的。

而在真正的试验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。

在本实验平台中,模型机从内存中取出、解释、执行机器指令都由微指令和与之相配合的时序来完成,既1条机器指令对应1个微程序。

3模型机的总体设计

3.1基本模型机系统分析与设计

1、简单的模型计算机是由算术逻辑运算单元、微程序单元、堆栈寄存器单元、累加器、启停、时序单元、总线和存储器单元组成。

2、在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减指令。

把通用寄存器作为累加器A们进行左、右移等操作指令,整体构成一个单累加器多寄存器的系统。

3、根据设计要求,对实验仪硬件资源进行逻辑组合,便可设计出该模型机的整机逻辑框图。

3.2模型机的逻辑框图

4设计指令系统

本实验平台内采用的是8位数据总线和8位地址总线,在设计指令系统时考

虑有如下几种类型的指令和寻址方式及编码方式:

4.1指令类型

4.1.1算术/逻辑运算类指令

如:

加法、减法、取反、逻辑运算

ADDA,Ri,SUBA,Ri

4.1.2移位操作类指令

带进位或不带进位的移位指令

RRCA,RLCA,RRA

4.1.3数据传送类指令

CPU内部寄存器之间数据传递

MOVA,Ri

MOVRi,A

4.1.4程序跳转指令

跳转指令分为无条件跳转指令和有条件跳转指令。

可根据寄存器内容为零来标志(ZD)、有无进位来标志(CY),也可根据用户自定义标志。

JMPaddr无条件跳转

JZaddrZD=0时跳转

JCaddrCY=0时跳转

JNaddr自定义

4.1.5存储器操作类指令

存储器读/写指令。

把内存某单元内容写入寄存器中或把寄存器中的内容写入存储器。

如:

LDAaddr(addr)->A

STAaddr(A)->addr

4.2操作数寻址方式及编码

4.2.1直接地址寻址

如:

双字节指令

LDAaddr(addr)->A

STAaddr(A)->addr

第1字节

I7

I6

I5

I4

I3

I2

I1

I0

操作码

第2字节

A7

A6

A5

A4

A3

A2

A1

A0

操作数地址addr

4.2.2寄存器直接寻址

指令字节中含有寄存器选择码,决定选择哪个寄存器进行操作。

如:

单字节指令

MOVA,Ri(Ri)->A

单字节

I7

I6

I5

I4

I3

I2

I1

I0

操作码与Ri选择码

如:

双字节指令

MOVRi,#datadata->Ri

第1字节

I7

I6

I5

I4

I3

I2

I1

I0

操作码与Ri选择码

第2字节

D7

D6

D5

D4

D3

D2

D1

D0

Data

4.2.3寄存器间接寻址

如:

单字节指令

MOVA,@Ri(Ri)->A

Ri选择码

I7

I6

I5

I4

I3

I2

I1

I0

操作码

4.2.4立即数寻址

如:

单字节指令

MOVA,#datadata->A

MOVRi,#datadata->Ri

第1字节

I7

I6

I5

I4

I3

I2

I1

I0

操作码与Ri选择码

第2字节

D7

D6

D5

D4

D3

D2

D1

D0

Data

5设计微程序及其实现的方法

5.1微指令格式的设计

在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可右微代码直接实现。

如果采用多组编码译码,那么24位微代码通过二进制译码可实现

个互斥的微操作控制信号。

由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。

5.2后续微地址的产生方法

每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。

微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下下一条微指令地址。

例如:

确定了一条程序的微程序入口地址位07H,那么当执行完07H这条微指令后微地址加1,指向08H微地址。

微地址寄存器由2篇74LS161组成,当模型机在停机状态下,微地址被清零。

当实验平台开始运行时,微地址从00H开始运行。

且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令。

00

取指微指令

01

02

03

减法指令微程序

(1)

04

减法指令为程序

(2)

05

06

07

MOV指令微程序

(1)

08

MOV指令微程序

(2)

09

MOV指令微程序(3)

0A

0B

0C

0D

0E

0D

5.3微程序入口地址的形成

在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0~MD7,这种方法成为“按操作码散转”(如下表所示)。

微程序首地址形成

MD7

MD6

MD5

MD4

MD3

MD2

MD1

MD0

0

0

I7

I6

I5

I4

1

1

 

按操作码散转

指令操作码

微程序首地址

MD7、MD6

I7

I6

I5

I4

MD1、MD0

MD7~MD0

0

0

0

0

0

1

003H

0

0

0

0

1

1

007H

0

0

0

1

0

1

00BH

0

0

0

1

1

1

00FH

0

0

1

0

0

1

013H

0

0

1

0

1

1

017H

0

0

1

1

0

1

01BH

0

0

1

1

1

1

01FH

0

1

0

0

0

1

023H

0

1

0

0

1

1

027H

0

1

0

1

0

1

02BH

0

1

0

1

1

1

02FH

0

1

1

0

0

1

033H

0

1

1

0

1

1

037H

0

1

1

1

0

1

03BH

0

1

1

1

1

1

03FH

6模型机当中时序的设计安排

1、由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用技术增量方式,所以可确定模型机中时序单元中所产生的每一节拍的作用。

2、在本实验中,由监控单元产生了一个PLS-O的信号来控制时序产生(如下图所示)。

PLS-O信号经过时序单元的处理产生了4个脉冲信号。

4个脉冲信号组成一个为周期,为不同的寄存器提供工作脉冲。

它们分别实现的功能是:

(1)PLS1:

微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1.

(2)PLS2:

PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。

(3)PLS3:

把24位微指令打入3片微指令锁存器。

(4)PLS4:

把当前总线上的数据打入微指令选通的寄存器中。

SIGN

PLS1

PLS2

PLS3

PLS4

7设计指令执行流程

在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令周期中都必须有一个机器周期作为“取指令周期”,成为公操作周期。

而一条指令共需要几个机器周期取决于指令在机器内实现的复杂程度。

对于微过程控制的计算机,在设计指令执行流程时,要保证每条指令所含有的微操作的必要性和合理性,还要知道总线IAB,IDB,OAB,ODB仅是传输信息的通路,没有寄存器信息的功能,而且必须包证总线传输信息时信息的唯一性。

例如本次课程设计中用到的取值微指令、ADD、JMP、RRC、MOVE等指令

7.1取值微指令的执行流程

在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。

在处于停机状态时,脉冲PLS1对微地址寄存器无效,微地址寄存器保持为0。

脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器中,把模型机置为运行状态,使微程序锁存器输出有效。

PLS3把微程序存储器00H单元中内容打入微指令锁存器中,并且输出取指微指令。

PLS4把从程序存储器中读出的数据打入指令寄存器中。

在模型机处于运行状态时,脉冲PLS1将微地址寄存器加1,脉冲PLS2将PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。

PLS4把当前总线上的数据打入当前微指令所选通的寄存器。

7.2ADD指令的执行流程

例如:

ADDA,Ri,该指令功能为(A)+(Ri)->A,需执行以下微操作:

(PC)+1

PC;PC加1,为取下一条指令字节准备

(A)

DR1;累加器A内容送ALU

(Ri)

DR2;寄存器Ri内容送ALU

(A)+(Ri)

IDB

A;使ALU执行加法,经IDB送入A

CY;据加法结果置进位标志

(PC)

IAB

OAB;PC计数器内容做访问内存地址

(RAM)

ODB

IDB

IR1;从内存该地址单元读出指令寄存器IR1.

此程序由四个微指令周期:

1.PC+1为取下条字节准备,累加器A内容送ALU的DR1锁存器

2.寄存器Ri内容送ALU的DR2锁存器

3.ALU将计算结果送累加器A,据加法结果置进位标志CY

4.取指微指令,从内存读出指令送指令寄存器

7.3JMP指令的执行流程

例如:

JMPaddr,该指令功能为addr->PC,需执行如下操作:

(PC)+1

PC;PC加1,为取下一条指令字节准备

(RAM)

ODB

IDB

IR2;取本指令第二字节IR2

IR2

LAB

OAB;由IR2内容形成转移地址送PC

(PC)

IAB

OAB;PC计数器内容做访问内存地址

(RAM)

ODB

IDB

IR1;从内存该地址单元读出指令寄存器IR1

此程序由两个微指令周期:

1.PC+1从内存中取得指令第2个字节送入IR2.

2.IR2内容形成地址转移到PC,从内存中读出指令字节送指令寄存器。

7.4RRC指令的执行流程

例如:

RRCA,该指令功能是将累加器A中的内容带进位CY循环右移一位,即->CY->A7->A6->…->A1->A0->,需执行如下微操作:

(PC)+1

PC;PC加1,为取下一条指令字节准备

(A)、CY

A,CY;控制累加器A带CY右环移一位

(PC)

IAB

OAB;PC计数器内容做访问内存地址

(RAM)

ODB

IDB

IR1;从内存该地址单元读出指令寄存器IR1

此程序由两个微指令周期:

1.PC加1,为取下一条指令字节准备,控制累加器A带CY右环移一位

2.取指微指令,从内存中读出指令送指令寄存器

7.5MOV指令的执行流程

7.5.1双字节指令MOVA,#data

该指令功能为data->A,需执行如下操作:

(PC)+1

PC;PC加1,为取本指令下一字节备

(RAM)

ODB

IDB

A;取出本指令第二字节

(PC)+1

PC;PC加1,为取下一条指令字节备

(PC)

IAB

OAB;PC计数器内容做访问内存地址

(RAM)

ODB

IDB

IR1;从内存该地址单元读出指令寄存器IR1.

此程序由两个微指令周期:

1.PC+1从内存中取得指令第2个字节送入累加器A。

2.PC+1执行取指微指令,从内存中读出指令送指令寄存器

7.5.2双字节指令MOVRi,#data

该指令功能为data->A,需执行如下操作:

(PC)+1

PC;PC加1,为取本指令下一字节备

(RAM)

ODB

IDB

Ri;取出本指令第二字节

(PC)+1

PC;PC加1,为取下一条指令字节备

(PC)

IAB

OAB;PC计数器内容做访问内存地址

(RAM)

ODB

IDB

IR1;从内存该地址单元读出指令寄存器IR1

此程序由两个微指令周期:

1.PC+1从内存中取得指令第2个字节送入寄存器Ri。

2.PC+1执行取指微指令,从内存中读出指令送指令寄存器

8源程序以及程序的指令代码及微程序

8.1跳转、转移指令实现的源程序

MOVA,#82

RRCA

MOVA,#32

RLCA

MOVA,#18

RLCA

JZ08

ADDA,R0

JC12

JMP0A

MOVR1,#42

ADDA,R1

STA40

HALT

8.2程序的指令

00MOVA,#82

02RRCA;

03MOVA,#32;

05RLCA;

06MOVA,#18;

08RLCA;

09JZ08;

0BADDA,R0;

0CJC12;

0EJMP0A;

10MOVR1,#42;

12ADDA,R1;

13STA40;

15HALT;

16HALT;

17HALT;

18HALT;

19HALT;

1AHALT;

1BHALT;

1CHALT;

1DHALT;

1EHALT;

1FHALT;

8.3微指令序列

M23-M0

00[00],[00],[00]取指指令

01[00],[00],[00]

02[00],[00],[00]

03[00],[00],[00]A->Dbus->DR1

04[00],[00],[00]Ri->Dbus->DR2

05[00],[00],[00]ALU->Dbus->A

06[00],[00],[00]取指指令

07[00],[00],[00]Ri->Dbus->DR2

08[00],[00],[00]ALU->Dbus->A

09[00],[00],[00]取指指令

0A[00],[00],[00]Ri->Dbus->IR2

0B[00],[00],[00][IR2]->Abus,Dbus->A

0C[00],[00],[00]取指指令

0D[00],[00],[00]

0E[00],[00],[00]

0F[00],[00],[00]Ri->Dbus->A

10[00],[00],[00]取指指令

11[00],[00],[00]

12[00],[00],[00]

13[00],[00],[00]A->Dbus->Ri

14[00],[00],[00]取指指令

15[00],[00],[00]

16[00],[00],[00]

17[00],[00],[00]Dbus->A

18[00],[00],[00]取指指令

19[00],[00],[00]

1A[00],[00],[00]

1B[00],[00],[00]Dbus->Ri

1C[00],[00],[00]取指指令

1D[00],[00],[00]

1E[00],[00],[00]

1F[00],[00],[00]Dbus->IR2

20[00],[00],[00][IR2]->Abus,RAM->Dbus->A

21[00],[00],[00]取指指令

22[00],[00],[00]

23[00],[00],[00]Dbus->IR2

24[00],[00],[00][IR2]->Abus,A->Dbus->RAM

25[00],[00],[00]取指指令

26[00],[00],[00]

27[00],[00],[00]A>>1

28[00],[00],[00]取指指令

29[00],[00],[00]

2A[00],[00],[00]

2B[00],[00],[00]A<<1

2C[00],[00],[00]取指指令

2D[00],[00],[00]

2E[00],[00],[00]

2F[00],[00],[00]Dbus->IR2

30[00],[00],[00][IR2]->Abus,Dbus->PC

31[00],[00],[00]

32[00],[00],[00]

33[00],[00],[00]A->Dbus->DR1

34[00],[00],[00]RAM->Dbus->DR2

35[00],[00],[00]ALU->A

36[00],[00],[00]取指指令

37[00],[00],[00]A->Dbus->DR1

38[00],[00],[00]RAM->Dbus->DR2

39[00],[00],[00]ALU->A

3A[00],[00],[00]取指指令

3B[00],[00],[00]

3C[00],[00],[00]

3D[00],[00],[00]

3E[00],[00],[00]

3F[00],[00],[00]停机

8.使用软件HKCPT的实现过程

微地址

M23-M0

数据流程

数据总线

地址总线

操作寄存器

00H

4AFFFF

取指微指令RAM->Dbus->IR1

5FH

00H

IR1=5FH

MOVA,#82由两个微指令周期组成

17H

DDFBFF

Dbus->A

82H

01H

A=82H

18H

4DFFFF

取指微指令RAM->Dbus->IR1

9FH

02H

IR1=9FH

RRCA由两个微指令周期组成

27H

FFF1EF

A>>1

41H

无效

A=41H

28H

4DFFFF

取指微指令RAM->Dbus->IR1

5FH

03H

IR1=5FH

MOVA,#32由两个微指令周期组成

17H

DDFBFF

Dbus->A

32H

04H

A=32H

18H

4DFFFF

取指微指令RAM->Dbus->IR1

AFH

05H

IR1=AFH

RLCA由两个微指令周期组成

2BH

FFE9EF

A<<1

64H

无效

A=64H

2CH

CDFFFF

取指微指令RAM->Dbus->IR1

5FH

06H

IR1=5FH

MOVA,#18由两个微指令周期组成

17H

DDFBFF

Dbus->A

18H

07H

A=18H

18H

4DFFFF

取指微指令RAM->Dbus->IR1

AFH

08H

IR1=AFH

RLCA由两个微指令周期组成

2BH

FFE9EF

A<<1

30H

无效

A=30H

2CH

CDFFFF

取指微指令RAM->Dbus->IR1

B3H

09H

IR1=B3H

JZ08由两个微指令周期组成

2FH

D4FFFF

Dbus->IR2

08H

0AH

IR2=08H

30H

4DFFFF

[IR2]->Abus,Dbus->PC

0CH

0BH

IR1=0CH

ADDA,R0由四个微指令周期组成

03H

FFFCF9

A->Dbus->DR1

30H

无效

DR1=30H

04H

FF7F79

Ri->Dbus->DR2

FFH

无效

DR2=FFH

05H

FFFBA9

ALU->Dbus->A

2FH

无效

A=2FH

06H

4DFFFF

取指微指令RAM->Dbus->IR1

B7H

0CH

IR=B7H

JC12由两个微指令周期组成

2FH

D4FFFF

Dbus->IR2

12H

0DH

IR2=12H

30H

4DFFFF

[IR2]->Abus,Dbus->PC

0DH

12H

IR1=0DH

ADDA,R1由四个微指令周期组成

03H

FFFCF9

A->Dbus->DR1

2FH

无效

DR1=2FH

04H

FF7F79

R1->Dbus->DR2

FFH

无效

DR2=FFH

05H

FFFBA9

ALU->Dbus->A

2EH

无效

A=2EH

06H

4DFFFF

取指微指令RAM->Dbus->IR1

8FH

13H

IR1=8FH

STA40由三个微指令周期组成

23H

D5FFFF

Dbus->IR2

40H

14H

IR2=40H

24H

BBFDFF

[IR2]->Abus,A->Dbus->RAM

2EH

40H

RAM(20)=2EH

25H

4DFFFF

取指微指令RAM->Dbus->IR1

FFH

15H

IR1=FFH

HALT由一个微指令周期组成

3FH

FFDFFF

停机

无效

无效

停止状态

微单步结构窗口截图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1