加减法指令的实现Word文档下载推荐.docx
- 文档编号:19554261
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:15
- 大小:105.39KB
加减法指令的实现Word文档下载推荐.docx
《加减法指令的实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《加减法指令的实现Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
MOVRI,A
(4)程序跳转指令
程序跳转指令可分为无条件跳转指令和有条件跳转指令两大类.它可以根据寄存器的内容是否为零来标志(ZD),有进位标志(CY),也可以根据实际情况自行设置。
无条件跳转指令 JMPaddr
ZD=0时跳转JZaddr
CY=0时跳转JCaddr
自定义的跳转语句JNaddr
(5)存储器操作类指令
存储器读/写指令,用来把内在单元写入寄存器中或把寄存器中的内容写入存储器。
LDDaddr(addrA)
STAaddr(A)addr)
4.2操作数寻址方式和编码
操作数寻址方式就是形成操作数有效地址的方法.寻址过程不是用X和D的不同组合形成操作数有效地址的过程.其图示如下:
OP
X
D
(1)立即数寻址
操作数直接给出在指令字中,即指令字中直接给出的不是操作数地址,而是操作数本身。
主要用法:
把一个确定的数据传送到一个通用寄存器中。
单字指令:
双字指令:
(2)直接寻址
在指令的操作码地址字段直接给出操作数在存储器中的地址
(3)寄存器寻址
寄存器中存放操作数,指令中给出寄存器编号(名字、地址),寄存器寻址在指令中占用位数少,有利于缩短指令字长度,取数、保存结果迅速方便,是最基本、最简单的寻址方式。
(4)寄存器间接寻址
寄存器中存放操作数的地址,根据该地址去读写存储器,形式地址为寄存器编号(名字)
5微程序及其实现的方法
在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至少可以有24个微操作控制信号,可由微代码直接实现。
由于本实验中,模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式.在模型机中,用指令操作码的高压4位作为核心扩展成8位的微程序入口地址MD0-MD7,这种方法称为”按操作码散转”(如下图所示)。
微程序地址形成
MD7
MD6
MD5
MD4
MD3
MD2
MD1
MD0
I7
I6
I5
I4
1
按操作码散转
指令操作码
微程序首地址
MD7,MD6
MD1,MD0
MD7-MD0
003H
007H
00BH
00FH
013H
017H
01BH
01FH
023H
027H
02BH
02FH
033H
037H
03BH
03FH
每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。
微指令的运行顺序为下地址确定法,每条微指令执行过后微地址自动加1,指向下一条微地址。
00
取微指令
01
02
03
减法指令微程序
(1)
04
减法指令微程序
(2)
05
06
07
08
09
减法指令微程序(3)
0A
0B
0C
0D
0E
……
取指微指令
MOV指令微程序
(1)
MOV指令微程序
(2)
MOV指令微程序(3)
…
6模型机当中时序的设计安排。
因为模型机已经确定了指令系统,微指令采用编码纯控制场的格式,微程序入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。
在此次实验中,由监控单元产生一个PLS-O的信号来控制时序产生。
PLS-O信号经过时序单元的处理产生了4个脉冲信号(如下图所示:
)。
4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。
PLS1:
微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。
PLS2:
PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。
PLS3:
把24位微指令打入3片微指令锁存器。
PLS4:
把当前总线上的数据打入微指令选通的寄存器中。
SIGN
PLS1
PLS2
PLS3
PLS4
7设计指令执行流程。
模拟机的指令执行流程为:
在模型机处于停机状态时,模型机的微地址寄存器被清零,微地址锁存器输出无效(为高)。
在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零。
脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器(74LS74)中,把模型机设置为运行状态,使微程序锁存器输出有效。
PLS3把微程序锁存器00H单元(00H单元存放着取指微指令)中的内容打入微指令锁存器中,并且输出取指微指令。
PLS4把从程序存储器中读出的数据打入指令寄存器中。
在模型机处于运行状态时,脉冲PLS1将微地址寄存器(74LS161)加1,脉冲PLS2将PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。
PLS4把当前总线上的数据打入当前微指令所选通的寄存器。
举例说明:
对于单字节指令ADDA,Ri,需执行下列微操作:
(PC)+1→PC;
PC加1,为下条指令字节准备
(A)→DR1;
累加器A内容送ALU
(R0)→DR2;
寄存器Ri内容送ALU
(A)+(Ri)→IDB→A;
使ALU执行加法,结果经IDB最后送如累加器A
Cn+4→CY;
据加法结果置进位标志CY;
(PC)→IAB→OAB;
PC积存器内容做访问内存地址
(PAM)→0DB→IDB→IR1;
从内存该地址单元读出指令字节送指令寄存器IR1
在源程序中指令ADDA,R0的执行过程中,时序图如下:
A→锁存器DR1
寄存器R0→锁存器DR2
ALU→A
取指微指令RAM→BUS→IR1
8源程序,程序的指令代码及微程序
8.1源程序
MOVA,#55RAM→A
MOVR0,#66RAM→R0
ADDA,R0(A)+(RO)→A
MOVR1,#33RAM→R1
SUBA,R1A-(R1)→A
STA10A→RAM
HALT停机
8.2微指令序列
地址
指令序列
微地址
微指令序列
说明
MOVA,#55
00000
4DFFFF
取指指令
0017
DDFBFF
Dbus->
A
MOVR0,#66
0018
ADDA,R0
001C
0003
FFFCF9
A→Dbus→DR1
0004
FF7F79
Ri→Dbus→DR2
0005
FFFBA9
ALU→Dbus→A
MOVR1#33
0006
ADFFFF
001B
DDBFFF
Dbus→Ri
SUBA,R1
0007
FFFCD6
0008
FF7F56
0009
FFFB86
STA10
000A
0023
D5FFFF
Dbus→IR2
0024
BBFDFF
[IR2]→bus,A→Dbus→RAM
HALT
0025
003F
FFDFFF
停机
9HKCPT的联机方式与脱机方式的实现过程
9.1HKCPT的联机方式
首先启动HKCPT软件,打开主窗口.在代码窗口输入汇编源程序,然后单步运行,微单步运行过程如下表格所示:
数据流程
数据总线
地址总线
操作寄存器
00H
取指令RAM->
BUS->
IR1
5FH
IR1=5FH
MOVA,#55
17H
55H
01H
A=55H
18H
取指微指令RAM->
6CH
02H
IR1=6CH
1BH
66H
03H
寄存器R0=66H
1CH
0CH
04H
IR1=0CH
无效
DR1=55H
DR2=66H
05H
BBH
A=BBH
06H
6DH
IR1=6DH
MOVR1,#33
33H
寄存器R1=33H
1DH
07H
IR1=1DH
DR1=1DH
08H
DR2=33H
09H
88H
A=88H
0AH
8FH
IR1=8FH
23H
10H
IR2=10H
24H
RAM(10)=88H
25H
FFH
IR1=FFH
3FH
置停止状态
9.2脱机运行
按下列表格内容将数据输入模拟机
内在地址
指令助记符
指令码或立即数
立即数A
立即数66H寄存器R0
04H
OCH
A内容+R0内容寄存器A
立即数33H寄存器R0
A内容R1内容A
将A内容写入RAM地址10H
对照屏幕菜单按step键单步运行。
按RUN键进行全程运行。
注意观察脱机单步运行时运行结果是否与联机时单步运行结果一致。
10个人总结
通过本次课程设计,巩固了“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”等相关课程学习内容。
理解了“计算机组成原理”课程所讲解的原理,加深对计算机各模块协同工作的认识
课程设计是一个相当好的锻炼动手能力的过程,在实践活动中,将所学知识综合运用培养我们独立工作和创新思维的能力,取得设计与调试的实践经验。
这次设计我最大的体会就是,无论什么事情都是平时一点一滴积累的过程,学习更加如此。
正因为我平时对试验态度一般,学习不够严谨,对很多问题一知半解,认为只要过了就行了。
使得这次进行课程设计的时候感觉有点难度有时候不得不请教同学和查阅相关资料,通过努力,最后还是完成了课程设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 加减法 指令 实现