当前位置:首页 > 微指令设计
(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
共分享92篇相关文档