1、计算机微指令对应的机器码PC+1AR 0000 0E00 9030 5402PC+1PC 0000 0E00 B030 5400PC+1PC, AR 0000 0E00 B030 5402MEMQ 0000 0E00 00F0 0000MEM+QQ 0000 0E00 00E0 0000QMEM 0000 0E00 1020 0010(DC1选择运算器输出)MEM+QDR 0000 0E00 30E0 0008 MEM*2DR 0000 0E00 70F0 0008SR+MEMQ 0000 0E00 00D0 0080SR+MEMDR 0000 0E00 30D0 0088PC+1AR 000
2、0 0E00 90B0 5402PC-1AR 0000 0E00 91B0 5402IP+1AR 0000 0E00 9030 6402IP+OFFSETPC 0000 0E00 30D6 5000ADDRPC 0000 0E00 30F0 5000PCAR, PC+1PC 0000 0E00 A0B5 5402DRAR 0000 0E00 90B0 000ASRAR 0000 0E00 90C0 0082MEMAR 0000 0E00 10F0 0002DR-SR 0000 0E01 9110 0088SR-MEM 0000 0E01 11D0 0080Q-MEM 0000 0E01 11E
3、0 0000(11)比较SR和DR的大小,大于时 ADDR1-PC,小于等于 ADDR2+SR-ADDR2:=0000 0e00 a035 5402 0000 0e11 9210 0088 0042 4370 9000 0000 0041 4350 9000 0000 0029 0310 30f0 5000 0000 0e00 a035 5402 0000 0e10 10f0 0002 0000 0e10 00d0 0080 0029 0310 1020 0010 0000 0e10 b110 0088 0029 0300 b035 5400a800mov r1,900mov r2,bmov
4、r3,100ldmcretg800a820mov r0,2mov r1,4mov r2,3mov 0890,r2nopnopnoprete828d410 0880 0890a880mov r3,100retg820(12)设计一条条件转移指令。将SR与内存单元DATA的值进行比较,如果SRDR,否则ADDR-PC=指令格式:D4 DR SRDATAADDR100:PC-AR, PC+1-PC (data) 0000 0E00 A0B5 5402 101:MEM-Q (data=88) 0000 0E00 00F0 0002 102:SR-Q,标志 0000 0E01 9280 0088 103
5、:S=1时跳到107,否则顺序104 0041 D3B0 8000 0000 104:PC-AR (addr) 0000 0E00 A0B5 5002 105:MEM-PC (addr=082A) 0000 0E10 30F5 5000 106:CC#=0退出 0029 0300 9010 0000 107:SR+Q-DR, 标志 0000 0E10 B080 0088 108:PC+1-PC, CC#=0退出 0029 0300 B0B5 5400A8000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,9 ;共 9条微指令0804:MOV R3,100 ;微码在
6、微控存中的首地址0806:LDMC ;加载微码指令0807:RET0808:G800 ;加载微指令到控制存储器A820 MOV R1,99 ;R1是指令中的SR,用它和DATA比较NOPNOPNOPRETA82AMOV R8,D ;大于等于时,将会跳到82A执行这条赋值指令RET E822 输入以下内容:D421 88 82A运行结果G820 ;运行程序结果:1.SRDATA时SR=99DATA=100DR=1992.SRDATA时 SR=99DATA=99R8=000D (13)设计一条指令,比较SR内容与ADDR.如果SRADDR;否则SR-ADDR-ADDR.=100H: PC-AR,P
7、C+1-PC: 0000 0E00 A0B5 5402101H: MEM-AR: 0000 0E00 10F0 0002102H: SR-MEM-Q: 0000 0E01 01D0 0080103H: 条件转移: 0041 43B0 9080 0000104H: Q-MEM,CC#=0: 0029 0300 1020 0010(SR=MEM) 105H: SR+MEM-Q: 0000 0E00 00D0 0080(SRMEM,CC#=0: 0029 0300 1020 0010A800MOV R1,900MOV R2,7MOV R3,100LDMCRETG800A820MOV R7,0001M
8、OV R1,0002MOV 082A,R1NOPNOPRETE826D407 082AG820可以节省一条语句,在执行到105H的时候,让他无条件跳转到104H,就可以了!则:105H: SR+MEM-Q,条件转移: 0041 0E00 00D0 0080(SRMEM) 舍弃106H (14)设计一条指令,比较SR内容与ADDR.如果SRPC;否则SR+ADDR-DR.错误=100H: PC-AR: 0000 0E00 90B0 5002 101H: MEM-AR: 0000 0E00 10F0 0002 102H: SR-MEM: 0000 0E01 11D0 0080103H: 条件转移:
9、 0041 83B0 9080 0000104H: SR+MEM-DR,CC#=0: 0029 4E10 30D0 0088 105H: PC+1-AR: 0000 0E00 90B0 5402106H: IP+MEM-PC: 0029 0300 20D6 5000(15)DRADDR则DR-ADDR-DR;DRDR=0000 0e10 a035 5402 0000 0e10 8030 0008 0000 0e10 10f0 000a 0000 0e11 11e0 0000 0041 c370 9080 0000 0041 c350 9080 0000 0029 0310 31e0 0008
10、0029 0310 30e0 0008a800mov r1,900mov r2,8mov r3,100ldmcretg800a820mov r0,5nopnoprete822d400 0890e8900003g820设计一条减法指令把内存单元数据DATA与用绝地址表示的内存单元ADDR的内容相减,结果存到DR寄存器中。1.指令格式指令格式:D4 DRXADDRDATA2.指令功能功能: DATA - ADDR DR3.设计分析根据指令的功能和指令格式,先读取地址ADDR单元内容暂时放置于Q寄存器中,然后再读取内存单元数据DATA内容,同时与Q寄存器内容相减,结果也暂存放在Q寄存器中,最后把Q寄
11、存器的运算结果传到DR中。4.微程序 100:PCAR,PC+1PC: 0000 0E00 A0B5 5402101:MEMAR: 0000 0E00 10F0 0002102:MEMQ: 0000 0E00 00F0 0000103:PCAR,PC+1PC: 0000 0E00 A0B5 5402104:MEM-QDR,CC#=0: 0029 0301 32E0 00085.加载微码到微控存程序段说明:微码存放在900H(或某内存单元)开始的内存单元中 A08000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,5 ;微指令条数0804:MOV R3,100 ;微
12、码在微控存中的首地址0806:LDMC ;加载微码指令,将微码指令加载到控存0807:RET0808: G08006.运行程序段A08200820:MOV R0,00040822:MOV 0890,R00824:NOP 0825:NOP0826:NOP0827:RET E0824 然后输入以下内容:D410 0890 00137.运行结果G0820RR1R1=0009设计一条同值补码数符号扩展指令设计一条指令,完成对存放在低位的8位有符号补码数进行符号扩展,即将其变为16位的同值得补码数,结果仍保存在原寄存器中。8.指令格式指令格式:D4 DRX9.指令功能 功能:对存放在低位的8位有符号补码
13、数进行符号扩展,即将其变为16位的同值得补码数,结果仍保存在原寄存器中。10.设计分析正数的补码中符号位为0,各数位为其本身,负数的补码符号位为1,各数位为其的反,末尾再加一。那么对于正数的扩展,直接在高8位添0即可。对于负数的扩展,先假设把它还原成原码,符号位移动到最高位,然后变为反码,则高8位全为1,低8位与未扩展之前相同。综上,可以把待扩展的补码数通过左移9位得到其符号位,保存在C中。然后采用8次带符号位的右移操作,得到结果。11.微程序 100:8RC: 0002 0400 8080 0000101:2DRDR: 0000 0806 F0B0 0008102:8RC: 0002 040
14、0 8080 0000103:DR/2DR: 0000 0800 D0B0 0108104:CC#=0: 0029 0300 8000 000012.加载微码到微控存程序段说明:微码存放在900H(或某内存单元)开始的内存单元中 A08000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,5 ;微指令条数0804:MOV R3,100 ;微码在微控存中的首地址0806:LDMC ;加载微码指令,将微码指令加载到控存0807:RET0808: G080013.运行程序段A08200820:MOV R0,00290822:MOV R1,00A90824:NOP0825:
15、NOP0826:RET E0824 然后输入以下内容:D400 E0825 然后输入以下内容:D41014.运行结果G0820RR0R0=0029RR1R1=FFA9设计一条条件控制转移指令设计一条指令,实现地功能是:(说明:其中有一种情况请用SCC=7,IR10IR8=07的条件实现) 当DR=SR时,则IP+OFFSETPC; 当DRSR时,则ADDRPC; 否则执行下条汇编指令。(注:OFFSET为位移量;ADDR为某内存单元地址)1.指令格式指令格式:D9 DRSROFFSETADDR2.指令功能 功能: 当DR=SR时,则IP+OFFSETPC; 当DRSR时,则ADDRPC; 否则
16、执行下条汇编指令。3.设计分析指令通过比较DR和SR的大小实现语句的条件转移。先对DR和SR作差得到运算结果标志Z和符号标志S。首先根据Z进行转移,如果Z=1,那么说明DR=SR,跳转到CC#=0;否则顺序执行根据S进行转移,如果S=1,那么说明DRSR。根据Z转移利用的是SCC=7,IR10IR8=001的条件实现的,故操作码使用D9;而根据S转移是利用SCC=5的条件实现的。4.微程序110:DR-SR,得到Z和S: 0000 0E01 9110 0088111:PCAR,PCQ: 0000 0E00 8030 5002112:IP+MEMPC,Z=1跳转116: 0045 83F0 30
17、D6 5000113:Q+1Q,QAR: 0000 0E00 B020 0402114:MEMPC,S=1跳转116: 0045 83B0 30F0 5000115:Q+1PC: 0000 0E10 B020 5400116:CC#=0: 0029 0300 8000 0000或:110:DR-SR,得到Z和S: 0000 0E01 9110 0088111:PCAR,PC+1PC,Z=1跳转114: 0045 03E0 A0B5 5402112:PCAR,PC+1PC,S=1跳转115: 0045 43B0 A0B5 5402113:CC#=0: 0029 0300 8000 0000114
18、:MEM+IPPC,CC#=0: 0029 0300 30D6 5000115:MEMPC,CC#=0: 0029 0310 30F0 50005.加载微码到微控存程序段说明:微码存放在900H(或某内存单元)开始的内存单元中 A08000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,7 ;微指令条数0804:MOV R3,110 ;微码在微控存中的首地址0806:LDMC ;加载微码指令,将微码指令加载到控存0807:RET0808: G08006.运行程序段A08200820:MOV R8,0001 ;运行三次,R8分别为0,1,20822:MOV R9,00
19、010824:NOP0825:NOP0826:NOP0827:MOV R1, 99 ;若DRSR,输出990829:RET082A:MOV R1,77 ;若DR=SR,输出77082C:RET082D:MOV R1,88 ;若DRE0824 然后输入以下内容:D989 0006 082D 7.运行结果G0820RR1R1=77(当R8=0时,R1=88,当R8=2时,R1=99)设计一条半字交换指令设计一条指令,其功能是把一个通用寄存器中的内容进行半字交换,即将其高低位字节的内容对换。15.指令格式指令格式:D8 DRX16.指令功能功能: RAMH,RAML RAML,RAMH 17.设计分
20、析将DR的内容送去Q。利用DR和Q组成联合移位,联合右移8位后Q将为所求数,最后将Q送到DR,18.微程序 100:DRQ,7RC; 0001 C400 8030 0008101:DRQ联合右移DRQ; 0000 0807 C030 0208102:QDR,CC#=0: 0029 0300 B020 001819.加载到微控存程序段说明:微码存放在900H(或某内存单元)开始的内存单元中 A8000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,3 ;微指令条数0804:MOV R3,110 ;微码在微控存中的首地址0806:LDMC ;加载微码指令0807:RET
21、0808:G80020.运行程序段A8200820:MOV R9,12890822:NOP0824:RET E822 然后输入以下内容:D89021.运行结果G820RR9R9=8912设计一条条件控制处理与转移指令 设计一条指令,将SR的内容与内存单元数据DATA相比较,如果SRDATA,则执行DATA+SR DR,否则ADDR PC。1.指令格式指令格式:D8DRSRDATAADDR2.指令功能功能: 当SR=DATA时,则ADDR PC 3.设计分析本次实验要求完成的是一条条件控制指令。首先,将DATA的地址放到AR,读出DATA放到寄存器Q,利用SR-Q得出标志位SF,再根据标志位SF
22、判断跳转与否,如果SF=1,则跳到115,否则顺序执行114,之后再根据两个不同条件需要完成的操作实现。4.微程序 110 :PCAR,PC+1PC; 0000 0E00 A0B5 5402 111 :MEMQ; 0000 0E00 00F0 0000 112 :SR-Q; 0000 0E01 9200 0080 113 :SF=1跳转PCAR,PC+1PC 00450041 43B0 A035 5402 114 :MEMPC CC#=0; 0029 0300 30F0 5000 115 :SR+QDR CC#=0; 0029 03010300 B000 0088 5.加载微码到微控存程序段微
23、码存放在900H(或某内存单元)开始的内存单元中 A8000800:MOV R1,900 ;微码在内存中的首地址0802:MOV R2,6 ;微指令条数0804:MOV R3,110 ;微码在微控存中的首地址0806:LDMC ;加载微码指令,将微码写入控存0807:RET0808: G800 ;加载微指令到控存6.运行程序段A8200820:MOV R7,4444 0822:MOV R8,44440824:NOP0825: NOP0826: NOP0827: MOV R0,44440829: RET082A: MOV R0,5555082C: RET E826 输入以下内容:D878 444
24、5 082A7.运行结果G820DATASR,DATA=4445,SR=4444, DR=8889DATA=SR,DATA=4444,SR=4444, R0=5555DATASR,DATA=4443,SR=4444, R0=5555设计一条加法指令把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2的内容相加,结果存到ADDR1单元中。1.指令格式指令格式:D4XXADDR1ADDR22.指令功能功能: ADDR1 + ADDR2 ADDR11.设计分析思路为先把PC指向ADDR2,然后先读取ADDR2,再PC减1,返回去读ADDR1的值,随后进行加法和赋值操作,最后把PC加3,使得PC返回,为执行下一条指令做好准备。于是有以下操作步骤:根据指令的功能和指令格式,先执行PC+1PC,使得指向ADDR2。读取地址ADDR2单元内容暂时放置于Q寄存器中,然后PC-1PC,再读取地址ADDR1单元内容,同时与Q寄存器内容相加,结果也暂存放在Q寄存器中,此时,由于地址寄存器AR中存放的正好是地址ADDR1,因此只要将Q寄存器内容写入存储器就可以完成指令功能。此后,微程序中必须再执行3次PC+1PC操作,才能确保PC的正确走向。2.微程序 100:PC+1PC: 0000 0E00 A0B5 5400101:PCAR,P
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1