计算机微指令对应的机器码Word文档下载推荐.docx
- 文档编号:19038015
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:26
- 大小:29.78KB
计算机微指令对应的机器码Word文档下载推荐.docx
《计算机微指令对应的机器码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机微指令对应的机器码Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
movr1,4
movr2,3
mov[0890],r2
nop
e828↙
d41008800890
a880↙
g820↙
(12)设计一条条件转移指令。
将SR与内存单元DATA的值进行比较,如果SR<
DATA,则DATA+SR->
DR,否则ADDR->
PC
指令格式:
D4
DR
SR
DATA
ADDR
100:
PC->
AR,PC+1->
PC(data)
00000E00A0B55402
101:
MEM->
Q(data=88)
00000E0000F00002
102:
SR-Q,标志
00000E0192800088
103:
S=1时跳到107,否则顺序104
0041D3B080000000
104:
AR(addr)
00000E00A0B55002
105:
PC(addr=082A)
00000E1030F55000
106:
CC#=0退出
0029030090100000
107:
SR+Q->
DR,标志
00000E10B0800088
108:
PC+1->
PC,CC#=0退出
00290300B0B55400
A800↙
0800:
MOVR1,900
;
微码在内存中的首地址
0802:
MOVR2,9
共9条微指令
0804:
MOVR3,100
微码在微控存中的首地址
0806:
LDMC
加载微码指令
0807:
RET
0808:
G800↙
加载微指令到控制存储器
A820↙
MOVR1,99
R1是指令中的SR,用它和DATA比较
NOP
A82A↙
MOVR8,D
大于等于时,将会跳到82A执行这条赋值指令
E822↙
输入以下内容:
D4218882A
运行结果
G820↙
;
运行程序
结果:
1.SR<
DATA时
SR=99
DATA=100
DR=199
2.SR≥DATA时
DATA=99
R8=000D
(13)设计一条指令,比较SR内容与[ADDR].如果SR<
[ADDR],则SR+[ADDR]->
[ADDR];
否则SR-[ADDR]->
[ADDR].
100H:
PC->
AR,PC+1->
PC:
00000E00A0B55402
101H:
MEM->
AR:
00000E0010F00002
102H:
SR-MEM->
Q:
00000E0101D00080
103H:
条件转移:
004143B090800000
104H:
Q->
MEM,CC#=0:
0029030010200010(SR>
=MEM)
105H:
SR+MEM->
00000E0000D00080(SR<
MEM)
106H:
0029030010200010
A800
MOVR1,900
MOVR2,7
MOVR3,100
LDMC
G800↙
MOVR7,0001
MOVR1,0002
MOV[082A],R1
E826↙
D407082A
G820↙
可以节省一条语句,在执行到105H的时候,让他无条件跳转到104H,就可以了!
则:
Q,条件转移:
00410E0000D00080(SR<
舍弃106H
(14)设计一条指令,比较SR内容与[ADDR].如果SR<
[ADDR],则IP+OFFSET->
PC;
否则SR+[ADDR]->
DR.错误
00000E0090B05002
00000E0010F00002
SR-MEM:
00000E0111D00080
004183B090800000
DR,CC#=0:
00294E1030D00088
PC+1->
00000E0090B05402
IP+MEM->
0029030020D65000
(15)DR>
[ADDR]则DR-[ADDR]->
DR;
DR<
=[ADDR]则DR+[ADDR]->
DR
00000e10a0355402
00000e1080300008
00000e1010f0000a
00000e1111e00000
0041c37090800000
0041c35090800000
0029031031e00008
0029031030e00008
movr2,8
movr0,5
e822↙
d4000890
e890↙
0003
设计一条减法指令
把内存单元数据DATA与用绝地址表示的内存单元ADDR的内容相减,结果存到DR寄存器中。
1.指令格式
指令格式:
D4
X
ADDR
DATA
2.指令功能
功能:
DATA-[ADDR]→DR
3.设计分析
根据指令的功能和指令格式,先读取地址ADDR单元内容暂时放置于Q寄存器中,然后再读取内存单元数据DATA内容,同时与Q寄存器内容相减,结果也暂存放在Q寄存器中,最后把Q寄存器的运算结果传到DR中。
4.微程序
100:
PC→AR,PC+1→PC:
00000E00A0B55402
101:
MEM→AR:
00000E0010F00002
102:
MEM→Q:
00000E0000F00000
103:
104:
MEM-Q→DR,CC#=0:
0029030132E00008
5.加载微码到微控存程序段
说明:
微码存放在900H(或某内存单元)开始的内存单元中
>
A0800↙
0800:
MOVR1,900;
0802:
MOVR2,5;
微指令条数
0804:
MOVR3,100;
0806:
LDMC;
加载微码指令,将微码指令加载到控存
0807:
0808:
>
G0800↙
6.运行程序段
A0820↙
0820:
MOVR0,0004
0822:
MOV[0890],R0
0824:
NOP
0825:
0826:
0827:
E0824↙
然后输入以下内容:
D41008900013
7.运行结果
G0820↙
RR1↙
R1=0009
设计一条同值补码数符号扩展指令
设计一条指令,完成对存放在低位的8位有符号补码数进行符号扩展,即将其变为16位的同值得补码数,结果仍保存在原寄存器中。
8.指令格式
9.指令功能
功能:
对存放在低位的8位有符号补码数进行符号扩展,即将其变为16位的同值得补码数,结果仍保存在原寄存器中。
10.设计分析
正数的补码中符号位为0,各数位为其本身,负数的补码符号位为1,各数位为其的反,末尾再加一。
那么对于正数的扩展,直接在高8位添0即可。
对于负数的扩展,先假设把它还原成原码,符号位移动到最高位,然后变为反码,则高8位全为1,低8位与未扩展之前相同。
综上,可以把待扩展的补码数通过左移9位得到其符号位,保存在C中。
然后采用8次带符号位的右移操作,得到结果。
11.微程序
8→RC:
0002040080800000
2DR→DR:
00000806F0B00008
DR/2→DR:
00000800D0B00108
CC#=0:
0029030080000000
12.加载微码到微控存程序段
13.运行程序段
MOVR0,0029
MOVR1,00A9
D400
E0825↙
D410
14.运行结果
RR0↙
R0=0029
R1=FFA9
设计一条条件控制转移指令
设计一条指令,实现地功能是:
(说明:
其中有一种情况请用SCC=7,IR10~IR8=0~7的条件实现)
当DR=SR时,则IP+OFFSET→PC;
当DR<
SR时,则ADDR→PC;
否则执行下条汇编指令。
(注:
OFFSET为位移量;
ADDR为某内存单元地址)
D9
SR
OFFSET
当DR<
否则执行下条汇编指令。
指令通过比较DR和SR的大小实现语句的条件转移。
先对DR和SR作差得到运算结果标志Z和符号标志S。
首先根据Z进行转移,如果Z=1,那么说明DR=SR,跳转到CC#=0;
否则顺序执行根据S进行转移,如果S=1,那么说明DR<
SR,跳转到CC#=0;
否则顺序执行,即DR>
SR。
根据Z转移利用的是SCC=7,IR10~IR8=001的条件实现的,故操作码使用D9;
而根据S转移是利用SCC=5的条件实现的。
4.微程序
110:
DR-SR,得到Z和S:
00000E0191100088
111:
PC→AR,PC→Q:
00000E0080305002
112:
IP+MEM→PC,Z=1跳转116:
004583F030D65000
113:
Q+1→Q,Q→AR:
00000E00B0200402
114:
MEM→PC,S=1跳转116:
004583B030F05000
115:
Q+1→PC:
00000E10B0205400
116:
0029030080000000
或:
00000E0191100088
PC→AR,PC+1→PC,Z=1跳转114:
004503E0A0B55402
PC→AR,PC+1→PC,S=1跳转115:
004543B0A0B55402
0029030080000000
MEM+IP→PC,CC#=0:
0029030030D65000
MEM→PC,CC#=0:
0029031030F05000
MOVR2,7;
MOVR3,110;
MOVR8,0001;
运行三次,R8分别为0,1,2
MOVR9,0001
MOVR1,99;
若DR>
SR,输出99
0829:
082A:
MOVR1,77;
若DR=SR,输出77
082C:
082D:
MOVR1,88;
若DR<
SR,输出88
082F:
D9890006082D
R1=77(当R8=0时,R1=88,当R8=2时,R1=99)
设计一条半字交换指令
设计一条指令,其功能是把一个通用寄存器中的内容进行半字交换,即将其高低位字节的内容对换。
15.指令格式
D8
16.指令功能
RAMH,RAML→RAML,RAMH
17.设计分析
将DR的内容送去Q。
利用DR和Q组成联合移位,联合右移8位后Q将为所求数,最后将Q送到DR,
18.微程序
DR→Q,7→RC;
0001C40080300008
DRQ联合右移→DRQ;
00000807C0300208
Q→DR,CC#=0:
00290300B0200018
19.加载到微控存程序段
MOVR2,3;
20.运行程序段
MOVR9,1289
D890
21.运行结果
RR9↙
R9=8912
设计一条条件控制处理与转移指令
设计一条指令,将SR的内容与内存单元数据DATA相比较,如果SR<
DATA,则执行DATA+SR→DR,否则ADDR→PC。
D8
当SR<
DATA时,则DATA+SR→DR
当SR>
=DATA时,则ADDR→PC
本次实验要求完成的是一条条件控制指令。
首先,将DATA的地址放到AR,读出DATA放到寄存器Q,利用SR-Q得出标志位SF,再根据标志位SF判断跳转与否,如果SF=1,则跳到115,否则顺序执行114,之后再根据两个不同条件需要完成的操作实现。
110:
PC→AR,PC+1→PC;
00000E00A0B55402
111:
MEM→Q;
00000E0000F00000
112:
SR-Q;
00000E0192000080
113:
SF=1跳转PC→AR,PC+1→PC0045004143B0A0355402
114:
MEM→PCCC#=0;
0029030030F05000
115:
SR+Q→DRCC#=0;
002903010300B0000088
MOVR2,6;
加载微码指令,将微码写入控存
G800↙;
加载微指令到控存
MOVR7,4444
MOVR8,4444
0825:
NOP
0826:
0827:
MOVR0,4444
0829:
RET
082A:
MOVR0,5555
082C:
输入以下内容:
D8784445082A
DATA>
SR,DATA=4445,SR=4444,DR=8889
DATA=SR,DATA=4444,SR=4444,R0=5555
DATA<
SR,DATA=4443,SR=4444,R0=5555
设计一条加法指令
把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2的内容相加,结果存到ADDR1单元中。
D4XX
ADDR1
ADDR2
[ADDR1]+[ADDR2]→[ADDR1]
1.设计分析
思路为先把PC指向ADDR2,然后先读取ADDR2,再PC减1,返回去读ADDR1的值,随后进行加法和赋值操作,最后把PC加3,使得PC返回,为执行下一条指令做好准备。
于是有以下操作步骤:
根据指令的功能和指令格式,先执行PC+1→PC,使得指向ADDR2。
读取地址ADDR2单元内容暂时放置于Q寄存器中,然后PC-1→PC,再读取地址ADDR1单元内容,同时与Q寄存器内容相加,结果也暂存放在Q寄存器中,此时,由于地址寄存器AR中存放的正好是地址ADDR1,因此只要将Q寄存器内容写入存储器就可以完成指令功能。
此后,微程序中必须再执行3次PC+1→PC操作,才能确保PC的正确走向。
2.微程序
PC+1→PC:
00000E00A0B55400
P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 指令 对应 机器码