微地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 1CH 1DH 1EH 1FH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 2BH 2CH 微代码 01C008 DC4002 610003 00C010 C10005 820001 C10007 410020 000001 DC400C C40E0F 000001 21000D C40E0E 058109 22001C 000000 DC401D 04BE0A 000000 000000 300021 87E51 C10023 108001 C10025 210026 DC4027 0D8001 000000 000000 000000 000000 D1401E BTO 000 110 011 000 110 100 110 010 000 110 110 000 001 110 000 001 000 110 000 000 000 001 100 110 000 110 001 110 000 000 000 000 000 110 OTB 000 111 000 000 000 000 000 000 000 111 001 000 000 110 001 001 000 110 001 000 000 100 001 000 100 000 000 111 011 000 000 000 000 111 表7-1 实验七微码表 FUNC FS S3S2S1S0MCi N 011 1 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 001 1 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 000 0 0 0 1 1 1 0 0 000 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 000 0 0 0 1 1 1 0 0 011 0 0 0 0 0 0 1 0 100 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 001 0 1 1 1 1 1 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 111 1 1 0 0 1 0 1 0 010 0 0 0 0 0 0 0 0 001 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 011 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0001 0 0 0 0 0 0 0 0 下 址 0001000 0000010 0000011 0010000 0000101 0000001 0000111 0100000 0000001 0001100 0001111 0000001 0001101 0001110 0001001 0011100 0000000 0011101 0001010 0000000 0000000 0100001 0000001 0100011 0000001 0100101 0100110 0100111 0000001 0000000 0000000 0000000 0000000 0011110 微指令注释 J(3) PC->AR,PC=PC+1 RAM->IR J(1) RAM->AR IN->DR RAM->AR RAM->DA2 NULL PC->AR,PC=PC+1 0->AR NULL RAM->DA1 0->AR DA1->OUT IN->DA1 NULL PC->AR,PC=PC+1 DA1->RAM NULL NULL DR->DA1 DA1+DA2->DR,CyNCn RAM->AR DR->RAM RAM->AR RAM->DA1 PC->AR,PC=PC+1 RAM->AR NULL NULL NULL NULL NULL (4)测试程序
为测试编制的微程序是否实现了指令规定的功能,须按照指令格式编写一段程序(机器码),装入内存并执行,通过检查结果来判断微程序是否正确。表7-2就是一段测试程序。
表7-2 实验七测试程序 地址 内 容 助记符 备 注 00H 11000000B ;IN R0,[PORTAR] IN-> R0 00000000B ;端口地址 00H 01H 02H 11000100B ;ADD R0,[10H] R0+[10H] -> R0 00010000B ;直接地址 10H 03H 04H 11001000B ;STA R0,[10H] R0 -> [10H] 00010000B ;直接地址 10H 05H
-21-
06H 07H 08H 09H 0AH ?? 10H
11001100B 00010000B 00000000B 11010000B 00000000B ?? ;OUT [10H],[PORTAR] ;直接地址 10H ;端口地址 00H ;JMP 00H ;立即数 00H ;和 [10H] -> LED 00H->PC ;须检验的结果 4.实验步骤
(1)连接实验线路:按照原理图7-1连接实验线路,仔细检查接线无误后,接通电源。(注意:图中连线上有椭圆圈的,需用排线自行连接,否则,线路板内部已连接好。)
(2)装入微程序并校验:参见实验六操作。 (3)装入程序并校验:
方法一:手动装入和校验(使用控制台操作指令进行机器指令的装入与校验) ①装入:
a. 将编程开关置于“RUN”状态,RUN/STEP开关置于“STEP”状态。
b. 操作CLR开关,使CLR信号“1→0→1”,程序计数器PC清零,微地址清零。 c. 开关KBKA置为“0 1”,即写内存状态。
d. 按动启动键START一次,则从控存00H单元开始执行微指令,微地址显示灯显示“0001010”,第二次按动START键,微地址显示灯显示“001111”,此时,将数据开关置为要写入的机器指令代码或数据,再按动START键两次,即完成该条指令的写入,同时PC指向下一个内存单元。继续按动START键,当且仅当微地址显示灯显示“000111”时,才从开关上置入指令代码,直至所有的程序代码写入完毕。
②校验
a. 将编程开关置于“RUN”状态,RUN/STEP开关置于“STEP”状态
b. 操作CLR开关,使CLR信号“1→0→1”,程序计数器PC清零,微地址清零。 c. 开关KB KA置为“1 0”,即读内存状态。
d. 动键START键三次,从控存00H单元开始执行微指令,微地址显示灯显示为0001001→0001100→0001110,此时,输出设备(OUTPUT DEVICE)发光管上将显示内存00H号单元的内容,检查是否与写入的数据相同。继续按动START键,当且仅当微地址显示灯显示0001001时,发光管上显示的内容才是内存的数据。每个循环PC自动增加1,由此,可检查后续单元的内容是否正确。
③若校验有误,则返回到①重新装入,直到所有单元的内容正确。 方法二:联机读/写程序:参见附录3《上位软件操作》。 (4)运行程序
方法一(单步运行):
① 将编程开关置于“RUN”状态:RUN/STEP开关置于“STEP”状态;开关KB KA置为
“0 0”或“1 1”,即启动程序状态。
② 操作CLR开关使信号“1→0→1”,从而使微地址清零,程序计数器PC清零,即程序首
-22-
地址为00H。
③ 每按动一次START键,就单步运行一条微指令,此时可通过观察微地址显示灯,来判断
微程序执行的流程是否正确。 方法二(连续运行):
① 将编程开关置于“RUN”状态:RUN/STEP开关置于“RUN”状态;开关KB KA置为“0
0”或“1 1”。 ② 同上单步运行。
③ 按动START键,启动时序,系统从0地址连续运行程序;稍候,将RUN/STEP开关拨
至“STEP”状态,系统停机。
方法三(联机运行):参见附录3《上位软件操作》。
(5)检查结果是否正确。若有误,则检查和修改微程序代码和程序代码,从(2)开始重新操作,直至正确。
5.实验要求
(1)用手动方式装入表7-2程序代码,并校验。 (2)使用联机方式装入微程序代码。
(3)分别采用脱机和联机方法执行程序,比较和检查结果是否正确。若有误,查找原因并改正。
(4)分析实验的指令系统中,如何实现隐含对R0 (目的操作数)的寻址?如果要隐含使用R1 做目的操作数,如何实现?
(5)分析手动装入程序代码时,为什么必须要在微地址显示灯显示“0001111”时,才从开关上置入指令代码?同时,在手动校验时,为什么只有当微地址显示灯显示“0001001”时,发光管上显示的内容才是内存的数据?
(6)若将OUT指令的操作码改为0101,则微程序必须做什么样的修改? (7)在图7-2的微程序流程图上,最多还可以添加几条机器指令?
-23-
实验8 带移位功能的模型机设计与实现
1.实验目的
综合应用所学计算机组成有原理基本知识,设计并实现具有移位功能的计算机。
2.实验设备
YY-Z02计算机组成原理教学实验系统一台,排线若干。
3.实验原理
本实验基本原理如图8-1所示,是在实验七所描述的模型机的基础上,搭接移位控制电路,其控制信号299?B、M、S1、S0从微控制器产生,其余原理同实验七。其接线图如图8-2所示。
图8-1 移位模型机的原理图
图8-2 移位模型机实验接线图
(1)指令系统
在本实验中,定义了九条机器指令,格式和功能如下(DR默认为R0):
-24-
① STA [ADDR],DR
格式: I7I6 I5I4 I3I2 I1I0 10 00 00 DR ADDR 功能:(DR)0→[ADDR];直接寻址,DR的内容送主存ADDR地址单元。 ② JMP ADDR
格式: I7I6 I5I4 I3I2 I1I0 10 00 01 ×× ADDR 功能: ADDR→PC;跳转到主存ADDR地址继续执行。 ③ ADD DR,[ADDR]
格式: I7I6 I5I4I3I2 I1I0 11 0000 00 ADDR 功能:(DR)+[ADDR]→DR;结果影响标志;直接寻址。直接地址ADDR在指令第二字节。 ④ IN DR,[PORTAR]
格式: I7I6 I5I4I3I2 I1I0 11 0001 DR PORTAR 功能:输入设备(INPUT DEVICE)开关状态→DR,PORTAR为输入设备的端口地址。 ⑤ OUT [PORTAR],DR
格式: I7I6 I5I4I3I2 I1I0 11 0010 DR PORTAR 功能:(DR)→LED;直接寻址,DR 寄存器的内容送输出设备发光管显示。PORTAR为输出设备的端口地址,由PORTAR中的Ai位线选。
⑥ RR
格式: I7I6 I5I4I3I2 I1I0 11 0011 DR 功能:DR寄存器的内容循环右移一位→DR,D0移入D7,移位后不影响FC。 ⑦ RRC
格式: I7I6 I5I4I3I2 I1I0 11 0100 DR 功能:DR寄存器的内容带进位循环右移一位→DR,DR最高位受FC影响,移位后影响FC。 ⑧ RL
格式: I7I6 I5I4I3I2 I1I0 11 0101 DR 功能:DR寄存器的内容循环左移一位→DR,D7移入D0,移位后不影响FC。 ⑨ RLC
格式: I7I6 I5I4I3I2 I1I0 11 0110 DR 功能:DR寄存器的内容带进位循环左移一位→DR,DR最高位受FC影响,移位后影响FC。
-25-