TEC2+指令设计题集.docx
- 文档编号:24701894
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:21
- 大小:20.49KB
TEC2+指令设计题集.docx
《TEC2+指令设计题集.docx》由会员分享,可在线阅读,更多相关《TEC2+指令设计题集.docx(21页珍藏版)》请在冰豆网上搜索。
TEC2+指令设计题集
(1)设计一条指令,比较SR内容与[ADDR].
若SR<[ADDR],则SR+[ADDR]->[ADDR];否则SR-[ADDR]->[ADDR].
指令格式:
D40SR
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:
00000E00A0B55402
101H:
MEM->AR:
00000E0010F00002
102H:
SR-MEM->Q,接受标志:
00000E0101D00080
103H:
S=1(即AR<[ADDR])时,条件转移到105:
004143B090800000
104H:
Q->MEM,CC#=0:
0029030010200010
105H:
SR+MEM->Q:
00000E0000D00080
106H:
Q->MEM,CC#=0:
0029030010200010
A800
MOVR1,900
MOVR2,7
MOVR3,100
LDMC
RET
G800
A820
MOVR7,0001
MOVR1,0002
MOV[082A],R1
NOP
NOP
RET
E826
D407082A
G820
U820
运行结果如下:
0820:
2C700001MOVR7,0001
0822:
2C100002MOVR1,0002
0824:
3401082AMOV[082A],R1
0826:
D407DWD407
0827:
082AADCR2,R10
0828:
AC00RET
0829:
0000NOP
082A:
0003NOP
……结果分析:
由于运行前SR=R7=0001<[ADDR]=[082A]=0002,故运行后[ADDR]=0003=SR+[ADDR],结果正确.
更换数据测试:
>E821
08210001:
0002
>G820
>U820
运行结果如下:
0820:
2C700002MOVR7,0002
0822:
2C100002MOVR1,0002
0824:
3401082AMOV[082A],R1
0826:
D407DWD407
0827:
082AADCR2,R10
0828:
AC00RET
0829:
0000NOP
082A:
0000NOP
……结果分析:
由于运行前SR=R7=0002=[ADDR]=[082A]=0002,故运行后[ADDR]=0000=SR-[ADDR],结果正确.
(2)设计一条指令,比较SR内容与[ADDR].
若SR<[ADDR],则IP+OFFSET->PC;否则SR+[ADDR]->DR.
指令格式:
D4DRSR
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:
00000E00A0B55402
101H:
MEM->AR:
00000E0010F00002
102H:
MEM->Q:
00000e0000f00000
103H:
SR-Q:
改变标志位:
00000e0192000088
104H:
S=1(即SR<[ADDR])时,
条件转移到106,PC->AR,PC+1->PC:
004183B0A0355402
105H:
SR+Q->DR,CC#=0:
00290311B0000088
106H:
IP+MEM->C,CC#=0:
0029031030D65000
装载微码:
A800
MOVR1,900
MOVR2,7
MOVR3,100
LDMC
RET
G800
A820
movr1,0002
mov[0890],r1
nop
nop
nop
ret
movr0,1111
Ret
E824
D48708900004
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]。 指令格式: D40SR ADDR 设计分析: 先取出[ADDR]中的值,然后用SR-[ADDR]->Q来计算二者的差值,并利用运算所得的标志位判断比较二者的大小以进行条件转移: 当S=1时,说明SR<[ADDR],程序跳转执行[ADDR]-SR->Q,然后将Q的值写回[ADDR];否则,顺序执行[ADDR]+SR->Q,并将Q的值写回[ADDR]中。 微程序: 100H: PC->AR,00000E0090B05002 101H: MEM->AR: 00000E0010F00002 102H: SR-MEM->Q,接受标志: 00000E0101D00080 103H: S=1(即SR<[ADDR])时,条件转移到106: 004143B090800000 104H: SR+MEM->Q,转移到105: 0041831000D00080 105H: MEM-SR->Q: 00000E0002D00080 106H: Q->MEM,CC#=0: 0029030010200010 加载微程序: E900输入以上微码 (2)加载到微控存程序段 微码存放在900H(或某内存单元)开始的内存单元中 >A800 0800: MOVR1,900;微码在内存中的首地址 0802: MOVR2,7;共9条微指令 0804: MOVR3,100;微码在微控存中的首地址 0806: LDMC;加载微码指令 0807: RET 0808: >G800;加载微指令到控制存储器 (3)运行程序段 >A820 MOVR1,01;R1是指令中的SR,用它和DATA比较 MOVR2,02 MOV[082A],R2 NOP NOP NOP NOP RET >E826 输入以下内容: D401082A (4)运行结果 >G820;运行程序 结果: 1.(SR=01)<([ADDR]=02)时 [ADDR]=0001 2.>E821 0002 (SR=02)=([ADDR]=02)时 [ADDR]=0004 (4)设计一条条件转移指令。 将SR与内存单元DATA的值进行比较, 1)如果SRDR, 2)如果SR≥DATA,则ADDR->PC 指令格式: D4DRSR 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: 00000E00A0B55402 101H: mem->Q: 00000e0000f00000 103H: SR-Q: 改变标志位: 00000e0192000088 104H: S=1(即SR<[ADDR])时, 条件转移到105,PC->AR,PC+1->PC: 004143B0A0355402 104H: MEM->PC,CC#=0: 0029030030F05000a8 105H: SR+Q->DR,CC#=0: 00290311B0000088 (2)加载到微控存程序段 微码存放在900H(或某内存单元)开始的内存单元中 >A800 0800: MOVR1,900;微码在内存中的首地址 0802: MOVR2,6;共6条微指令 0804: MOVR3,100;微码在微控存中的首地址 0806: LDMC;加载微码指令 0807: RET 0808: >G800;加载微指令到控制存储器 (3)运行程序段 >A820 MOVR1,01;R1是指令中的SR,用它和DATA比较 NOP NOP NOP RET >A82A MOVR8,10F0;大于等于时,将会跳到82A执行这条赋值指令 RET >E822 输入以下内容: D4210088082A (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.指令功能 功能: [ADDR1]+[ADDR2]→[ADDR1] 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: 00000E0090B55402 101: MEM→AR: 00000E0010F00002 102: MEM→Q: 00000E0000F00000 103: PC→AR,PC+1→PC: 00000E00A0B55402 104: MEM→AR: 00000E0010F00002 105: PC+1→PC: 00000E00A0B55400 106: MEM+Q→Q: 00000E0100E00000 107: Q→MEM,CC#=0: 0029030010200010 5.加载到微控存程序段 说明: 微码存放在900H(或某内存单元)开始的内存单元中 >A800↙ 0800: MOVR1,900;微码在内存中的首地址 0802: MOVR2,8;微指令条数 0804: MOVR3,100;微码在微控存中的首地址 0806: LDMC;加载微码指令 0807: RET 0808: 6.运行程序段 >A820↙ 0820: MOVR0,0011 0822: MOV[0890],R0 0824: MOV[0891],R0 0826: NOP 0827: NOP 0828: NOP 0829: RET >E826↙ 然后输入以下内容: D40008900891 7.运行结果 >G820↙ 用D命令查看运算结果 >D890↙ 则屏幕显示 0890: 00220011••• (6)设计一条半字交换指令 1.指令格式 指令格式: D8DR0 2.指令功能 DR(I15-I8)与DR(I7-I0)的内容互换 3.设计分析 1)将DR的内容送到Q寄存器中,并启用4号命令,因为预备循环8次,所以下 地址字段要写7; 2)用8号命令重复循环,让Q和DR中的数据联合左移8次,Q中的高8位作为 填充移入到DR的第八位,就相当于完成了DR中数据高低位的交换; 3)循环结束后,顺序执行. 4.微程序 110: DR→Q,4#: 0001C40080300008 111: R0Q→R0Q(联合左移),8#: 00000806E0300208 112: CC#: 0029030090300008 5.加载到微控存程序段 说明: 微码存放在900H(或某内存单元)开始的内存单元中 >A800↙ 0800: MOVR1,900;微码在内存中的首地址 0802: MOVR2,3;微指令条数 0804: MOVR3,110;微码在微控存中的首地址 0806: LDMC;加载微码指令 0807: RET 0808: 6.运行程序段 >A820↙ 0820: MOVR0,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.指令格式 指令格式: D4DRSR OFFSET ADDR 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;接受标志: 00000E0191100088 101: PC->AR,DR=SR时跳到104: 0041037090305002 102: PC->AR,PC+1->PC,DR 004143B0B0305402 103: PC+1->PC,DR>SR时执行下条指令: 00290300B0305400 104: IP+OFFSET(MEM)->PC: 0029030030D65000 105: ADDR(MEM)->PC: 0029030030F05000 (2)加载到微控存程序段 4.加载到微控存程序段 说明: 微码存放在900H(或某内存单元)开始的内存单元中 >A800↙ 0800: MOVR1,900;微码在内存中的首地址 0802: MOVR2,6;微指令条数 0804: MOVR3,100;微码在微控存中的首地址 0806: LDMC;加载微码指令 0807: RET 0808: 5.运行程序段 >A820↙ 0820: MOVR7,7 0822: MOVR8,8 0824: MOVR0,0 0826: NOP 0827: NOP 0828: NOP 0829: NOP 082A: MOVR0,4444 082C: RET 082D: MOVR0,5555 082F: RET 0830: MOVRO,7777 0832: RET >E826↙ 然后输入以下内容: D47800070830 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.指令格式 指令格式: D40SR ADDR 3.设计分析 根据实验册Page45后的<<微指令分析及功能描述表根据指令的功能和指令格式,在读取地址ADDR单元内容后暂时放置于Q寄存器中,然后将SR(R8)与Q寄存器内容相加,其结果也暂存放在Q寄存器中,此时,由于地址寄存器AR中存放的恰好是地址ADDR,因此只要将Q寄存器内容写入存储器就可以完成所需的指令功能。 4.微程序 100: PC→AR,PC+1→PC: 00000E00A0B55402 101: MEM→AR: 00000E0010F00002 102: MEM→Q: 00000E0000F00000 103: Q+SR→Q: 00000E0180800080 104: Q→MEM,CC#=0: 0029030010200010 5.加载到微控存程序段 (一)用”A”命令输入加载微码的程序 在命令行提示符状态下输入: >A800↙ 0800: MOVR1,900;微码在内存中的首地址 0802: MOVR2,5;微指令条数 0804: MOVR3,100;微码在微控存中的首地址 0806: LDMC;加载微码指令 0807: RET 0808: (二)用”G”命令运行加载微码的程序 在命令行提示符状态下输入: >G800 微码便装入起始地址为100H的微控存中. 6.输入程序并运行新命令 (一)用”A”命令输入程序 在命令行提示符状态下输入: >A820 0820: MOVR0,0011 0822: MOVR8,0001 0824: MOV[0890],R0 0826: NOP 0827: NOP 0828: RET (二)用”E”命令输入新指令 在命令行提示符状态下输入: >E826 0826: D40008900891 7.用”G”命令运行程序 在命令行提示符状态下输入 >G820 然后用”D”命令察看运行结果 在命令行提示符状态下输入: >D890 屏幕将显示: 08900012 0891单元为0012,即为正确的运算结果. (9)设计一条符号扩展指令 1.指令功能 功能: DR符号扩展→DR 2.指令格式 指令格式: D8DR0 3.设计分析 根据指令的功能和指令格式: (1)对寄存器保存的低位字节的8位有符号补码数进行逻辑左移操作,左移9位,空出的低位补0; (2)对其进行算术右移操作,右移9位,空出的高位用最高位(符号位)填补,这样即可将其扩展为16位的同值补码数; (3)结果仍保存在原寄存器中,完成指令功能; 4.微程序 100: R/C=8: 0002040080300000 101: DR→DR逻辑左移9次: 00000806F0300208 102: R/C=8: 0002040080300000 103: DR→DR算术右移9次,CC#=0: 00290F20D0300108 5.加载到微控存程序段 (一)用”A”命令输入加载微码的程序 在命令行提示符状态下输入: >A800 0800: MOVR1,900;微码在内存中的首地址 0802: MOVR2,4;微指令条数 0804: MOVR3,100;微码在微控存中的首地址 0806: LDMC;加载微码指令 0807: RET 0808: (二)用”G”命令运行加载微码的程序 在命令行提示符状态下输入: >G800 微码便装入起始地址为100H的微控存中. 6.输入程序并运行新命令 (一)用”A”命令输入程序 在命令行提示符状态下输入: >A820 0820: MOVR9,00FF 0822: NOP 0823: RET (二)用”E”命令输入新指令 在命令行提示符状态下输入: >E822 然后输入以下内容: D890 7.察看运行结果 >G820 >R R9=FFFF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TEC2 指令 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)