微指令设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 设计一条指令,比较SR内容与[ADDR].
若SR<[ADDR],则SR+[ADDR]->[ADDR]; 否则SR-[ADDR]->[ADDR].
指令格式:D4 0 SR
ADDR
设计分析:
100:把PC的值(即ADDR的地址)送到AR中,然后PC+1
101:用MEM->AR将ADDR从内存中取出并送到AR中
102:利用SR-MEM->Q计算SR与[ADDR]的差,并让各标志位接受ALU的运算结果,103:若S=1(即SR<[ADDR]),条件转移到105,否则顺序执行104
104:将Q的值(即SR-[ADDR])送到[ADDR]中
105:AR<[ADDR]时转移到此处,计算SR+[ADDR]并送到Q寄存器中
106:将Q寄存器的值送到[ADDR]中
微程序:
100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402
101H: MEM->AR: 0000 0E00 10F0 0002
102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080
103H: S=1(即AR<[ADDR])时,条件转移到105: 0041 43B0 9080 0000
104H: Q->MEM,CC#=0: 0029 0300 1020 0010
105H: SR+MEM->Q: 0000 0E00 00D0 0080
106H: Q->MEM,CC#=0: 0029 0300 1020 0010
A800
MOV R1,900
MOV R2,7
MOV R3,100
LDMC
RET
G800
A820
MOV R7,0001
MOV R1,0002
MOV [082A],R1
NOP
NOP
RET
E826
D407 082A
G820
U820
运行结果如下:
0820:2C70 0001 MOV R7, 0001
0822:2C10 0002 MOV R1, 0002
0824:3401 082A MOV [082A],R1
0826:D407 DW D407
0827:082A ADC R2, R10
0828:AC00 RET
0829:0000 NOP
082A:0003 NOP
……结果分析:由于运行前SR=R7=0001<[ADDR]=[082A]=0002,故运行后[ADDR]=0003=SR+[ADDR],结果正确.
更换数据测试:
>E821
0821 0001:0002
>G820
>U820
运行结果如下:
0820:2C70 0002 MOV R7, 0002
0822:2C10 0002 MOV R1, 0002
0824:3401 082A MOV [082A],R1
0826:D407 DW D407
0827:082A ADC R2, R10
0828:AC00 RET
0829:0000 NOP
082A:0000 NOP
……结果分析:由于运行前SR=R7=0002=[ADDR]=[082A]=0002,故运行后[ADDR]=0000=SR-[ADDR],结果正确.
(2) 设计一条指令,比较SR内容与[ADDR].
若SR<[ADDR],则IP+OFFSET->PC;否则SR+[ADDR]->DR.
指令格式:D4 DR SR
ADDR
OFFSET
设计分析:
100:把PC的值(即ADDR的地址)送到AR中
101:用MEM->AR将ADDR的值从内存中取出并送到AR中
102:利用MEM->Q将[ADDR]的值从内存中取出然后送到Q寄存器中
103:SR-Q,并让个标志位接收运算结果,以便根据标志位进行条件转移
104:降OFFSET的地址送到AR中并且PC+1,若S=1(即SR<[ADDR]),条件转移到106,否则顺序执行105
105:SR>=[ADDR]时,SR+Q->DR,结束
106:AR<[ADDR]时转移到此处,计算IP+OFFSET并送到PC中
微程序:
100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402
101H: MEM->AR: 0000 0E00 10F0 0002
102H: MEM->Q: 0000 0e00 00f0 0000
103H: SR-Q:改变标志位:0000 0e01 9200 0088
104H:S=1(即SR<[ADDR])时,
条件转移到106,PC->AR,PC+1->PC: 0041 83B0 A035 5402
105H: SR+Q->DR,CC#=0: 0029 0311 B000 0088
106H: IP+MEM->C,CC#=0: 0029 0310 30D6 5000
装载微码:
A800
MOV R1,900
MOV R2,7
MOV R3,100
LDMC
RET
G800
A820
mov r1,0002
mov [0890],r1
nop
nop
nop
ret
mov r0,1111
Ret
E824
D487 0890 0004
1)RR7 :0001
SR(0001) R0=1111 2) RR7:0004 SR(0004)>ADDR(0002) R8=0006 3) RR7:0002 SR(0002)=ADDR(0002) R8=0004 (3) 设计一条指令。将SR与绝对地址ADDR单元内容比较,如果SR<[ADDR],则[ADDR]-SR->[ADDR],否则,[ADDR]+SR->[ADDR]。 指令格式:D4 0 SR ADDR 设计分析: 先取出[ADDR]中的值,然后用SR-[ADDR]->Q来计算二者的差值,并利用运算所得的标志位判断比较二者的大小以进行条件转移:当S=1时,说明SR<[ADDR],程序跳转执行[ADDR]-SR->Q,然后将Q的值写