计算机组成与系统结构课程设计

article/2025/8/28 14:00:13

课程设计题目
综合运用所学计算机原理知识,设计并实现具有以下16条指令的指令集结构的模型计算机:
编号 助记符 机器指令码 说明
0 SUB Rd,Rs 0000 RdRs Rd-Rs→Rd
1 ADD Rd,Rs 0001 RdRs Rd+Rs→Rd
2 AND Rd,Rs 0010 RdRs Rd&Rs→Rd (Rd和Rs相与)
3 DEC Rd 0011 Rd00 将Rd值减1
4 CLR Rd 0100 Rd00 将Rd清零
5 RL Rd 0101 Rd00 Rd循环左移一位
6 RRC Rd 0110 Rd00 Rd带进位右移一位
7 MOV Rd,Rs 0111 RdRs Rs→Rd
8 LDI Rd,* 1000 Rd00 XXXXXXXX 将指令中的立即数(第二字节)送入Rd
9 OUT IOH,Rs 1001 00Rs Rs→i/o(数据开关)高字节
10 LDA Rd,M 1010 Rd00 XXXXXXXX XXXXXXXX [M] →Rd
11 STA M,Rs 1011 00Rs XXXXXXXX XXXXXXXX Rs→[M]
12 JMP M 1100 0000 XXXXXXXX XXXXXXXX [M]→PC,即跳转到M所指单元
13 JZ M 1101 0000 XXXXXXXX XXXXXXXX 当Z=1时,跳转到M所指单元
14 JC M 1110 0000 XXXXXXXX XXXXXXXX 当CY=1时,跳转到M所指单元
15 HALT 1111 0000 停机
2、设计提示
1)上表中,机器指令码的高4位为指令操作码,M为16位存储器地址, Rs为源寄存器,Rd为目的寄存器,占2位,并规定:
Rs或Rd 选定的寄存器
00 R0
01 R1
10 R2
11 R3
2)在微程序中,微地址001为取指。
3)各指令指行阶段微程序入口地址的确定方式:
微地址位号 10 9 8 7 6 5 4 3 2 1 0
内容 1 1 IR7~IR4 0 0 0 0 0
例如,第5条指令”RL Rd” 的指令码为0101 Rd00 则指令码的高4位IR7~IR4为0101,由上表知,微程序入口微地址为: 11 0101 00000 ,即6A0H。
注:第10、9位来自0001条微指令中upc所设置值的第10、9位。例如,如果是600则为11,如果是400则为10.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
汇编语句:
助记符 操作数 指令码 长度

SUB R0,R0 00 1 ; R0-R0→R0
SUB R0,R1 01 1 ; R0-R1→R0
SUB R0,R2 02 1 ; R0-R2→R0
SUB R0,R3 03 1 ; R0-R3→R0
SUB R1,R0 04 1 ; R1-R0→R1
SUB R1,R1 05 1 ; R1-R1→R1
SUB R1,R2 06 1 ; R1-R2→R1
SUB R1,R3 07 1 ; R1-R3→R1
SUB R2,R0 08 1 ; R2-R0→R2
SUB R2,R1 09 1 ; R2-R1→R2
SUB R2,R2 0A 1 ; R2-R2→R2
SUB R2,R3 0B 1 ; R2-R3→R2
SUB R3,R0 0C 1 ; R3-R0→R3
SUB R3,R1 0D 1 ; R3-R1→R3
SUB R3,R2 0E 1 ; R3-R2→R3
SUB R3,R3 0F 1 ; R3-R3→R3
ADD R0,R0 10 1 ; R0+R0→R0
ADD R0,R1 11 1 ; R0+R1→R0
ADD R0,R2 12 1 ; R0+R2→R0
ADD R0,R3 13 1 ; R0+R3→R0
ADD R1,R0 14 1 ; R1+R0→R1
ADD R1,R1 15 1 ; R1+R1→R1
ADD R1,R2 16 1 ; R1+R2→R1
ADD R1,R3 17 1 ; R1+R3→R1
ADD R2,R0 18 1 ; R2+R0→R2
ADD R2,R1 19 1 ; R2+R1→R2
ADD R2,R2 1A 1 ; R2+R2→R2
ADD R2,R3 1B 1 ; R2+R3→R2
ADD R3,R0 1C 1 ; R3+R0→R3
ADD R3,R1 1D 1 ; R3+R1→R3
ADD R3,R2 1E 1 ; R3+R2→R3
ADD R3,R3 1F 1 ; R3+R3→R3
AND R0,R0 20 1 ; R0&R0→R0
AND R0,R1 21 1 ; R0&R1→R0
AND R0,R2 22 1 ; R0&R2→R0
AND R0,R3 23 1 ; R0&R3→R0
AND R1,R0 24 1 ; R1&R0→R1
AND R1,R1 25 1 ; R1&R1→R1
AND R1,R2 26 1 ; R1&R2→R1
AND R1,R3 27 1 ; R1&R3→R1
AND R2,R0 28 1 ; R2&R0→R2
AND R2,R1 29 1 ; R2&R1→R2
AND R2,R2 2A 1 ; R2&R2→R2
AND R2,R3 2B 1 ; R2&R3→R2
AND R3,R0 2C 1 ; R3&R0→R3
AND R3,R1 2D 1 ; R3&R1→R3
AND R3,R2 2E 1 ; R3&R2→R3
AND R3,R3 2F 1 ; R3&R3→R3
DEC R0 30 1 ; R0值减1
DEC R1 34 1 ; R1值减1
DEC R2 38 1 ; R2值减1
DEC R3 3C 1 ; R3值减1
CLR R0 40 1 ; 将R0清零
CLR R1 44 1 ; 将R1清零
CLR R2 48 1 ; 将R2清零
CLR R3 4C 1 ; 将R3清零
RL R0 50 1 ; R0循环左移一位
RL R1 54 1 ; R1循环左移一位
RL R2 58 1 ; R2循环左移一位
RL R3 5C 1 ; R3循环左移一位
RRC R0 60 1 ; R0带进位右移一位
RRC R1 64 1 ; R1带进位右移一位
RRC R2 68 1 ; R2带进位右移一位
RRC R3 6C 1 ; R3带进位右移一位
MOV R0,R0 70 1 ; R0→R0
MOV R0,R1 71 1 ; R1→R0
MOV R0,R2 72 1 ; R2→R0
MOV R0,R3 73 1 ; R3→R0
MOV R1,R0 74 1 ; R0→R1
MOV R1,R1 75 1 ; R1→R1
MOV R1,R2 76 1 ; R2→R1
MOV R1,R3 77 1 ; R3→R1
MOV R2,R0 78 1 ; R0→R2
MOV R2,R1 79 1 ; R1→R2
MOV R2,R2 7A 1 ; R2→R2
MOV R2,R3 7B 1 ; R3→R2
MOV R3,R0 7C 1 ; R0→R3
MOV R3,R1 7D 1 ; R1→R3
MOV R3,R2 7E 1 ; R2→R3
MOV R3,R3 7F 1 ; R3→R3
LDI R0,* 80 2 ; 将指令中的立即数送入R0
LDI R1,* 84 2 ; 将指令中的立即数送入R1
LDI R2,* 88 2 ; 将指令中的立即数送入R2
LDI R3,* 8C 2 ; 将指令中的立即数送入R3
OUT IOH,R0 90 1 ; R0→i/o(数据开关)高字节
OUT IOH,R1 91 1 ; R1→i/o(数据开关)高字节
OUT IOH,R2 92 1 ; R2→i/o(数据开关)高字节
OUT IOH,R3 93 1 ; R3→i/o(数据开关)高字节
LDA R0,* A0 3 ; [M] →R0
LDA R1,* A4 3 ; [M] →R1
LDA R2,* A8 3 ; [M] →R2
LDA R3,* AC 3 ; [M] →R3
STA *,R0 B0 3 ; R0→[M]
STA *,R1 B1 3 ; R1→[M]
STA *,R2 B2 3 ; R2→[M]
STA *,R3 B3 3 ; R3→[M]
JMP * C0 3 ; [M]→PC,即跳转到M所指单元
JZ * D0 3 ; 当Z=1时,跳转到M所指单元
JC * E0 3 ; 当CY=1时,跳转到M所指单元
HALT “” F0 1 ; 停机(总线锁定)

实验报告和.IS文件下载入口:
.IS文件
实验报告

注:仅供参考


http://chatgpt.dhexx.cn/article/4BgrTboh.shtml

相关文章

计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!

计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你! 人生做什么事都有套路,大学毕业设计、课程设计通常比较简单,大多数都是找个项目做参考,有的人随便抄一抄糊弄一下,只要查重,格…

pycharm 安装numpy包——超简单

非常简单的安装步骤,自己百试不爽哦,废话不多说直接上图按以下步骤进行即可 一、找到安装numpy的地方 file→settings→project interpreter,点击右侧的+号 二、进行numpy 安装 搜索框内手动输入numpy进行搜索,选中…

python 如何安装numpy库?

(我的微信:Kingsplusa,我总结了人工智能手推笔记和思维导图,欢迎一起进步学习。) 首先我们要找到python安装的位置 winR打开 进入以后输入: where python 找到安装目录后,找到Scripts文件…

python中Numpy包的安装及使用

*****安装 python (本文安装 python2.7) *****安装 pip (1)检查是否已安装pip 进入cmd命令窗口,输入 pip --version ,查看是否已安装pip,说明已安装了pip 否则,说明未安装pip 需要进入(2&am…

Python2.7中安装numpy包

前言 花了一个下午的时间才成功安装了numpy,血与泪的教训。记录一下踩的坑。 安装环境 系统: win10 Python版本: 2.7.9 IDE:Pycharm 踩坑过程 尝试一 在Pycharm的setting中安装numpy 1.20.2(最新版本&#xff09…

numpy安装过程

下载numpy库的详细方法 安装前提: 1、Python3.8安装完成并能够正常使用 2、下载相应的numpy安装包,.whl格式 安装详细步骤:* 首先,点击下面的链接进入numpy下载官网 链接地址:添加链接描述 进去之后,点击…

pycharm怎么安装numpy库

打开界面后,在File菜单中点击Settings选项 在弹出的窗口中点击project interpreter选项 找到并点击窗口左侧的号键 在搜索框中输入numpy,并点击上方第一个选项 点击底部最下方的install package按钮 当下方出现successfully字样时,就代表num…

numpy的安装以及学习

1.在pycharm解释器中安装numpy库 2.pip install numpy 3.conda install numpy (清华源:https://pypi.tuna.tsinghua.edu.cn/simple) Numpy的导入: import numpy as np numpy介绍 NumPy是一个开源的Python科学计算库&#xff…

Python安装numpy,matplotlib

NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 Matplotlib可能Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输…

python numpy安装

一、python下的numpy安装方法 第一步:安装python,这里不做介绍。 第二步:打开cmd看python是否安装成功。 第三步:输入 python -m pip install -U pip 安装pip文件,pip文件一般在python安装包的script目录下。 第四步&a…

Windows下安装numpy

在看差分隐私的科普时,看到一篇文章,最后有用Laplace分布实现差分隐私的代码,所以就复制到PyCharm里运行了一下,运行时报错“没有numpy”(具体怎么说的我也忘了,是import numpy as np这句报错,p…

使用Pycharm安装numpy库

如何在Pycharm中安装numpy库?笔者使用的是PyCharm Community Edition 2020.2.1 第一步 打开Pycharm,在上方找到File,在打开的界面中找到Settings。或者直接使用CtrlAltS快捷键打开settings。 第二步 在左侧以此找到Project,Pytho…

numpy的下载与安装教程(windows系统)

Numpy介绍 NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多&a…

Numpy的简明安装

1)、安装Python3.4版本以上,因为这样会自带pip(包管理器的安装) 检查Python版本。 打开cmd,输入Python 现在我们可以知道Python的版本与位数,比如我的就是Python3.7,64位。 2)…

python安装及numpy的安装

因为对机器学习算法进行实战的话,python语言是必须的,所以前几天进行了安装和配置。说实话,相比较其他的编程语言的IDE来讲,python本身问题不大,但是因为要有很多的矩阵的计算,所以要安装numpy包&#xff0…

Python使用pip安装Numpy模块

环境 python版本:python-3.9.1 操作系统:Windows10 想要安装的模块:numpy 前提 使用pip安装模块,需要保证pip为最新版本。如果使用pip时出现问题提示: You should consider upgrading via the python -m pip …

python安装使用pip安装numpy

相信大家最近都在忙,因为到开学和上班的时候了,我最近也很忙,忙的快要流泪,这不是要考计算机三级了吗!买了好厚一本书,备战过程中,最近洗头一次掉了100根不止的头发,有点恐惧&#x…

Python教程:Numpy的安装

一、numpy简介 NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算。这类数值计算广泛用于以下任务: 机器学习…

python如何安装numpy模块?

python安装numpy模块 python numpy安装思路第一次安装时的思路第一次安装时遇到的坑第二次安装的思路(快速安装避免踩坑) python numpy安装思路 在python3.X版本都自带有pip,什么是pip? pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载…

安装Numpy

1)、安装Python3.4版本以上,因为这样会自带pip(包管理器的安装) 检查Python版本。 打开cmd,输入Python 2)、去下载numpy https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 3)、下载后将n…