微指令设计t

(1) 设计一条指令,比较SR内容与[ADDR].

若SR[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

105:AR

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(即ARMEM,CC#=0: 0029 0300 1020 0010

105H: SR+MEM->Q: 0000 0E00 00D0 0080

106H: Q->MEM,CC#=0:

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 0029 0300 1020

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

更换数据测试:

>E821

0821 0001:0002

>G820

运行结果如下:

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].

若SRPC;否则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

105:SR>=[ADDR]时,SR+Q->DR,结束

106:AR

100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402

101H: MEM->AR: 0000 0E00 10F0 0002

102H:

00f0 0000

103H: SR-Q:改变标志位: 0000 0e01 9200 0088

104H:S=1(即SR

条件转移到106,PC->AR,PC+1->PC: 0041 83B0 A035 5402

105H: SR+Q->DR,CC#=0: 0029 0311 B000 MEM->Q: 0000 0e00

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

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]。 指令格式: D4 0 SR

ADDR

设计分析:

先取出[ADDR]中的值,然后用SR-[ADDR]->Q来计算二者的差值,并利用运算所得的标志位判断比较二者的大小以进行条件转移:当S=1时,说明SRQ,然后将Q的值写回[ADDR];否则,顺序执行[ADDR]+SR->Q,并将Q的值写回

[ADDR]中。

微程序:

100H: PC->AR, 0000 0E00 90B0 5002

101H: MEM->AR: 0000 0E00 10F0 0002

102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080

103H: S=1(即SRQ,转移到105: 0041 8310 00D0 0080

105H: MEM-SR->Q: 0000 0E00 02D0 0080

106H: Q->MEM,CC#=0: 0029 0300 1020 0010

加载微程序:

E900 输入以上微码

(2) 加载到微控存程序段

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

>A800

0800:MOV R1,900 ;微码在内存中的首地址

0802:MOV R2,7 ;共 9条微指令

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

0807:RET

0808:

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

(3) 运行程序段

>A820

MOV R1,01

比较

MOV R2,02

MOV [082A],R2

NOP

NOP

NOP

NOP

RET

>E826

输入以下内容:

(4) 运行结果

>G820 ;R1是指令中的SR,用它和DATAD401 082A ;运行程序

结果:

1.(SR=01)

[ADDR]=0001

2. >E821

0002

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

[ADDR]=0004

(4)设计一条条件转移指令。将SR与内存单元DATA的值进行比较,

1)如果SRDR,

2)如果SR≥DATA,则ADDR->PC

指令格式: D4 DR SR

DATA ADDR

设计分析:

一开始要将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

条件转移到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

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

>E822

输入以下内容:D421 0088 082A

(4) 运行结果

>G820 ;运行程序

结果:

1.SR(0001)

DR(R2)=0089

2.

>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的地址,此操作用于跳出该指令;

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

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

4. 微程序

100:PC+1→AR: 0000 0E00 90B5 5402 [ADDR1] + [ADDR2] → [ADDR1]

101:MEM→AR:

102:MEM→Q: 0000 0E00 10F0 0002 0000 0E00 00F0 0000

103:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402

104:MEM→AR: 0000 0E00 10F0 0002

105:PC+1→PC: 0000 0E00 A0B5 5400 106:MEM+Q→Q: 0000 0E01 00E0 0000

0029 0300 1020 0010 107:Q→MEM,CC#=0:

5. 加载到微控存程序段

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

0800:MOV R1,900

0802:MOV R2,8

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) 设计一条半字交换指令

1. 指令格式

指令格式: D8

2. 指令功能

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

DR 0

3. 设计分析

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

地址字段要写7;

2)用8号命令重复循环,让Q和DR中的数据联合左移8次,Q中的高8位作为

填充移入到DR的第八位,就相当于完成了DR中数据高低位的交换;

3)循环结束后,顺序执行.

4. 微程序

110:DR→Q,4#: 0001 C400 8030 0008

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

112:CC#:

5. 加载到微控存程序段

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

0800:MOV R1,900

0802:MOV R2,3

0804:MOV R3,110

0806:LDMC ;微码在内存中的首地址 0029 0300 9030 0008 ;微指令条数 ;微码在微控存中的首地址 ;加载微码指令

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

则屏幕显示

R0= F080

(7)设计一条指令,实现的功能是:

当DR=SR时,原PC(IP)+OFFSET→PC;

当DR

1. 指令格式

指令格式: D4

2. 设计分析

1) 100:另DR-SR并让各个标志位接受ALU的状态标志; 2)101:PC→AR,将OFFSET的地址送到AR中,然后根据标志位判断,如果零标志位等于1,说明DR=SR,利用下地址字段给出跳转的地址104;

3)102:若零标志位不为1,则由顺寻执行到此处。根据负标志位判断,若为1,则说明DR

4)103:若102和103中的条件判断都不成立,即DR>SR,则用PC+1→PC顺序执行下一条汇编指令;

5)104:由101跳转至此后,用IP+OFFSET(MEM)→PC将ADDR送到PC中完成转移;

6)105:由102跳转至此后,用ADDR(MEM)→PC完成转移。

3. 微程序

100:DR-SR;接受标志: 0000 0E01 9110 OFFSET ADDR DR SR

0088

101:PC->AR,DR=SR时跳到104: 0041

5002

102:PC->AR, PC+1->PC,DR

103:PC+1->PC,DR>SR时执行下条指令: 0029 0300 B030 5400

104:IP+OFFSET(MEM)->PC:

5000

105:ADDR(MEM)->PC:

5000

(2) 加载到微控存程序段

4. 加载到微控存程序段

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

0800:MOV R1,900

0802:MOV R2,6

0804:MOV R3,100

0806:LDMC

0807:RET ;微码在内存中的首地址 0029 0300 30F0 0029 0300 30D6 0370 9030 ;微指令条数 ;微码在微控存中的首地址 ;加载微码指令

0808:

5. 运行程序段

>A820

0820:MOV R7,7

0822:MOV R8,8

0824:MOV R0,0

0826:NOP

0827: NOP

0828:NOP

0829: NOP

082A:MOV R0,4444

082C: RET

082D: MOV R0,5555

082F: RET

0830: MOV RO,7777

0832: RET

>E826

然后输入以下内容:

D478 0007 0830

6. 运行结果

1)R7=7,R8=8

>G820

用R命令查看运算结果

R0=7777 (成功跳转至0830处)

2)>E821

输入 0008 (即R7=8,R8=8)

>G820

用R命令查看运算结果

R0=5555 (成功跳转至IP+OFFSET即082D处)

3)>E821

输入 0009 (即R7=9,R8=8)

>G820

用R命令查看运算结果

R0=4444 (成功执行下一条指令,即082A处)

(8)设计一条指令,以实现将SR内容与内存单元ADDR的内容相加,结果存到ADDR单元中。

1.指令功能

功能:[ADDR]+SR→[ADDR]

2.指令格式

指令格式: D4 0 SR

ADDR

3.设计分析

根据实验册Page45后的

4.微程序

100:PC→AR,PC+1→PC: 0000 0E 00 A0 B5 54 02

101:MEM→AR:

102:MEM→Q:

103:Q+SR→Q: 0000 0E 00 10 F0 00 02 0000 0E 00 00 F0 00 00 0000 0E 01 80 80 00 80

0029 03 00 10 20 00 10 104:Q→MEM,CC#=0:

5.加载到微控存程序段

(一)用”A”命令输入加载微码的程序

在命令行提示符状态下输入:

>A800

0800:MOV R1,900

0802:MOV R2,5

0804:MOV R3,100

0806:LDMC

0807:RET ;微码在内存中的首地址 ;微指令条数 ;微码在微控存中的首地址 ;加载微码指令

0808:

(二)用”G”命令运行加载微码的程序

在命令行提示符状态下输入:

>G800

微码便装入起始地址为100H的微控存中.

6.输入程序并运行新命令

(一)用”A”命令输入程序

在命令行提示符状态下输入:

>A820

0820:MOV R0,0011

0822:MOV R8,0001

0824:MOV [0890],R0

0826:NOP

0827:NOP

0828:RET

(二)用”E”命令输入新指令

在命令行提示符状态下输入:

>E826

0826: D400 0890 0891

7.用”G”命令运行程序

在命令行提示符状态下输入

>G820

然后用”D”命令察看运行结果

在命令行提示符状态下输入:

>D890

屏幕将显示:

0890 0012

0891单元为0012,即为正确的运算结果.

(9)设计一条符号扩展指令

1.指令功能

功能:

2.指令格式

指令格式: D8 DR 0

3.设计分析

根据指令的功能和指令格式:

(1)对寄存器保存的低位字节的8位有符号补码数进行逻辑左移操作,左移9位,空出的低位补0;

(2)对其进行算术右移操作,右移9位,空出的高位用最高位(符号位)填补,这样即可将其扩展为16位的同值补码数;

(3)结果仍保存在原寄存器中,完成指令功能;

4.微程序

100:R/C=8: 0002 0400 8030DR 符号扩展→ DR

0000

101:DR→DR逻辑左移9次: 0000 0806 F030 0208 102:R/C=8:

0000 0002 0400 8030

103:DR→DR算术右移9次,CC#=0: 0029 0F20 D030 0108

5.加载到微控存程序段

(一)用”A”命令输入加载微码的程序

在命令行提示符状态下输入:

>A800

0800:MOV R1,900 ;微码在内存中的首地址

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

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

0807:RET

0808:

(二)用”G”命令运行加载微码的程序

在命令行提示符状态下输入:

>G800

微码便装入起始地址为100H的微控存中.

6.输入程序并运行新命令

(一)用”A”命令输入程序

在命令行提示符状态下输入: >A820

0820:MOV R9,00FF 0822:NOP

0823:RET

(二)用”E”命令输入新指令 在命令行提示符状态下输入: >E822

然后输入以下内容: D890

7.察看运行结果 >G820

>R

R9=FFFF

免费提供

(1) 设计一条指令,比较SR内容与[ADDR].

若SR[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

105:AR

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(即ARMEM,CC#=0: 0029 0300 1020 0010

105H: SR+MEM->Q: 0000 0E00 00D0 0080

106H: Q->MEM,CC#=0:

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 0029 0300 1020

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

更换数据测试:

>E821

0821 0001:0002

>G820

运行结果如下:

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].

若SRPC;否则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

105:SR>=[ADDR]时,SR+Q->DR,结束

106:AR

100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402

101H: MEM->AR: 0000 0E00 10F0 0002

102H:

00f0 0000

103H: SR-Q:改变标志位: 0000 0e01 9200 0088

104H:S=1(即SR

条件转移到106,PC->AR,PC+1->PC: 0041 83B0 A035 5402

105H: SR+Q->DR,CC#=0: 0029 0311 B000 MEM->Q: 0000 0e00

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

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]。 指令格式: D4 0 SR

ADDR

设计分析:

先取出[ADDR]中的值,然后用SR-[ADDR]->Q来计算二者的差值,并利用运算所得的标志位判断比较二者的大小以进行条件转移:当S=1时,说明SRQ,然后将Q的值写回[ADDR];否则,顺序执行[ADDR]+SR->Q,并将Q的值写回

[ADDR]中。

微程序:

100H: PC->AR, 0000 0E00 90B0 5002

101H: MEM->AR: 0000 0E00 10F0 0002

102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080

103H: S=1(即SRQ,转移到105: 0041 8310 00D0 0080

105H: MEM-SR->Q: 0000 0E00 02D0 0080

106H: Q->MEM,CC#=0: 0029 0300 1020 0010

加载微程序:

E900 输入以上微码

(2) 加载到微控存程序段

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

>A800

0800:MOV R1,900 ;微码在内存中的首地址

0802:MOV R2,7 ;共 9条微指令

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

0807:RET

0808:

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

(3) 运行程序段

>A820

MOV R1,01

比较

MOV R2,02

MOV [082A],R2

NOP

NOP

NOP

NOP

RET

>E826

输入以下内容:

(4) 运行结果

>G820 ;R1是指令中的SR,用它和DATAD401 082A ;运行程序

结果:

1.(SR=01)

[ADDR]=0001

2. >E821

0002

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

[ADDR]=0004

(4)设计一条条件转移指令。将SR与内存单元DATA的值进行比较,

1)如果SRDR,

2)如果SR≥DATA,则ADDR->PC

指令格式: D4 DR SR

DATA ADDR

设计分析:

一开始要将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

条件转移到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

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

>E822

输入以下内容:D421 0088 082A

(4) 运行结果

>G820 ;运行程序

结果:

1.SR(0001)

DR(R2)=0089

2.

>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的地址,此操作用于跳出该指令;

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

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

4. 微程序

100:PC+1→AR: 0000 0E00 90B5 5402 [ADDR1] + [ADDR2] → [ADDR1]

101:MEM→AR:

102:MEM→Q: 0000 0E00 10F0 0002 0000 0E00 00F0 0000

103:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402

104:MEM→AR: 0000 0E00 10F0 0002

105:PC+1→PC: 0000 0E00 A0B5 5400 106:MEM+Q→Q: 0000 0E01 00E0 0000

0029 0300 1020 0010 107:Q→MEM,CC#=0:

5. 加载到微控存程序段

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

0800:MOV R1,900

0802:MOV R2,8

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) 设计一条半字交换指令

1. 指令格式

指令格式: D8

2. 指令功能

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

DR 0

3. 设计分析

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

地址字段要写7;

2)用8号命令重复循环,让Q和DR中的数据联合左移8次,Q中的高8位作为

填充移入到DR的第八位,就相当于完成了DR中数据高低位的交换;

3)循环结束后,顺序执行.

4. 微程序

110:DR→Q,4#: 0001 C400 8030 0008

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

112:CC#:

5. 加载到微控存程序段

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

0800:MOV R1,900

0802:MOV R2,3

0804:MOV R3,110

0806:LDMC ;微码在内存中的首地址 0029 0300 9030 0008 ;微指令条数 ;微码在微控存中的首地址 ;加载微码指令

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

则屏幕显示

R0= F080

(7)设计一条指令,实现的功能是:

当DR=SR时,原PC(IP)+OFFSET→PC;

当DR

1. 指令格式

指令格式: D4

2. 设计分析

1) 100:另DR-SR并让各个标志位接受ALU的状态标志; 2)101:PC→AR,将OFFSET的地址送到AR中,然后根据标志位判断,如果零标志位等于1,说明DR=SR,利用下地址字段给出跳转的地址104;

3)102:若零标志位不为1,则由顺寻执行到此处。根据负标志位判断,若为1,则说明DR

4)103:若102和103中的条件判断都不成立,即DR>SR,则用PC+1→PC顺序执行下一条汇编指令;

5)104:由101跳转至此后,用IP+OFFSET(MEM)→PC将ADDR送到PC中完成转移;

6)105:由102跳转至此后,用ADDR(MEM)→PC完成转移。

3. 微程序

100:DR-SR;接受标志: 0000 0E01 9110 OFFSET ADDR DR SR

0088

101:PC->AR,DR=SR时跳到104: 0041

5002

102:PC->AR, PC+1->PC,DR

103:PC+1->PC,DR>SR时执行下条指令: 0029 0300 B030 5400

104:IP+OFFSET(MEM)->PC:

5000

105:ADDR(MEM)->PC:

5000

(2) 加载到微控存程序段

4. 加载到微控存程序段

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

0800:MOV R1,900

0802:MOV R2,6

0804:MOV R3,100

0806:LDMC

0807:RET ;微码在内存中的首地址 0029 0300 30F0 0029 0300 30D6 0370 9030 ;微指令条数 ;微码在微控存中的首地址 ;加载微码指令

0808:

5. 运行程序段

>A820

0820:MOV R7,7

0822:MOV R8,8

0824:MOV R0,0

0826:NOP

0827: NOP

0828:NOP

0829: NOP

082A:MOV R0,4444

082C: RET

082D: MOV R0,5555

082F: RET

0830: MOV RO,7777

0832: RET

>E826

然后输入以下内容:

D478 0007 0830

6. 运行结果

1)R7=7,R8=8

>G820

用R命令查看运算结果

R0=7777 (成功跳转至0830处)

2)>E821

输入 0008 (即R7=8,R8=8)

>G820

用R命令查看运算结果

R0=5555 (成功跳转至IP+OFFSET即082D处)

3)>E821

输入 0009 (即R7=9,R8=8)

>G820

用R命令查看运算结果

R0=4444 (成功执行下一条指令,即082A处)

(8)设计一条指令,以实现将SR内容与内存单元ADDR的内容相加,结果存到ADDR单元中。

1.指令功能

功能:[ADDR]+SR→[ADDR]

2.指令格式

指令格式: D4 0 SR

ADDR

3.设计分析

根据实验册Page45后的

4.微程序

100:PC→AR,PC+1→PC: 0000 0E 00 A0 B5 54 02

101:MEM→AR:

102:MEM→Q:

103:Q+SR→Q: 0000 0E 00 10 F0 00 02 0000 0E 00 00 F0 00 00 0000 0E 01 80 80 00 80

0029 03 00 10 20 00 10 104:Q→MEM,CC#=0:

5.加载到微控存程序段

(一)用”A”命令输入加载微码的程序

在命令行提示符状态下输入:

>A800

0800:MOV R1,900

0802:MOV R2,5

0804:MOV R3,100

0806:LDMC

0807:RET ;微码在内存中的首地址 ;微指令条数 ;微码在微控存中的首地址 ;加载微码指令

0808:

(二)用”G”命令运行加载微码的程序

在命令行提示符状态下输入:

>G800

微码便装入起始地址为100H的微控存中.

6.输入程序并运行新命令

(一)用”A”命令输入程序

在命令行提示符状态下输入:

>A820

0820:MOV R0,0011

0822:MOV R8,0001

0824:MOV [0890],R0

0826:NOP

0827:NOP

0828:RET

(二)用”E”命令输入新指令

在命令行提示符状态下输入:

>E826

0826: D400 0890 0891

7.用”G”命令运行程序

在命令行提示符状态下输入

>G820

然后用”D”命令察看运行结果

在命令行提示符状态下输入:

>D890

屏幕将显示:

0890 0012

0891单元为0012,即为正确的运算结果.

(9)设计一条符号扩展指令

1.指令功能

功能:

2.指令格式

指令格式: D8 DR 0

3.设计分析

根据指令的功能和指令格式:

(1)对寄存器保存的低位字节的8位有符号补码数进行逻辑左移操作,左移9位,空出的低位补0;

(2)对其进行算术右移操作,右移9位,空出的高位用最高位(符号位)填补,这样即可将其扩展为16位的同值补码数;

(3)结果仍保存在原寄存器中,完成指令功能;

4.微程序

100:R/C=8: 0002 0400 8030DR 符号扩展→ DR

0000

101:DR→DR逻辑左移9次: 0000 0806 F030 0208 102:R/C=8:

0000 0002 0400 8030

103:DR→DR算术右移9次,CC#=0: 0029 0F20 D030 0108

5.加载到微控存程序段

(一)用”A”命令输入加载微码的程序

在命令行提示符状态下输入:

>A800

0800:MOV R1,900 ;微码在内存中的首地址

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

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

0807:RET

0808:

(二)用”G”命令运行加载微码的程序

在命令行提示符状态下输入:

>G800

微码便装入起始地址为100H的微控存中.

6.输入程序并运行新命令

(一)用”A”命令输入程序

在命令行提示符状态下输入: >A820

0820:MOV R9,00FF 0822:NOP

0823:RET

(二)用”E”命令输入新指令 在命令行提示符状态下输入: >E822

然后输入以下内容: D890

7.察看运行结果 >G820

>R

R9=FFFF

免费提供


相关内容

  • 组成原理课程设计-复杂模型机
  • 课程设计报告 课程名称:计算机组成原理 设计题目:复杂模型机 专 业:xxxxxx 姓 名:xx 学 号:xxxxx 同 组 人:xxxxxx 指导教师:xx 二零一六年一月 目 录 1.课程设计任务书 ................................................ ...

  • 一种嵌入式MPU指令译码器设计
  • 2001年2月第19卷第1期西北工业大学学报 JournalofNorthwesternPolytechnicalUniversityFeb.2001Vol.19No.1 一种嵌入式MPU指令译码器设计 刘诗斌,高德远,樊晓桠,李树国 (西北工业大学航空微电子中心,陕西西安 710072) α 摘 ...

  • 工程指令(成本类)管理办法
  • 工程指令(成本类) 管理办法 星合约-管字-201202150-001 为了加强工程指令管理,规范工作流程,提高工程指令管控水平,对工程指令申报资料进行审查.审批,确保工程指令的合理性和经济性,有效地控制项目全过程成本,真正体现"事前.事中.事后"全程管理,确保工程质量.进度及保 ...

  • 工程设计变更.工程指令和签证管理规定(修订20160601)
  • 陕西深汇置业有限公司 ·工程设计变更.工程指令和签证管理规定(修订20160601)· 修订说明 本规定修订条文自二〇一六年六月一日起实施.经此次修改的原条文同时废止. 陕西深汇置业有限公司 二〇一六年六月一日 第一章 总则 第一条 为规范设计变更.工程指令以及工程签证管理工作,有效控制工程造价,做 ...

  • 复杂模型机的IO实验
  • 组成原理与系统结构课程设计报告 课 题: 姓 名 学 号 专业班级 指导教师 设计时间 目录........................................... 错误!未定义书签. 一.课程设计目的和意义....................................... ...

  • 微程序控制器与组合逻辑控制器的区别
  • 微程序控制器的基本原理详细图解 1.控制存储器: 控制存储器是微程序控制器中的核心部件,通常由只读存储器ROM 器件实现,简称控存. 2.微指令: 控制存储器中的一个存储单元(字)表示了某一条指令的某一操作步骤的控制信号,以及下一步骤的有关信息,称该字为微指令. 作用:准确提供了指令执行中的每一步要 ...

  • 指令系统的变化及发展
  • 计算机指令系统的变化及发展 [摘 要] 指令系统是计算机体系结构最基本的特征.早期, 人们采用微程序设计技术让指令系统变得日趋复杂, 后来逐渐认识到这种复杂指令系统计算机(C ISC) 并不能很好的提高系统性能, 于是设计师们提出了精简指令系统计算机(R ISC) 体系结构, 并在一个芯片上实现了C ...

  • 简单模型计算机的设计
  • 前 言 该设计是根据计算机组成原理课程所学的知识,设计.开发的一套简单模型机.是在DVCC 试验机上实现的,此系列实验系统作为较高层次.专用于计算机原理课程教学实验的实验计算机系统具有良好的实验性能和系统的完整性以及可扩展性. 良好的实验性体现在DVCC 系列机能很好地完成计算机硬件系统各功能部件的 ...

  • 微程序控制器设计与调试实验报告
  • 济宁医学院 信息工程学院 微程序控制器模型计算机的设计与调试 09级计本2班 [1**********]1 李秋生 一台模型计算机的设计 一.教学目的.任务与实验设备 1.教学目的 (1)融会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作 ...

  • 冯·诺依曼机原理的教学研究与应用
  • 第27卷 第10期 计算机工程与设计 2006年5月 V01.27 NO.10 ComputerEngineeringandDesign May2006 冯.诺依曼机原理的教学研究与应用 刘乃文 (山东师范大学信息科学与工程学院,山东济南250014) 摘要:经过对冯・诺依曼原理的深入研究,设计了一 ...