微指令设计 联系客服

发布时间 : 星期一 文章微指令设计更新完毕开始阅读05b9fb41db38376baf1ffc4ffe4733687f21fc37

(SR=02)=([ADDR]=02)时 [ADDR]=0004

(4)设计一条条件转移指令。将SR与内存单元DATA的值进行比较, 1)如果SRDR, 2)如果SR≥DATA,则ADDR->PC

指令格式: 设计分析:

一开始要将PC即DATA的地址送到AR,并PC+1->PC,因为两种情况下PC都至少要指向第三行ADDR处。 从存储器中取出DATA的值,把SR和DATA的值相减,让各个标志位接收运算结果,并根据标志位S的值判断条件转移,同时要再将PC 即ADDR的地址送到AR中并PC+1->PC 1)当S=1时,SRDR 2)否则,SR≥DATA,顺序执行ADDR->PC 微程序

100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402 101H: mem->Q: 0000 0e00 00f0 0000 103H: SR-Q:改变标志位: 0000 0e01 9200 0088 104H:S=1(即SR<[ADDR])时,

条件转移到105,PC->AR,PC+1->PC: 0041 43B0 A035 5402 104H:MEM->PC,CC#=0: 0029 0300 30F0 5000a8 105H:SR+Q->DR,CC#=0: 0029 0311 B000 0088 (2) 加载到微控存程序段

微码存放在900H(或某内存单元)开始的内存单元中 >A800

0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,6 ;共 6条微指令

0804:MOV R3,100 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808:

>G800 ;加载微指令到控制存储器

(3) 运行程序段 >A820

MOV R1,01 ;R1是指令中的SR,用它和DATA比较 NOP NOP NOP RET

>A82A

DATA ADDR

D4 DR SR

MOV R8,10F0 ;大于等于时,将会跳到82A执行这条赋值指令 RET >E822

输入以下内容:D421 0088 082A

(4) 运行结果

>G820 ;运行程序 结果:

1.SR(0001)E821 0001:0088

SR(0088)=DATA(0088)时 R8=10F0 >E821 0088:0099

Sr(0099)>DATA(0088)时 R8=10F0

(5)把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2的内容相加,结果存到ADDR1单元中。

一. 实验器材

TEC-2实验计算机、电脑各一台

二. 实验分析与设计 1.

指令格式

D4XX

指令格式: ADDR1 ADDR2 2. 3.

设计分析

1)PC加1后不送入PC,而是直接存入AR中,这样即可以通过AR逐步取出ADDR2中的内容到Q中暂时存放,而PC的值并不发生改变;

2)将PC送到AR,这次PC指向的是ADDR1的地址,即向AR中送入ADDR1的地址,然后PC自加1送入PC中,然后逐步取出ADDR1指向的内存中的数据;

3)再将PC加1,并且不将PC送到AR中,以免覆盖之前AR中ADDR1的地址,此操作用于跳出该

指令功能

[ADDR1] + [ADDR2] → [ADDR1]

功能:

指令;

4)将2)中取出数据Q中的相加后送到Q;

5)将Q中的数据送到AR指向的内存中,即ADDR1; 4.

微程序

0000 0E00 90B5 5402

0000 0E00 10F0 0002 0000 0E00 00F0 0000

5402

0000 0E00 10F0 0002 0000 0E01 00E0 0000

100:PC+1→AR: 101:MEM→AR: 102:MEM→Q:

103:PC→AR,PC+1→PC: 104:MEM→AR: 106:MEM+Q→Q: 5.

加载到微控存程序段

0000 0E00 A0B5

105:PC+1→PC: 0000 0E00 A0B5 5400 107:Q→MEM,CC#=0:

0029 0300 1020 0010

说明:微码存放在900H(或某内存单元)开始的内存单元中 >A800↙

0800:MOV R1,900 0804:MOV R3,100 0806:LDMC 0807:RET 0808: 6.

运行程序段 >A820↙

0820:MOV R0,0011 0822:MOV [0890],R0 0824:MOV [0891],R0 0826:NOP 0827:NOP 0828:NOP 0829:RET >E826↙

然后输入以下内容: D400 0890 0891 7.

运行结果 >G820↙

用D命令查看运算结果 >D890↙ 则屏幕显示

0890:0022 0011? (6) 设计一条半字交换指令

;微码在内存中的首地址 ;微码在微控存中的首地址 ;加载微码指令

0802:MOV R2,8 ;微指令条数

1. 2. 3.

指令格式

D8 DR 0

指令格式:

指令功能

DR(I15-I8)与DR(I7-I0)的内容互换

设计分析

1)将DR的内容送到Q寄存器中,并启用4号命令,因为预备循环8次,所以下 地址字段要写7;

2)用8号命令重复循环,让Q和DR中的数据联合左移8次,Q中的高8位作为 填充移入到DR的第八位,就相当于完成了DR中数据高低位的交换; 3)循环结束后,顺序执行. 4.

微程序

0001

C400 8030 0008

0300 9030 0008

110:DR→Q,4#: 112:CC#: 5.

加载到微控存程序段

说明:微码存放在900H(或某内存单元)开始的内存单元中 >A800↙

0800:MOV R1,900 0804:MOV R3,110 0806:LDMC 0807:RET 0808: 6.

运行程序段 >A820↙

0820:MOV R0,80F0 0822:NOP 0824:N0P 0825:NOP 0827:NOP 0828:RET >E822↙

然后输入以下内容: D800 7.

运行结果 >G820↙

用D命令查看运算结果 >R↙ 则屏幕显示

;微码在内存中的首地址 ;微码在微控存中的首地址 ;加载微码指令

0802:MOV R2,3 ;微指令条数

111:R0Q→R0Q(联合左移),8#:0000 0806 E030 0208

0029