1、mov r1,4mov r2,3mov 0890,r2nope828d410 0880 0890a880g820(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 0002102:SR-Q,标志0000 0E01 9280 0088103:S=1时跳到107,否则顺序1040041 D3B0 8000 0000104:AR (addr)0000 0
2、E00 A0B5 5002105:PC (addr=082A)0000 0E10 30F5 5000106:CC#=0退出0029 0300 9010 0000107:SR+Q-DR, 标志0000 0E10 B080 0088108:PC+1-PC, CC#=0退出0029 0300 B0B5 5400A8000800:MOV R1,900;微码在内存中的首地址0802:MOV R2,9共 9条微指令0804:MOV R3,100微码在微控存中的首地址0806:LDMC加载微码指令0807:RET0808:G800加载微指令到控制存储器A820MOV R1,99R1是指令中的SR,用它和DA
3、TA比较NOPA82AMOV R8,D大于等于时,将会跳到82A执行这条赋值指令E822输入以下内容:D421 88 82A运行结果G820 ;运行程序结果:1.SRDATA时SR=99DATA=100DR=1992.SRDATA时DATA=99R8=000D (13)设计一条指令,比较SR内容与ADDR.如果SRADDR;否则SR-ADDR-ADDR.100H: PC-AR,PC+1-PC:0000 0E00 A0B5 5402101H: MEM-AR:0000 0E00 10F0 0002102H: SR-MEM-Q:0000 0E01 01D0 0080103H: 条件转移:0041 4
4、3B0 9080 0000104H: Q-MEM,CC#=0:0029 0300 1020 0010(SR=MEM) 105H: SR+MEM-0000 0E00 00D0 0080(SRMEM) 106H:0029 0300 1020 0010MOV R1,900MOV R2,7MOV R3,100LDMCG800MOV R7,0001MOV R1,0002MOV 082A,R1E826D407 082AG820可以节省一条语句,在执行到105H的时候,让他无条件跳转到104H,就可以了!则:Q,条件转移: 0041 0E00 00D0 0080(SR舍弃106H (14)设计一条指令,比较
5、SR内容与ADDR.如果SRPC;否则SR+ADDR-DR.错误0000 0E00 90B0 5002 0000 0E00 10F0 0002 SR-MEM:0000 0E01 11D0 00800041 83B0 9080 0000DR,CC#=0:0029 4E10 30D0 0088 PC+1-0000 0E00 90B0 5402 IP+MEM-0029 0300 20D6 5000(15)DRADDR则DR-ADDR-DR;DRDR0000 0e10 a035 5402 0000 0e10 8030 0008 0000 0e10 10f0 000a 0000 0e11 11e0 00
6、00 0041 c370 9080 0000 0041 c350 9080 0000 0029 0310 31e0 0008 0029 0310 30e0 0008mov r2,8mov r0,5e822d400 0890e8900003设计一条减法指令把内存单元数据DATA与用绝地址表示的内存单元ADDR的内容相减,结果存到DR寄存器中。1.指令格式指令格式:D4 XADDRDATA2.指令功能功能: DATA - ADDR DR3.设计分析根据指令的功能和指令格式,先读取地址ADDR单元内容暂时放置于Q寄存器中,然后再读取内存单元数据DATA内容,同时与Q寄存器内容相减,结果也暂存放在Q寄
7、存器中,最后把Q寄存器的运算结果传到DR中。4.微程序 100:PCAR,PC+1PC: 0000 0E00 A0B5 5402101:MEMAR: 0000 0E00 10F0 0002102:MEMQ: 0000 0E00 00F0 0000103:104:MEM-QDR,CC#=0: 0029 0301 32E0 00085.加载微码到微控存程序段说明:微码存放在900H(或某内存单元)开始的内存单元中 A08000800:MOV R1,900 ;0802:MOV R2,5 ;微指令条数0804:MOV R3,100 ;0806:LDMC ;加载微码指令,将微码指令加载到控存0807:0
8、808: G08006.运行程序段A08200820:MOV R0,00040822:MOV 0890,R00824:NOP 0825:0826:0827:E0824 然后输入以下内容:D410 0890 00137.运行结果G0820RR1R1=0009设计一条同值补码数符号扩展指令设计一条指令,完成对存放在低位的8位有符号补码数进行符号扩展,即将其变为16位的同值得补码数,结果仍保存在原寄存器中。8.指令格式9.指令功能 功能:对存放在低位的8位有符号补码数进行符号扩展,即将其变为16位的同值得补码数,结果仍保存在原寄存器中。10.设计分析正数的补码中符号位为0,各数位为其本身,负数的补码
9、符号位为1,各数位为其的反,末尾再加一。那么对于正数的扩展,直接在高8位添0即可。对于负数的扩展,先假设把它还原成原码,符号位移动到最高位,然后变为反码,则高8位全为1,低8位与未扩展之前相同。综上,可以把待扩展的补码数通过左移9位得到其符号位,保存在C中。然后采用8次带符号位的右移操作,得到结果。11.微程序 8RC: 0002 0400 8080 00002DRDR: 0000 0806 F0B0 0008DR/2DR: 0000 0800 D0B0 0108CC#=0: 0029 0300 8000 000012.加载微码到微控存程序段13.运行程序段MOV R0,0029MOV R1,
10、00A9D400E0825D41014.运行结果RR0R0=0029R1=FFA9设计一条条件控制转移指令设计一条指令,实现地功能是:(说明:其中有一种情况请用SCC=7,IR10IR8=07的条件实现) 当DR=SR时,则IP+OFFSETPC; 当DRSR时,则ADDRPC; 否则执行下条汇编指令。(注:OFFSET为位移量;ADDR为某内存单元地址)D9 SROFFSET 当DR 否则执行下条汇编指令。指令通过比较DR和SR的大小实现语句的条件转移。先对DR和SR作差得到运算结果标志Z和符号标志S。首先根据Z进行转移,如果Z=1,那么说明DR=SR,跳转到CC#=0;否则顺序执行根据S进
11、行转移,如果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 30D6 5000113:Q+1Q,QAR: 0000 0E00 B020 0402114:MEMPC,S=1跳转116: 0045 83B0 30F0 5000115:Q+1PC: 0000 0E10 B020 5400
12、116: 0029 0300 8000 0000或: 0000 0E01 9110 0088PCAR,PC+1PC,Z=1跳转114: 0045 03E0 A0B5 5402PCAR,PC+1PC,S=1跳转115: 0045 43B0 A0B5 5402 0029 0300 8000 0000MEM+IPPC,CC#=0: 0029 0300 30D6 5000MEMPC,CC#=0: 0029 0310 30F0 5000MOV R2,7 ;MOV R3,110 ;MOV R8,0001 ;运行三次,R8分别为0,1,2MOV R9,0001MOV R1, 99 ;若DRSR,输出9908
13、29:082A:MOV R1,77 ;若DR=SR,输出77082C:082D:MOV R1,88 ;若DRSR,输出88082F:D989 0006 082DR1=77(当R8=0时,R1=88,当R8=2时,R1=99)设计一条半字交换指令设计一条指令,其功能是把一个通用寄存器中的内容进行半字交换,即将其高低位字节的内容对换。15.指令格式D8 16.指令功能 RAMH,RAML RAML,RAMH17.设计分析将DR的内容送去Q。利用DR和Q组成联合移位,联合右移8位后Q将为所求数,最后将Q送到DR,18.微程序 DRQ,7RC; 0001 C400 8030 0008DRQ联合右移DR
14、Q; 0000 0807 C030 0208QDR,CC#=0: 0029 0300 B020 001819.加载到微控存程序段MOV R2,3 ;20.运行程序段MOV R9,1289D89021.运行结果RR9R9=8912设计一条条件控制处理与转移指令 设计一条指令,将SR的内容与内存单元数据DATA相比较,如果SRDATA,则执行DATA+SR DR,否则ADDR PC。D8 当SR=DATA时,则ADDR PC 本次实验要求完成的是一条条件控制指令。首先,将DATA的地址放到AR,读出DATA放到寄存器Q,利用SR-Q得出标志位SF,再根据标志位SF判断跳转与否,如果SF=1,则跳到
15、115,否则顺序执行114,之后再根据两个不同条件需要完成的操作实现。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 MOV R2,6 ;加载微码指令,将微码写入控存G800 ;加载微指令到控
16、存MOV R7,4444 MOV R8,44440825: NOP0826:0827: MOV R0,44440829: RET082A: MOV R0,5555082C: 输入以下内容:D878 4445 082ADATASR,DATA=4445,SR=4444, DR=8889DATA=SR,DATA=4444,SR=4444, R0=5555DATASR,DATA=4443,SR=4444, R0=5555设计一条加法指令把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2的内容相加,结果存到ADDR1单元中。D4XXADDR1ADDR2 ADDR1 + ADDR2 ADDR1
17、1.设计分析思路为先把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.微程序 PC+1PC: 0000 0E00 A0B5 5400PCAR,P
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1