微指令设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的值写

相关文档
最新文档