计算机组成原理实训

问题描述

一、指令操作

1、PC程序计数器

在这里插入图片描述
PC装载(E/M IP = 00): 当 E/M IP 设置为 00 时,可能表示将某个值加载到程序计数器(PC)中,以指定下一条要执行的指令的地址。

PC增量(E/M IP = 10): 当 E/M IP 设置为 10 时,可能表示程序计数器(PC)应该递增,以指向下一条顺序执行的指令的地址。

PC保持(E/M IP = 11): 当 E/M IP 设置为 11 时,可能表示要保持程序计数器(PC)的当前值,即不进行改变,从而执行当前指令的地址。

2、目标编码

在这里插入图片描述

在这里插入图片描述
o2 o1 o0 = 111 (禁止): 该编码可能表示禁止目标寄存器的选择,可能是一个控制信号,指示不执行任何目标寄存器的操作。

o2 o1 o0 = 110 (MAR): 该编码可能表示选择内存地址寄存器(Memory Address Register,MAR)作为目标寄存器。

o2 o1 o0 = 101 (BX): 该编码可能表示选择基址寄存器(Base Register,BX)作为目标寄存器。

o2 o1 o0 = 100 (AX): 该编码可能表示选择累加器寄存器(Accumulator,AX)作为目标寄存器。

o2 o1 o0 = 011 (SP): 该编码可能表示选择堆栈指针寄存器(Stack Pointer,SP)作为目标寄存器。

o2 o1 o0 = 010 (IOW): 该编码可能表示选择输入/输出寄存器(Input/Output Register,IOW)作为目标寄存器。

o2 o1 o0 = 001 (XWR): 该编码可能表示选择扩展工作寄存器(Extended Working Register,XWR)作为目标寄存器。

o2 o1 o0 = 000 (RWR): 该编码可能表示选择通用寄存器(General Register,RWR)作为目标寄存器。

3、总线规则

在这里插入图片描述
W XP OP = 000 (字传递): 该编码可能表示进行字(word)传递,即在总线上传递一个完整的字

W XP OP = 100 (偶送偶): 该编码可能表示进行偶数到偶数的传递,即从偶数地址传递到偶数地址

W XP OP = 101 (偶送奇): 该编码可能表示进行偶数到奇数的传递,即从偶数地址传递到奇数地址。

W XP OP = X10 (奇送偶): 该编码可能表示进行奇数到偶数的传递,即从奇数地址传递到偶数地址。

W XP OP = X11 (奇送奇): 该编码可能表示进行奇数到奇数的传递,即从奇数地址传递到奇数地址。

4、算数运算

在这里插入图片描述
MS2 S1 So = 0000 (A+B+C): 该编码可能表示执行加法运算,其中 A、B 和 C 分别是相加的操作数。

MS2 S1 So = 0001 (A-B-C): 该编码可能表示执行减法运算,其中 A 是被减数,B 是减数,C 是借位。

MS2 S1 So = 0010 (RLC): 该编码可能表示执行循环左移(Rotate Left through Carry)操作。

MS2 S1 So = 0011 (RRC): 该编码可能表示执行循环右移(Rotate Right through Carry)操作。

MS2 S1 So = 0100 (A+B): 该编码可能表示执行无进位加法运算,即 A 和 B 相加。

MS2 S1 So = 0101 (A-B): 该编码可能表示执行无借位减法运算,即 A 减去 B。

MS2 S1 So = 0110 (RL): 该编码可能表示执行左移(Shift Left)操作。

MS2 S1 So = 0111 (RR): 该编码可能表示执行右移(Shift Right)操作。

5、逻辑运算

在这里插入图片描述
M S2 S1 S0 = 1000 (B): 该编码可能表示将输入 B 作为输出。

M S2 S1 S0 = 1001 (A取反): 该编码可能表示对输入 A 进行逻辑取反操作。

M S2 S1 S0 = 1010 (A减1): 该编码可能表示对输入 A 执行减1操作。

M S2 S1 S0 = 1011 (A=0): 该编码可能表示将输出置为零。

M S2 S1 S0 = 1100 (A逻辑或B): 该编码可能表示执行 A 和 B 的逻辑或操作。

M S2 S1 S0 = 1101 (A逻辑与B): 该编码可能表示执行 A 和 B 的逻辑与操作。

M S2 S1 S0 = 1110 (A加1): 该编码可能表示对输入 A 执行加1操作。

M S2 S1 S0 = 1111 (A): 该编码可能表示将输入 A 作为输出。

6、源编码

在这里插入图片描述

在这里插入图片描述
X2 X1 XO = 111 (禁止): 该编码可能表示禁止数据传送或选择源寄存器。

X2 X1 XO = 110 (ALU): 该编码可能表示选择ALU(算术逻辑单元)的输出作为数据传送的源。

X2 X1 XO = 101 (SP): 该编码可能表示选择堆栈指针寄存器(Stack Pointer,SP)的值作为数据传送的源。

X2 X1 XO = 100 (IOR): 该编码可能表示选择输入/输出寄存器(Input/Output Register,IOR)的值作为数据传送的源。

X2 X1 XO = 011 (MRD): 该编码可能表示进行内存读取操作,选择存储器数据寄存器(Memory Read Data,MRD)的值作为数据传送的源。

X2 X1 XO = 010 (XRD): 该编码可能表示选择扩展寄存器数据寄存器(Extended Register Data,XRD)的值作为数据传送的源。

X2 X1 XO = 001 (RRD): 该编码可能表示选择通用寄存器数据寄存器(Register Read Data,RRD)的值作为数据传送的源。

X2 X1 XO = 000 (PC): 该编码可能表示选择程序计数器(Program Counter,PC)的值作为数据传送的源。

7、微变址

在这里插入图片描述
IR lu lcz = 111 (禁止): 该编码可能表示禁止微变址操作,即不进行微操作的变址。

IR lu lcz = 110 (条件变址): 该编码可能表示进行条件微变址操作,其中微操作的变址受到某些条件的限制。

IR lu lcz = 101 (转移变址): 该编码可能表示进行转移微变址操作,即跳转到另一个微程序地址执行。

IR lu lcz = 100 (结尾变址): 该编码可能表示进行结尾微变址操作,即当前微程序的结束或者跳转到下一个微程序。

二、编码和微地址

;基本模型机程序

#LOAD "czzwd1.IS"         ;预调入指令系统/微程序
#SET RAM 0260h = 5500h  ;数据区0260H单元预置数据5500h

data    segment         ;将程序装载到数据存储器
        assume ds:data

        org   0
start:  in    r0, iol
        in    r0, ioh
        add   r0, 0260h
        XNOR  r0,r1
        sta   0261h, r0
        out   ioh, 0261h
        jmp   start
        zjor   IOL,*

data    ends
        end   start

;基本模型机指令系统

;助记符 操作数              指令码 长度
;-----------------------------------------------------
IN      R0,IOL              20     1             ;将IOL数据读出到寄存器R0
IN      R0,IOH              22     1             ;将IOH数据读取到寄存器R0
ADD     R0,*                30     3             ;直接字节加到寄存器R0
XNOR    R0,R1               40     1             ;与或非运算
STA     *,R0                60     3             ;寄存器R0写入直接内存
OUT     IOH,*               80     3             ;直接字节输出到IOH
JMP     *                   A0     3             ;无条件转移
zjor    IOL,*               C0     3             ;求或值

在这里插入图片描述

1、指令操作

地址的判断
在这里插入图片描述
读取低位
在这里插入图片描述
读取高位

与或非运算
在这里插入图片描述
输出运算
在这里插入图片描述
寄存器ro写到内存
在这里插入图片描述
输出
在这里插入图片描述
无条件转移到
在这里插入图片描述
ADD
在这里插入图片描述

REG 通用寄存器 0001

请添加图片描述
在这里插入图片描述
在这里插入图片描述
请添加图片描述

2、我的操作

;基本模型机程序

#LOAD "czzwd1.IS"         ;预调入指令系统/微程序
#SET RAM 0260h = 5500h  ;数据区0260H单元预置数据5500h


data    segment         ;将程序装载到数据存储器
        assume ds:data

        org   0
start:  in    r0, iol
        red   r0, 0260h
        or    r0
        jx    0260h
        see   r0, 0260h
        hunhe   r0, r1
        add     r0,0260h
        jmp   start

data    ends
        end   start

;基本模型机指令系统

;助记符 操作数              指令码 长度
;-----------------------------------------------------
IN      R0,IOL              20     1             ;将IOL数据读出到寄存器R0
RED     R0,*                30     3             ;寄存器R0-0260h中数据,存储到寄存器Sp(直接寻址)
OR      R0                  40     1             ;(寄存器寻址)或运算,将sp当做地址,放到ax后到ar取出数据,放在cx中,将sp放在ax,cx放在bx进行或运算,最后放到sp
JX      *                   60     3             ;间接寻址,存储到寄存器
SEE     R0,*                80     3             ;寄存器寻址+直接寻址
HUNHE   R0,R1               90     1             ;寄存器-寄存器作为地址,找到数据然后加一,存储到寄存器
ADD     R0,*                C0     3             ;(寄存器间接)+pc间接-一个数
JMP     *                   A0     3             ;无条件转移

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

倾情奉献,完全可以照抄。实验一 运算器实验实验二 移位运算实验实验三 存储器读写和总线控制实验附加实验 总线控制实验实验五 微程序设计实验 一、实验目的: 1. 掌握运算器的组成及工作原理; 2. 了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程; 3. 验证带进位控制的74LS181的功能。 二、预习要求: 1. 复习本次实验所用的各种数字集成电路的性能及工作原理; 2. 预习实验步骤,了解实验中要求的注意之处。 三、实验设备: EL-JY-II型计算机组成原理实验系统一套,排线若干。 ... ... ... 八、行为结果及分析: 实验数据记录如下表: DR1 DR2 S3S2S1S0 M=0(算术运算) M=1 Cn=1无进位 Cn=0有进位 (逻辑运算) 理论值 实验值 理论值 实验值 理论值 实验值 04H 06H 0 0 0 0 F=(04) F=(04) F=(05) F=(05) F=(05) F=(05) 04H 06H 0 0 0 1 F=(0A) F=(0A) F=(0B) F=(0B) F=(FC) F=(FC) 04H 06H 0 0 1 0 F=(FD) F=(FD) F=(FE) F=(FE) F=(00) F=(00) 04H 06H 0 0 1 1 F=(FF) F=(FF) F=(00) F=(00) F=(FD) F=(FD) 04H 06H 0 1 0 0 F=(04) F=(04) F=(05) F=(05) F=(F9) F=(F9) 04H 06H 0 1 0 1 F=(0A) F=(0A) F=(0B) F=(0B) F=(F9) F=(F9) 04H 06H 0 1 1 0 F=(FD) F=(FD) F=(FE) F=(FE) F=(FD) F=(FD) 04H 06H 0 1 1 1 F=(FF) F=(FF) F=(00) F=(00) F=(00) F=(00) 经过比较可知实验值与理论值完全一致。 此次实验的线路图的连接不是很难,关键是要搞清楚运算器的原理,不能只是盲目的去连线。在线路连接完成后,就按照要求置数,然后查看结果,与理论值比较。如果没有错误就说明前面的实验中没有出现问题;否则,就要重新对照原理图检查实验,找出错误,重新验证读数。 九、设计心得、体会: 这次课程设计我获益良多,平时我们能见到的都是计算机的外部结构,在计算机组成原理的学习中,逐步对计算机的内部结构有了一些了解,但始终都停留在理论阶段。而在本次实验,让我们自己设计8位运算器并验证验证运算器功能发生器(74LS181)的组合功能,让我对运算器的内部结构有了更深的了解,并且对计算机组成原理也有了更深层次的理解,同时这次课程设计还锻炼了我的实验动手能力,也培养了我的认真负责的科学态度。 这次课程设计要求连线仔细认真,不能有半点错误,在刚做这个实验的时候,我就由于粗心没有正确的设置手动开关SW-B和ALU-B,导致存入的数据不正确。 我在连线过程中也自己总结出了避免出错的方法,就是在接线图上将已经连接好的部分作上记号,连接完后再检查一遍各个分区的条数是否和实验接线图上的一样,如果一样就可以进行下面的实验步骤,就算出错了,改起来也容易多了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑伴你而行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值