计算机微指令对应的机器码Word文档格式.docx

上传人:b****5 文档编号:19962854 上传时间:2023-01-12 格式:DOCX 页数:26 大小:36.95KB
下载 相关 举报
计算机微指令对应的机器码Word文档格式.docx_第1页
第1页 / 共26页
计算机微指令对应的机器码Word文档格式.docx_第2页
第2页 / 共26页
计算机微指令对应的机器码Word文档格式.docx_第3页
第3页 / 共26页
计算机微指令对应的机器码Word文档格式.docx_第4页
第4页 / 共26页
计算机微指令对应的机器码Word文档格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

计算机微指令对应的机器码Word文档格式.docx

《计算机微指令对应的机器码Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机微指令对应的机器码Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。

计算机微指令对应的机器码Word文档格式.docx

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

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

PC→AR,P

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

当前位置:首页 > 工作范文

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

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