计算机组成原理与系统结构课程设计.doc_第1页
计算机组成原理与系统结构课程设计.doc_第2页
计算机组成原理与系统结构课程设计.doc_第3页
计算机组成原理与系统结构课程设计.doc_第4页
计算机组成原理与系统结构课程设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 1 计算机组成原理与系统结构计算机组成原理与系统结构 课程设计课程设计 班级学号 班级学号 0137 2 80137 2 8 学生姓名 学生姓名 李李 乐乐 指导老师 指导老师 王王 森 陈森 陈 媛媛 计算机科学与工程学院计算机科学与工程学院 2005 年年 1 月月 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 2 目目 录录 一 课程设计的目的一 课程设计的目的 3 二 模型机的设计步骤二 模型机的设计步骤 3 三 实验装置三 实验装置 4 四 设计题目四 设计题目 4 题目一 4 题目二 4 题目三 4 题目四 4 五 课程设计心得五 课程设计心得 4 六 附录六 附录 4 附录 1 数据通路 4 附录 2 系统连线参考图 4 附录 3 微指令格式 42 七 参考文献七 参考文献 22 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 3 一 课程设计的目的一 课程设计的目的 通过对一个简单计算机的设计 对计算机的基本组成 部件的设计 部件间的连接 微程序控制器的设计 微指令和微程序的编制与调试等过程有更深的了解 加深对理论课 程的理解 二 模型机的设计步骤二 模型机的设计步骤 设计一台完整的计算机 大致需按如下的顺序来考虑 1 确定设计目标确定设计目标 确定所设计计算机的功能和用途 2 确定指令系统确定指令系统 确定数据的表示格式 位数 指令的编码 类型 需要设计哪些指令及使用的寻址方 式 并给出具体的编码 比如指令的操作码 地址码等的位数及各种编码的含义 3 确定总体结构确定总体结构 寄存器 加法器 选择器的设置与数据通路的设计 总体结构设计包含确定各部件设置以及它们之间的数据通路结构 在此基础上 就可 以拟出各种信息传输路径 以及实现这些传输所需要的微命令 对于部件设置 比如要确定运算器部件采用什么结构 控制器是微程序控制还是硬联 控制等 综合考虑计算机的速率 性能价格比 可靠性等要求 设计合理的数据通路结构 确 定采用何种方案的内总线及外总线 数据通路不同 执行指令所需要的操作就不同 计算 机的结构也就不一样 4 设计指令执行流程设计指令执行流程 数据通路确定后 就可以设计指令系统中每条指令的执行流程 根据指令的复杂程度 确定每条指令所需要的机器周期数 对于微程序控制的计算机 根据总线结构 需考虑哪些微操作可以安排在同一条微指令中 哪些微操作不能安排在同 一条微指令中 5 确定微程序地址确定微程序地址 确定后续微地址的形成方法 确定每个微程序地址及分支转移地址 6 微指令代码化微指令代码化 根据微指令格式 将微程序流程中的所有微指令代码化 首先写出每个微地址以及该 地址对应的微指令代码 共 24 位二进制信息 如下表所示 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 4 微地址S3 S2 S1 S0 M CN WE A9 A8ABC UA5 UA0 0 00 0 0 0 0 0 0 1 10 0 00 0 01 0 00 1 0 0 0 0 0 10 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 0 1 0 0 20 0 0 0 0 0 0 0 11 0 00 0 00 0 10 0 1 0 0 0 0 30 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 0 1 0 0 其中 微地址表示控制存储器的地址 后面的 24 位表示微指令 然后将每个微地址和对应的微指令转换成 16 进制 并写在一行 格式为 M 前面 2 个 表示该微指令的在微控制器中的地址 后面 6 个 表示该微指令代码 如上述表中的四条微指令写成 M00018110 表示在控制存储器地址 00h 处的代码是 018110h M0101ED82 表示在控制存储器地址 01h 处的代码是 01ED82h M0200C048 表示在控制存储器地址 02h 处的代码是 00C048h M0300E004 表示在控制存储器地址 03h 处的代码是 00E004h 7 编写工作程序并代码化编写工作程序并代码化 编写测试用的工作程序 并写出内存映像 用二进制表示 然后代码化用 16 进制来表 示 格式为 P 前面 2 个 表示该内存的地址 后面 2 个 表示该地址的数 据 例如 P0044 表示在内存地址 00h 处的数据是 44h P0146 表示在内存地址 01h 处的数据是 46h 8 联机操作文件的建立联机操作文件的建立 为了从 PC 机下载工作程序和微程序 需要建立联机操作文件 该文件是普通的文本文 件 扩展名为 TXT 可用记事本来建立的 要求 a 测试用的工作程序排在文件的前面 每个内存地址及代码占一行 b 微指令代码排在文件的后面 每个微地址及微指令代码占一行 例如 下面是一个实验的文件 文件名 sample txt P0044 P0146 P0298 M00018108 M0101ED82 M0200C050 9 连接实验线路 连接实验线路 根据附录 2 的实验线路图连接实验线路 其中第 1 题和第 2 题用图 1 简单模型机的 连线图 连线 第 3 题和第 4 题用图 2 复杂模型机的连线图 连线 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 5 10 下载工作程序和微程序 下载工作程序和微程序 使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中 其中 自带 电源线的实验箱用 NCMP53 软件 启动软件后使用 F4 装载 进行下载 外接电源线的实验 箱用 CMPP 软件 启动软件后在菜单中选择 转储 装载 进行下载 11 调试 调试 在总调试前 先按功能模块进行组装和分调 因为只有各功能模块工作正常后 才能 保证整机的正常运行 可以使用控制台命令 SWA SWB 的不同取值 或使用联机软件检 查内存程序是否正确 微程序是否正确 当所有功能模块都调试正常后 进入总调试 可以使用单步微指令方式执行工作程序 也可以直接使用连续方式执行程序 在执行过程中 可以通过联机软件的数据通路图查看 信息在计算机中的传送路径 更有利于掌握数据的通路结构 这样也可以直接验证程序和 微程序的正确性 如果运行结果不正确 需要返回来修改程序或微程序 每次修改后 需要重新完成第 10 步 将程序和微程序下载到实验箱中 三 实验装置三 实验装置 TDN CM 计算机组成原理教学实验系统一台 排线若干 四 设计题目四 设计题目 题目一 题目一 1 实验要求 设计一台模型计算机 实现下列指令系统 并通过给定的工作程序验证上述指令系统 本设计实现的模型机共包含五条机器指令 IN 输入 ADD 加法 STA 存数 OUT 输出 JMP 无条件转移 其指令格式如下 前 4 位为操作码 助记符机器指令码 二进制 说明微程序的入口地址 八进制 IN00000000 INPUT DEVICE 中 的开关状态 R0 10 取指令后续微指 令默认地址为 10 ADD addr00010000 XXXXXXXXRO addr R011 STA addr00100000 XXXXXXXXRO addr 12 OUT addr00110000 XXXXXXXX addr LED13 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 6 JMP addr01000000 XXXXXXXXaddr PC14 其中 IN 为单字长 8 位 其余为双字长指令 XXXXXXXX 为 addr 对应的二进制地址码 2 在测试程序装入内存后 机器自动执行控存中 00 号的微指令 产生控制台命令 其流 程如下 01 为取指微指令的地址 3 根据附录 2 的图 1 简单模型机的连线图 连接实验线路 4 本设计的工作程序的内存映象 装入起始地址 00H 如下 地址 二进制 内容 二进制 助记符说 明十六进制代码 0000 00000000 0000IN 将输入数据送 R0 寄存器 0000 0000 00010001 0000ADD OAH 0110 0000 00100000 1010RO 0AH R0020A 0000 00110010 0000STA 0BH 0320 0000 01000000 1011R0 0BH 040B 0000 01010011 0000OUT 0BH 0530 0000 01100000 1011 0BH LED060B 0000 01110100 0000JMP 010740 0000 10000000 000101H PC0801 0000 10100000 0001 输入自定的数据 0A01 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 7 5 本设计的程序流程图如下 6 微程序 主要 ADD 部分 微地址S3 S2 S1 S0 M CN WE A9 A8ABC UA5 UA0 后续地址 十六进制代码 0 30 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 0 1 0 00300E004 0 40 0 0 0 0 0 0 0 10 1 10 0 00 0 00 0 0 1 0 10400B005 0 50 0 0 0 0 0 0 1 10 1 00 0 10 0 00 0 0 1 1 00501A206 0 61 0 0 1 0 1 0 1 10 0 11 0 10 0 00 0 0 0 0 106959A01 0 90 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 0 1 10901ED83 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 8 分析 程序思想如下 首先将输入数据送 R0 寄存器 然后送到 ALU 单元执行 ADD 操作 加法完成后将结果再送到 R0 寄存器 然后 STA 跳转 将 R0 寄存器的数据送到 0BH 然后 送显示器显示 送显后立即 JMP 指令回到微程序的 01 步 即继续执行 ADD 加法 一直循环 微程序中 当 A9 0 A8 0 时 选中 Y0 当 A9 0 A8 1 时 选中 Y1 当 A9 1 A8 0 时 选中 Y2 当 A9 1 A8 1 时 选中 Y3 微指令解释 指令中 S3 CN 为全 0 表示不执行任何运算操作 A9 A8 如开始解释 的表示选择外设 均为 1 表示选中扩展单元 EX UNIT 的 Y3 而根据实验接线图可知 Y3 表示不做任何操作 A B C 字段为根据实验线路图中起作用的单元 从 09 开始 A B C 分别为 110 110 110 表示 LDAR PC B LDPC 有效 附录图 3 根据数据 通路图 即是 PC AR PC 并自动 1 UA5 UA0 为 000011 即下址为下一条微指令地 址 03H 09 执行完后根据下址到达 03 其中 A9 A8 为 01 即是选中 Y1 Y1 与 WE 相连 表示存储器工作 即 RAM BUS AR 后续地址为 04H 04 指令中 A B C 字段分别 为 011 000 000 表示 LDDR2 有效 即表示将内存中的数据传送到 DR2 寄存器中 RAM BUS DR2 后续地址为 05H 05 这条指令的 A B C 字段为 010 001 000 即 是 LDDR1 RS B 有效 表示叫 R0 的数据传送到 DR1 寄存器中 R0 DR1 后续地址为 06H 06 指令既为 ADD 运算 S3 CN 为 100101 A B C 字段为 001 101 000 即 LDRi ALU B 逻辑运算单元有效 执行运算操作 将 DR1 和 DR2 中的数据相加 完成后 将结果传送到 R0 DR1 DR2 R0 即完成了一次加法操作 ADD 指定完成后有 JMP 跳转到 01H 一直循环进行加法运算 微指令代码如下 M00018110 M0700E00D M0E00E00F M15070A01 M0101ED82 M08001001 M0F00A015 M1600D181 M0200C048 M0901ED83 M1001ED92 M17070A10 M0300E004 M0A01ED87 M1101ED94 M18068A11 M0400B005 M0B01ED8E M1200A017 M0501A206 M0C01ED96 M13018001 M06959A01 M0D028201 M14002018 7 测试数据 FEH 结果为 FE FF 00 01 FE FF 00 一直循环 每次加 1 8 结果分析 ADD 执行的是不产生进位的加法 所以实验结果只是每次在原来的数据上 加 01H 不产生进位加 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 9 题目二 题目二 实验要求 设计一台模型计算机 实现下列指令系统 并通过下列工作程序验证上述指令系统 本模型机共包含五条机器指令 IN 输入 ADD 加法 STA 存数 OUT 输出 JMP 无条件转移 其指令格式如下 前 4 位为操作码 助记符机器指令码说明微程序的入口地址 八进制 IN00000000 INPUT DEVICE 中 的开关状态 R0 10 取指令后续微指令 默认地址为 10 ADC Imm00010000 XXXXXXXXRO Imm cy R011 STA addr00100000 XXXXXXXXRO addr 12 OUT addr00110000 XXXXXXXX addr LED13 JMP addr01000000 XXXXXXXXaddr PC14 其中 IN 为单字长 8 位 其余为双字长指令 XXXXXXXX 为 addr 对应的二进制地址 码或 Imm 所对应的二进制数据 补码形式 连接实验线路在测试程序装入内存后 机器自动执行控存中 00 号的微指令 产生控制 台命令 其流程如下 01 为取指微指令的地址 根据附录 2 的图 1 简单模型机的连线图 连接实验线路 本设计实现的模型机共包含五条机器指令 IN 输入 ADC 带进位加法 STA 存数 OUT 输出 JMP 无条件转移 本设计的工作程序的内存映象 装入起始地址 00H 如下 地址 二进内容 二进制 助记符说 明十六进制代码 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 10 制 0000 00000000 0000IN 将输入数据送 R0 寄存器 0000 0000 00010001 0000ADC O1H0110 0000 00100000 0001RO 01H cy R00201 0000 00110010 0000STA 0AH 0320 0000 01000000 1010R0 0AH 040A 0000 01010011 0000OUT 0AH 0530 0000 01100000 1010 0AH LED060A 0000 01110100 0000JMP 010740 0000 10000000 000101H PC0801 0000 10100000 0001 输入自定的数据 0A01 本设计的程序流程图如下 微程序解释 主要解释 ADC 微地址S3 S2 S1 S0 M CN WE A9 A8ABC UA5 UA0 后续地址 十六进制代码 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 11 0 40 0 0 0 0 0 0 0 10 1 10 0 00 0 00 0 0 1 0 10400B005 0 50 0 0 0 0 0 0 1 10 1 00 0 10 0 00 0 0 1 1 00501A206 0 61 0 0 1 0 1 0 1 10 0 11 0 11 0 10 0 0 0 0 106959B41 0 90 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 1 0 00901ED84 分析 程序的思想如下 首先将输入数据送 R0 寄存器 然后送 ALU 单元执行 ADC 操作 ADC 为带进位的加法 所以结果是在 ADD 的基础上又多加了一个 CY 进位标志 ADC 完成后结果送到 R0 寄存器 然后 STA 跳转 将 R0 寄存器的数据送到 0AH 然后送显示器 显示 送显后立即 JMP 指令回到微程序的 01 步 即回到 ADC 继续执行带进位的加法 一直 循环 微程序中 当 A9 0 A8 0 时 选中 Y0 当 A9 0 A8 1 时 选中 Y1 当 A9 1 A8 0 时 选中 Y2 当 A9 1 A8 1 时 选中 Y3 微指令解释 指令中 S3 CN 为全 0 表示不执行任何运算操作 A9 A8 表示选择外 设 均为 1 表示选中扩展单元 EX UNIT 的 Y3 即为不做任何操作 从 09 开始 A B C 字段分别为 110 110 110 表示 LDAR PC B LDPC 有效 附录 3 说明 根 据数据通路图 即是 PC AR PC 并自动 1 后续地址为 04H 04 为送数 A B C 字段分别为 011 000 000 表示 LDDR2 有效 即表示将内存中 的数据传送到 DR2 寄存器中 RAM BUS DR2 后续地址为 05H 05 中的 A B C 字段为 010 001 000 即是 LDDR1 RS B 有效 表示将 R0 中的 数据传送到 DR1 寄存器中 R0 DR1 后续地址为 06H 06 指令为 ADC 加法指令 其中 S3 CN 为 100101 即执行带进位加法运算 A B C 字段为 001 101 101 即为选中 LDRi ALU B AR 在 ALU 单元中将 DR1 和 DR2 中的数据相加并将结果输出到 R0 中 同时 AR 置 0 DR1 DR2 R0 AR 0 后续地址为 01H ADC 运算完成 微指令中 cn 为控制信号 当 cn 1 并且 ar 0 时 把上次运行结果带入下次运算 当 cn 0 屏蔽上次运行结果 不带入下次运算 所有微指令代码如下 M00018110 M0700E00D M0D028201 M13018001 M0101ED82 M08001001 M0E00E00F M14002018 M0200C048 M0901ED84 M0F00A015 M15070A01 M0400B005 M0A01ED87 M1001ED92 M1600D181 M0501A206 M0B01ED8E M1101ED94 M17070A10 M06959B41 M0C01ED96 M1200A017 M18068A11 测试数据 FEH 结果为 FE FF 00 02 03 04 FF 00 02 做循环加法 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 12 结果分析 本程序执行的是产生进位的加法 测试数据中 FF 01 后会产生进位 控制 信号 CN 1 AR 0 把上次运行结果带入下次运算 进位产生的 01 就自动带入到下次 运算中 最后结果为 00 01 02 题目三 题目三 1 实验要求 设计一台模型计算机 实现下列指令系统 并用指定的工作程序验证上述指令系统 本模型机的指令系统及指令格式如下 前 4 位为操作码 助记符号指令格式功能微程序入口地址 八进制 MOV rs rd 1000Rsrd Rs rd30 ADC rs rd 1001Rsrd Rs rd cy rd31 BZC 00000000 D 当 cy 1 或 z 1 时 D PC 否则 顺序执行 20 取指令后续微指 令默认地址为 20 IN rd 010001Rd Input Device rd24 OUT rd 010110Rd Rd Output Device25 HLT 01100000 停机 26 其中 rs 为源寄存器 rd 为目的寄存器 并规定 Rs 或 rd选定的寄存器 00 01 10 R0 R1 R2 2 连接实验线路在测试程序装入内存后 机器自动执行控存中 00 号的微指令 产生控制 台命令 其流程如下 01 为取指微指令的地址 3 根据附录 2 的图 2 复杂模型机的连线图 连接实验线路 4 本设计实现的模型机共包含五条机器指令 IN 输入 ADC 带进位加法 MOV 移动 BZC 条件转移 OUT 输出 HLT 停机 本设计的工作程序的内存映象 装入起始地址 00H 如下 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 13 地址 二进制 内容 二进制 助记符说 明十六进制代码 0000 00000100 0100IN 将输入数据送 R0 寄存器 0044 0000 00010100 0110IN 将输入数据送 R2 寄存器 0146 0000 00101001 1000ADCRO 01H cy R00298 0000 00111000 0001MOVR0 R10381 0000 01000101 1001R1 LED0459 0000 01010000 0000BZC0500 0000 01100000 001002 D0602 0000 01110110 0000HLT 停机 0760 5 本设计的程序流程图如下 6 微程序解释 以 BZC 为例 微地址S3 S2 S1 S0 M CN WE A9 A8ABC UA5 UA0 后续地址 十六进制代码 0 30 0 0 0 0 0 0 0 10 1 00 0 00 1 11 0 0 0 0 00300A023 1 00 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 0 1 11001ED83 2 00 0 0 0 0 0 0 1 10 0 00 0 00 0 00 0 0 0 0 120009001 3 00 0 0 0 0 1 0 1 11 0 11 0 11 1 00 0 0 0 0 13005DB81 分析 程序的思想如下 此程序是输入两个数据相加 首先将输入一个数到 R0 寄存器 然后 输入另外一个到 R2 寄存器 完成后将时局送 ALU 单元执行 ADC 操作 ADC 为带进位的 加法 所以结果是在 ADD 的基础上又多加了一个 CY 进位标志 ADC 完成后结果送到 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 14 R0 寄存器 然后 MOVE 命令将 R0 中的数送到 R1 然后送显示器显示 接着 BZC 跳转 判断 是否循环执行 如 ADC 加法中产生了进位 CY 1 则送显后立即 JMP 指令回到微程序的 01 步 即回到 ADC 继续执行带进位的加法 一直循环 否则停机 微程序中 当 A9 0 A8 0 时 选中 Y0 当 A9 0 A8 1 时 选中 Y1 当 A9 1 A8 0 时 选中 Y2 当 A9 1 A8 1 时 选中 Y3 微指令解释 根据流程图以 10H 的指令开始 A9 A8 为 1 1 即为选中 Y3 不做任 何操作 A B C 字段为 010 000 011 表示 LDAR PC B LDPC 有效 附录图 3 说 明 即是 PC AR PC 1 后续地址为 03H 03 指令中 A9 A8 为 0 1 为选中 Y1 Y1 与 WE 相连表示存储器工作 A B C 字 段为 010 000 011 表示选中 LDDR1 和 P 3 P 3 为进行判断 若有进位则后续地 址为 30H 没有则后续地址为 20H 30 指令中 A B C 字段为 101 101 110 表示 LOAD ALU B LDPC 有效 将 DR1 中的数据输入到 PC 中 即 DR1 BUS PC 后续地址为 01H 继续执行 ADC 所有微指令代码如下 M00018108 M1001ED83 M1901A22A M2D65AB6E M0101ED82 M14001001 M20009001 M3405DB81 M0200C050 M15030401 M230180E4 M0300A023 M16018016 M24018001 M0400E0A0 M18019201 M2C01A42D 7 测试数据 第一组 R0 FEH R2 01H 第二组 R0 FFH R2 01H 结果为 第一组 FF 第一组 02 8 结果分析 两组数据主要是有进位与没有进位之间的差别 第一组数据 FE 01 FF R0 和 R1 中的数据相加后没有产生进位 因此 CY 0 Z 0 输出结果后 BZC 指令就会直接跳转到 HLT 执行停机操作 使程序终止 第二组数据为 FF 01 结果为 00 产生一个进位 因此 CY 1 Z 1 BZC 的条件成立 跳转到 02 继续指 令执行 并且 ADC 会将上次的进位带入相加 所以结果是 00 01 CY 02 继续执行 ADC 到 BZC 时会因为没有产生进位 使程序终止运行 题目四 题目四 1 实验要求 设计一台模型计算机 完成下列指令系统 并编写工作程序验证上述指令系统 本模型机共设计 16 条基本指令 其中算术逻辑指令 9 条 访问内存指令和程序控制指 令 4 条 输入输出指令 2 条 其它指令 1 条 下表列出了各条指令的格式 汇编符号 指 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 15 令功能 类 型 助记符号指令格式功能微程序入口地址 八进制 CLR rd 011100rd 0 rd27 MOV rs rd 1000Rsrd Rs rd30 ADC rs rd 1001Rsrd Rs rd cy rd31 SBC rs rd 1010Rsrd Rs rd cy rd32 INC rd 1011Rd Rd 1 rd33 AND rs rd 1100rsrd Rs rd rd34 COM rd 1101Rd rd rd35 RRC rs rd 1110RsRd cyrs R s rd 36 算 术 逻 辑 指 令 RLC rs rd 1111RsRd cyrs R s rd 37 LDA M D rd 00M00Rd D E rd40 访 存 指 令 STA M D rd 00M01Rd D Rd E41 JMP M D 00M1000 D E PC42 程 序 控 制 指 令 BZC 00M1100 D 当 cy 1 或 z 1 时 E PC 43 IN addr rd 010001Rd Addr rd24 输 入 输 出 OUT addr rd 010110Rd Rd addr25 其 它 HALT 01100000 停机 26 下面对各种指令格式加以说明 1 算术逻辑指令 算术逻辑运算指令共 9 条 用单字节表示 寻址方式采用寄存器直接寻址 格式为 7 6 5 43 21 0 OP CODERsrd 其中 OP CODE 为操作码 rs 为源寄存器 rd 为目的寄存器 并规定 Rs 或 rd选定的寄存器 00R0 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 16 01 10 R1 R2 2 访存指令及程序控制指令 模型机设计两条访存指令 即存数 STA 取数 LDA 两条转移指令 即无条件转移 指令 JMP 结果为 0 或有进位转移指令 BZC 指令格式为 7 65 43 21 0 00MOP CODErd D 其中 OP CODE 为操作码 rd 为目的寄存器地址 LDA STA 指令使用 D 为位移量 正 负均可 M 为寻址模式 其定义为 寻址模式 M有效地址 E说明微程序入口 00 01 10 11 E D E D E RI D E PC D 直接寻址 间接寻址 RI 变址寻址 相对寻址 20 21 22 23 变址寻址寄存器指定为寄存器 R2 3 输入 输出指令 输入输出指令均采取单字节指令 其格式如下 7 6 5 43 21 0 OP CODEaddrrd 其中 addr 01 时 选中 Input Device 中的开关组作为输入设备 addr 10 时 选 中 Output Device 中的数码显示作为输出设备 4 停机指令 用于实现停机操作 2 连接实验线路在测试程序装入内存后 机器自动执行控存中 00 号的微指令 产生控制 台命令 其流程如下 01 为取指微指令的地址 3 根据附录 2 的图 2 复杂模型机的连线图 连接实验线路 4 本设计实现的模型机共包含五条机器指令 IN 输入 CLR 清零 ADC 带进位加法 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 17 SUC 带借位减法 INC 累加 1 AND 逻辑与 COM 取反 MOV 移动 RRC 循环右移 RLC 循环左移 BZC 条件转移 OUT 输出 HLT 停机 本设计的工作程序的内存映象 装入起始地址 00H 如下 地址 二进制 内容 二进制 助记符说 明十六进制代码 0000 00000100 0100IN 将输入数据送 R0 寄存 器 0044 0000 00010100 0110IN 将输入数据送 R2 寄存 器 0146 0000 00101001 1000ADCRO 01H cy R00298 0000 00111000 0001MOVR0 R10381 0000 01001111 1001RLC 带进位左循环移位 R1 结果送到 R1 04F5 0000 01010101 1001OUTR1 LED0559 0000 01100000 1100BZC060C 0000 01100000 001002 D0702 0000 01110110 0000HLT 停机 0860 5 本设计的程序流程图如下 P 1 RAM BUS BUS IR 运行微程序 PC AR PC 1 PC AR PC 1 RAM BUS BUS DR1 RAM BUS BUS AR PC AR PC 1 RAM BUS BUS AR RAM BUS BUS DR1 RAM BUS BUS AR PC AR PC 1 RAM BUS BUS DR1 RI DR2 DR1 DR2 BUS AR DR1 DR2 BUS DR1 PC AR PC 1 RAM BUS BUS DR1 PC BUS BUS DR2 DR1 DR2 BUS AR DR1 DR2 BUS DR1 SW BUS BUS rd 01 rd LED 01 STOP 01 ALU 0 BUS BUS rd 01 rs rd 01 rs BUS BUS DR1 rd BUS BUS DR2 DR1 DR2 BUS rd rs BUS BUS DR2 rd BUS BUS DR1 DR1 DR2 BUS DR1 DR1 rd rd BUS BUS DR1 DR1 1 BUS rd rs BUS BUS DR1 rd BUS BUS DR2 DR1 DR2 BUS rd rd BUS BUS DR1 DR1 BUS BUS rd rs 299 带进位右 循环移位 299 rd rs 299 带进位左 循环移位 299 rd P 1 RAM BUS BUS rd 01 rd BUS BUS RAM 01 DR1 BUS BUS PC 01 P 3 DR1 BUS BUS PC 0101 Y N 01 02 20 2021222324 252627 303132333435 36 37 71 72 70 676663 65 6254 55 56 52 53 03 04 05 06 07 15 16 17 45 46 47 50 51 4040 40 40 40 41 42 43 44 6444 01 01 01 01 01 0101 LADSTAJMPBZC 00 直接 01 间接 10 变址 11 相对 INOUT HLTCLRMOVADCSUC INCAND COMRRCRLC 带进位 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 18 6 微程序 主要 RLC 部分 微地址S3 S2 S1 S0 M CN WE A9 A8ABC UA5 UA0 后续地址 十六进制代码 1 F0 0 1 1 0 0 0 1 10 0 00 0 10 0 01 1 1 0 0 11F318239 3 90 0 0 1 1 0 0 1 10 0 01 0 00 0 01 1 1 0 1 03919883A 3 A0 0 0 0 0 0 0 1 10 0 11 0 00 0 00 0 0 0 0 13A019801 分析 程序的思想如下 此程序是输入两个数据相加 并左移一位的操作 首先将输入一个 数到 R0 寄存器 然后输入另一个数到 R2 寄存器 完成后将数送 ALU 单元执行 ADC 操作 ADC 为带进位的加法 所以结果是在 ADD 的基础上又多加了一个 CY 进位标志 ADC 完成后结果送到 R0 寄存器 然后 MOVE 命令将 R0 中的数送到 R1 在 R1 进行一次左移操作 先送数到 299 执行一次左移后将数传回 后再将数送存到 R1 然后送显示器显示 接 着 BZC 跳转 判断是否循环执行 如 ADC 加法中产生了进位 CY 1 则送显后立即 JMP 指 令回到微程序的 01 步 即回到 ADC 继续执行带进位的加法 一直循环 如没有产生进位 则停机 微程序中 当 A9 0 A8 0 时 选中 Y0 当 A9 0 A8 1 时 选中 Y1 当 A9 1 A8 0 时 选中 Y2 当 A9 1 A8 1 时 选中 Y3 微指令解释 ADC 加法完成后会执行微地址 1FH 的指令 S3 CN 为 001100 A B C 字段为 000 001 000 即选择 RS B 有效 表示将 R1 的数据送到 299 后续地址为 39H 39H 指令中 S3 CN 为 000110 A B C 字段为 000 100 000 为 299 B 有效 执行循环左移运算 后续地址为 3AH 3AH 指令的 A B C 字段为 001 100 000 表示选中 LDRI 299 B 有效 将 299 单元中循环左移后所得的结果送到 R1 299 R1 至此 RLC 指令完成 剩下程序会将结果送显继续执行 所有微指令代码如下 M00018108 M0E01B60F M1E318237 M2C01A42D M3A019801 M0101ED82 M0F95EA25 M1F318239 M2D65AB6E M3B070A08 M0200C050 M1001ED83 M20009001 M2E0D9A01 M3C068A09 M0300A004 M1101ED85 M21028401 M2F01AA30 M0400E0A0 M1201ED8D M2205DB81 M300D8171 M0500E006 M1301EDA6 M230180E4 M31959B41 M0600A007 M14001001 M24018001 M32019A01 M0700E0A0 M16018016 M2595AAA0 M3301B435 M0801ED8A M173D9A01 M2600A027 M3405DB81 M0901ED8C M1901A22A M2701BC28 M35B99B41 M0A00A03B M1A01B22C M2895EA29 M360D9A01 M0B018001 M1B01A232 M2995AAA0 M37298838 M0C00203C M1C01A233 M2A01B42B M38019801 M0D00A00E M1D01A236 M2B959B41 M3919883A 免责声明 中国文档网致力于为会员提供高质量文档 网站所有资料均来自 internet 和会员 中国文档网 不保证其内容的合法性 准确性或有效性 文档版权属于提供者所有 中国文档网不承担与此相关的任何 法律责任 19 7 测试数据 第一组 R0 FFH R2 01H 第二组 R0 01H R2 01H 结果为 第一组 R1 01 第二组 R1 04 9 结果分析 两组数据主要是有进位与没有进位之间的差别 第一组数据 01 01 10 R0 和 R2 中的数据相加后没有产生进位 因此 CY 0 将结果送到 299 后循环左移 然后 送显 结果为 10H 100H 而 BZC 指令就会直接跳转到 HLT 执行停机操作 使程序 终止 第二组数据为 FF 01 结果为 00 产生一个进位 因此 CY 1 将结果送到 299 后循环左移 结果为 00H 01H BZC 的条件成立 跳转到 02 继续指令执行 继 续执行 ADC 到 BZC 时会因为没有产生进位 使程序终止运行 五 课程设计心得五 课程设计心得 通过这次课程设计 对计算机的基本组成 部件的设计 部件间的连接 微程序控制 器的设计 微指令和微程序的编制与调试等过程有更深的了解 加深了对组成原理理论课 程的理解 通过自己对一系列微程序的编写 对程序执行的流程以及指令之间的跳转有了更深的 理解 能够根据流程图和机器指令写出相应微程序 对简单模型机里的数据流向图也有了 一定的理解 能看懂根据自己编写的微程序在模型机上的一步步流向 对 ADD ADC BZC RLC 等指令的运用更加熟悉 对它们微程序的一步步流程也有了清晰 的认识 通过对机器指令和微指令的分析和编写 理解了指令代码所对应的功能 本次实 验里的微程序均由自己根据流程图及机器指令编写 正确完成了题目 1 4 的要求 本次实验中 在微程序的调试中花费不少时间 尤其在 BZC 和 RLC 指令上耽搁较久 但通过观察模型机上的操作流向来检查错误收获较大 模型机能比较准确的看出自己出错 的地方 即数据没有向题目要求的地方流动 通过对程序进行多次调试修改以及老师的帮 助指导下得到正确结果 在这次课程设计中 很多计算机组成原理的知识在实际中得到运 用 对组成原理的很多内容有了一个直观的认识 自身理论知识和动手能力得到很大提高 有很大的收获 六 六 附录附录 附录附

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论