实验五 复杂模型机的设计与实现
一、实验目的
综合运用所学计算机原理知识,设计并实现较为完整的计算机。
二、实验设备
Dais-CMX16+计算机组成原理教学实验系统一台,实验用导线若干。
三、数据格式及指令系统
1. 数据格式
模型机规定采用定点补码表示数据,且字长为8位,其格式如下:
7 符号 6 5 4 3 2 1 0 尾 数 其中第7位为符号位,数值表示范围是:-1≤X<1。 2. 指令格式
模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
⑴ 算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7 6 5 4 OP-CODE 3 2 1 0 Rs Rd 其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:
Rs或Rd 00 01 10 11 选定的寄存器 R0 R1 R2 R3 其中R0=CL;R1=CH;R2=DL;R3=DH 9条算术逻辑指令的名称、功能和具体格式见表5-1。 ⑵ 访问指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进
位转移指令(BZC),指令格式为:
7 6 5 4 0 0 M 3 2 2OP-CODE 1 0 Rd D(低八) D(高八)
其中“0 0 M ”为源码段,2OP-CODE为目的码段(LDA、STA指令使用)。D为十六位地址段(低八在前,高八随后),M为源寻址模式,其定义如下:
寻址模式M 有效地址E 说 明 00 01 10 11 E = D E = (D) 直接寻址 间接寻址 E = (SP)+D SP变址寻址 E = (PC)+D 相对寻址
⑶ I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
7 6 5 4 OP-CODE 3 2 0 0 1 0 Rd ⑷ 停机指令 指令格式如下:
7 6 5 4 OP-CODE 3 2 0 0 1 0 0 0 HALT指令,用于实现停机操作。
3. 指令系统
本模型机共有16条基本指令,其中算术逻辑指令9条,访问内存指令和程序控制指令4
条,输入输出指令2条,其它指令1条。下表列出了各条指令的格式、汇编符号、指令功能。
表5-1 助记符 LDA M,D,Rd 0 0 STA M,D,Rd 0 0 JMP M,D BZC M,D MOV Rd,Rs ADC Rd,Rs SBC Rd,Rs AND Rd,Rs CLR Rd INC Rd CPL Rd RRC Rd RLC Rd IN Rd,I/O 0 0 0 0 指令格式 M M M M 00 Rd E→Rd 01 Rd Rd→E 10 00 E→PC 11 00 当CY=1或Z=1时,E→PC 功 能 0 1 0 0 Rs Rd Rs→Rd 0 1 0 1 Rs Rd Rs+Rd+CY→Rd 0 1 1 0 Rs Rd Rs-Rd-CY→Rd 0 1 1 1 Rs Rd Rs∧Rd→Rd 1 0 0 0 00 Rd 0→Rd 1 0 0 1 00 Rd Rd+1→Rd 1 0 1 0 00 Rd Rd→Rd 1 0 1 1 00 Rd CY→Rd 1 1 0 0 00 Rd CY→Rd 1 1 0 1 00 Rd I/O→Rd OUT Rd,I/O 1 1 1 0 00 Rd Rd→I/O HALT 1 1 1 1 00 00 停机
图5-1复杂模型机微程序流程图
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码,并将二进制代码表转换成十六进制格式文件。
M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13 M12 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 E/M IP MWR R/M 目的编码 OP M CN S2 S1 S0 Icz Ids 源编码 XP W ALU Iu IE IR 源编码
M10 M9 X2 1 1 1 1 0 0 0 0 X1 1 1 0 0 1 1 0 0 M8 X0 1 0 1 0 1 0 1 0 功能 禁止 ALU SP IOR MRD XRD RRD PC
目的编码
M19 M18 M17 O2 1 1 1 1 0 0 0 0 O1 1 1 0 0 1 1 0 0 O0 1 0 1 0 1 0 1 0 功能 禁止 MAR BX AX SP IOW XWR RWR
实验所用的机器指令程序:
地址 指令代码 助记符 IN R0 IN R2 ADC R0,R2 MOV R1,R0 RLC R0 功能 IOL→R0 IOL→R2 R0+R2→R0 R0→R1 RLC R0 BZC 000H 停机 000 D0 001 D2 002 58 003 41 004 C0 005 0C 00 00 BZC 000H 008 F0 HALT
四、实验方法
㈠键盘操作
⑴首先卸去实验连接,然后按如下操作,把系统工作方式设为“微控/在线”。 在待命状态0下按【减址】键,LCD显示器显示工作模式选项:
Dais-CMX16+ ’XXX KLD MUD PLD
选择手动模式
按【增址】键,将光标移到“MUD”微程序模式,按【减址】键确定后,系统先询问用户是否使用搭接方式,按【增址】键选择“y”(搭接)或“n”(在线),按【减址】键确定:
Dais-CMX16+ ’mud lst y/n I/O y/n 是,选择搭接方式,须连线
Dais-CMX16+ ’mud lst y/n I/O y/n 否,选择在线方式,零连线
接着系统询问用户是否使用扩展I/O方式,按【增址】键选择“y”(扩展I/O)或“n”(微控制器关联),按【减址】键确定:
Dais-CMX16+ ’mud lst y/n I/O y/n 是,扩展I/O方式
Dais-CMX16+ ’mud lst y/n I/O y/n 否,选择微控制器关联方式
确定设置后,系统返回待命状态0。
Dais-CMX16+ ’mud M 设置完毕,返回待命状态
⑵机器程序与对应的微控制程序的写入:
在待令状态下,键入数字键“4”(复杂模型机代号),然后再键入【减址】命令键,实验装置自动装载由数字键定义的模型机机器程序及对应的微程序,装载完毕自动返待令态。
⑶运行程序
①单拍运行:每按一次【单拍】按钮模型机运行一拍,系统提供可变时序,非“取指”微周期它的节拍按→T1→T3→T4→ 次序循次序循环,在取指微周期按→T1→T2→T3→T4→ 环。
②微单步:每按一次【单步】命令键运行一条微指令,对照微程序流程,观察微址是否和流程一致。对照微指令表,观察执行结果是否和理论值一致。
③宏运行(指令单步或宏调用):每按动一次【宏运】命令键,运行一条机器指令。对照机器指令程序,观察PC地址是否和流程一致。
④程序运行与暂停:按动【运行】命令键使模型机进入实时运行状态;在实时运行状态按左下方任一数字键即可暂停模型机程序的运行,以便实验者查看模型机现场。
㈡联机运行
双击桌面“Dais-CMX 集成开发环境”图标进入联机模式
在联机状态下,首先应打开mxj4.asm(复杂模型机机器指令及对应微指令代码文件),然后点击工具栏“装载”按钮开始装载,如源程序无语法错误即可完成装载,进入调试状态。可点击工具栏快捷按钮,详细操作如下:
? 单节拍:单击菜单“运行 → 单拍运行微指令”命令或单击工具栏“单拍”按钮,
以单节拍方式按T1~T4顺序逐步运行微程序。 ? 单周期:单击菜单“运行 → 单步运行微指令”命令或单击工具栏“微单步”按钮,
相关推荐: