logo资料库

广州大学2019年计算机组成课程设计.doc

第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
资料共25页,剩余部分请下载后查看
计组实验报告 计组课程设计 课程设计报告 学院: 广州大学计算机科学与网络工程学院 专业班级: 计算机科学与技术专业 184 班 姓名: 学号: 指导老师: 第 1 页1
计算机组成原理程序设计 目录 一. 课程设计性质、目的、任务……………………………….....…3 二. 课设基本理论…………………………………………………....3 三. 课程设计题目………………...……...………………………….3 四. 数据格式定义……………………………………………………5 五. 模型机指令系统…………………………………………………6 六. 微程序流程图…………………………………………….………11 七.微指令表………………………………………………….…………12 八.验证程序..........................................................……..... …..…...........15 九.实验结果及分析...............................................….....….......…..........24 十.参考资料......................................................….....….....…..............25 第 1 页- 2 -
计组实验报告 一、本课程设计的性质、目的、任务 《计算机组成与系统结构课程设计》是计算机学院各专业集中实践性环节之一,是学习 完《计算机组成与系统结构》课程后进行的一次全面的综合练习。其目的是综合运用所学计 算机原理知识,设计并实现一台模型计算机,以便巩固所学的知识,提高分析问题和解决问 题的能力。 二、本课程设计的基本理论 1、掌握算术、逻辑、移位运算实验,熟悉 ALU 运算控制位的运用。 2、掌握存储器组织、读写方式及与总路线组成的数据通路,掌握地址总线、数据总线 的工作原理。 3、掌握指令结构和指令取指、执行工作过程。 4、掌握 CPU 的微程序控制原理。 三、题目 综合运用所学计算机原理知识,设计并实现具有以下 16 条指令的指令集结构的模型计算机: 编 号 0 1 2 3 4 5 6 7 8 9 助记符 机器指令码 说明 SUB Rd,Rs 0000 RdRs ( 600H) ADD Rd,Rs 0001 RdRs ( 620H) Rd-Rs→Rd Rd+Rs→Rd AND Rd,Rs 0010 RdRs (640H) Rd&Rs→Rd (Rd 和 Rs 相与) DEC Rd CLR Rd RL RR Rd Rd 0011 Rd00 (660H) 0100 Rd00 (680H) 0101 Rd00 (6A0H) 0110 Rd00 (6C0H) 将 Rd 值减 1 将 Rd 清零 Rd 循环左移一位 Rd 循环右移一位 MOV Rd,Rs 0111 RdRs (6E0H) Rs→Rd LDI Rd,* 1000 Rd00 XXXX XXXX (700H) 将指令中的立即数(第二字 节)送入 Rd OUT IOH,Rs 1001 00Rs (720H) Rs→I/O(数据开关)高字节 10 LDA Rd,M 1010 Rd00 XXXXXXXX XXXXXXXX(740H) [M] →Rd (400h) 11 STA M,Rs 1011 00Rs XXXX(760H) XXXX XXXX XXXX Rs→[M] (408H) 12 JMP M 1100 0000 XXXXXXXX XXXXXXXX(780h) [M]→PC,即跳转到 M 所指单 元(410H) 13 JZ M 14 JC M 1101 0000 XXXXXXXX XXXXXXXX(7A0) 当 Z=1 时,跳转到 M 所指单元 1110 0000 XXXXXXXX XXXXXXXX(7C0H) 当 CY=1 时,跳转到 M 所指单 15 HALT 1111 0000 元 (7E0H) 停机
设计提示: 1、上表中,机器指令码的高 4 位为指令操作码,M 为 16 位存储器地址, Rs 为源寄存器, Rd 为目的寄存器,占 2 位,并规定: 计组实验报告 Rs 或 Rd 选定的寄存器 00 01 10 11 R0 R1 R2 R3 2、在微程序中,微地址 001 为取指,微指令为 BF FB F8。 3、各指令指行阶段微程序入口地址的确定方式: 微地址位号 内容 10 1 9 1 8 7 6 5 IR7~IR4 4 0 3 0 2 0 1 0 0 0 例如,第 5 条指令”RL Rd” 的指令码为 0101 Rd00 则指令码的高 4 位 IR7~IR4 为 0101, 由上表知,微程序入口微地址为: 11 0101 00000 ,即 6A0H。 4、主要步骤: (1)按照第 3 点的方法,给出所有 16 条指令的微程序入口微地址; (2)通过分析每条指令的功能明确其的微程序流程,可参考实验指导书图 3-4-1、图 3-2-2、 图 3-3-1; (3)写出每条微指令的微命令,即 24 个微控制位信号,可参考实验指导书表 3.4.1、表 3.2.1、 表 3.3.1 和“微控制器编程手册”第 2 章。 (4)建议采用逐条指令设计实现的方式,一条实现并用汇编语句测试通过后(指令功能、 下址顺序均正确)再进行下一条的设计。 5、检查 模型计算机设计完成后,用所给的测试程序 check_1.asm(测 12 条非转移指令)和 check_2.asm(测 3 条转移指令)检查正确性。检查方法:在测试程序中#load s 本人的.IS 微 指令程序,实验箱电源关闭重启并连接,装载后选择“运行”或“单步”执行。 check_1.asm 运行的正确结果为:寄存器 R0R1R2R3 分别显示 00112233,IOH 显示 33。 check_2.asm 运行的正确结果为:寄存器 R0R1R2R3 分别显示 00112233,如果显示 EE 则执行有错误。 check1.asm 程序的运行结果 第 4页 check2.asm 程序的运行结果
我的程序自测的效果如下: 计组实验报告 check1.asm 程序的运行结果 check2.asm 程序的运行结果 四、数据格式定义 1.数据格式 按照模型机规定采用定点补码表示数据,且字长为 8 位,格式如下 7 符号 6 5 3 4 2 尾 数 1 0 其中第 7 位为符号位,数值表示范围是:-1<=X<1。 指令格式 算术逻辑指令 设计 9 条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下: 7 6 5 4 3 2 OP-CODE Rs 1 0 Rd 其中,OP-CODE 为操作码,Rs 为源寄存器,Rd 为目的寄存器,并规定: Rs 或 Rd 选定的寄存器 00 01 10 11 R0 R1 R2 R3 ⑵ 访问指令及转移指令 模型机设计 2 条访问指令,即存数(STA)、取数(LDA),指令格式为: 3 2 2OP-COD E 1 0 Rd 7 0 6 5 4 0 M D(低八) D(高八) 第 5页
其中“0 0 M ”为源码段,2OP-CODE 为目的码段(LDA、STA 指令使用)。D 为十六位地址 段(低八在前,高八随后),M 为源寻址模式,其定义如下: 计组实验报告 寻址模式 M 00 01 10 11 有效地址 E 说 明 E = D E = (D) E = (SP)+D E = (PC)+D 直接寻址 间接寻址 SP 变址寻址 相对寻址 ⑶ I/O 指令 输入(IN)和输出(OUT)指令采用单字节指令,其格式如下: ⑷ 停机指令 指令格式如下: 7 6 5 4 OP-CODE 7 6 5 4 OP-CODE 3 2 0 0 3 2 0 0 1 0 Rd 1 0 0 0 HALT 指令,用于实现停机操作。 五、模型机指令系统 1.各指令的微程序入口地址和微程序: 编 号 0 助记符 机器指令码 说明 0000 RdRs Rd-Rs→Rd SUB Rd,Rs 微程序入口 微程序 地址 600 600: F8 F9 7F 601:FA F9 FF 602:F0 6E 6D 1 ADD Rd,Rs 0001 RdRs Rd+Rs→Rd 620 620:F8 F9 7F 2 AND Rd,Rs 0010 RdRs Rd&Rs→Rd (Rd 和 Rs 相与) 640 第 6页 621:FA F9 FF 622:F0 66 6D 640:F8 F9 7F
3 DEC Rd 0011 Rd00 将 Rd 值减 1 4 5 CLR Rd RL Rd 0100 Rd00 将 Rd 清零 0101 Rd00 Rd 循环左移一位 6 RR Rd 0110 Rd00 Rd 循环右移一位 7 8 MOV Rd,Rs 0111 RdRs Rs→Rd LDI Rd,* 1000 XXXXXXXX Rd00 将指令中的立即数(第二字 节)送入 Rd 计组实验报告 641:FA F9 FF 642:F0 66 6D 660 660:F8 F9 5F 661:F0 D6 4D 680 6A0 680:F0 DE 4D 6A0: F8 F9 7F 6A1:F0 76 6D 6C0 6C0: F8 F9 7F 6E0 700 6C1:F0 7E 6D 6E0:F0 F9 ED 700:F0 FB FF 701:BF FF ED 9 OUT IOH,Rs 1001 00Rs Rs→I/O(数据开关)高字节 720 720:F5 F9 ED 10 LDA Rd,M 11 STA M,Rs 12 JMP M 13 JZ M 14 JC M 1010 XXXXXXXX XXXXXXXX 1011 XXXXXXXX XXXXXXXX 1100 XXXXXXXX XXXXXXXX 1101 XXXXXXXX XXXXXXXX 1110 XXXXXXXX XXXXXXXX Rd00 [M] →Rd 740 740:FA FB FF 741:BB FB FF 742:BC C6 3D 743:70 FB ED 00Rs Rs→[M] 760 760:FA FB 7F 0000 [M]→PC,即跳转到 M 所指单 元 0000 当 Z=1 时,跳转到 M 所指单 元 761:BB FB FF 762:BC C6 3F 763:5F F9 AD 780 780:FA FB DF 781:BB FB DF 782:3F C6 0D 7A0 7A0:FA FB FF 7A1:BB FB FF 7A2:BF FF FC 764:FF FF ED 765:3F C6 2D 0000 当 CY=1 时,跳转到 M 所指单 元 7C0 7C0:FA FB FF 7C1:BB FB FF 第 7页
计组实验报告 7C2:BF FF F4 7C4:FF FF ED 7C5:3F C6 2D 7E0 7E0:F8 F8 3F 7E1:3F D6 2D 15 HALT 1111 0000 停机 2. 设计的模型机指令系统 ;移位模型机指令系统 ;助记符 操作数 ;------------------------------------------------------------------- ;原来使用 IN 代替 LDI 功能,实现交互式数据传输到 4 个寄存器,指令码规定有限,只能 有 16 个操作,所以去掉了 IN ;以下按照老师给的任务顺序实现 ;IN ;IN ;IN ;IN ;将 IOL 数据读出到寄存器 R0 ;将 IOL 数据读出到寄存器 R1 ;将 IOL 数据读出到寄存器 R2 ;将 IOL 数据读出到寄存器 R3 R0,IOL R1,IOL R2,IOL R3,IOL 指令码 长度 A0 A1 A2 A3 1 1 1 1 SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB ADD ADD ADD ADD ADD ADD ADD R0,R0 R0,R1 R0,R2 R0,R3 R1,R0 R1,R1 R1,R2 R1,R3 R2,R0 R2,R1 R2,R2 R2,R3 R3,R0 R3,R1 R3,R2 R3,R3 R0,R0 R0,R1 R0,R2 R0,R3 R1,R0 R1,R1 R1,R2 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相减 ;将 2 个寄存器相加 ;将 2 个寄存器相加 ;将 2 个寄存器相加 ;将 2 个寄存器相加 ;将 2 个寄存器相加 ;将 2 个寄存器相加 ;将 2 个寄存器相加 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 第 8页
分享到:
收藏