CSU计算机组成原理实验报告.docx
《CSU计算机组成原理实验报告.docx》由会员分享,可在线阅读,更多相关《CSU计算机组成原理实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
CSU计算机组成原理实验报告
计算机组成原理与汇编实验报告
班级:
学号:
姓名:
实验2算术逻辑运算实验
实验目的
掌握简单运算器的组成以及数据传送通路
验证运算功能发生器(74LS181)的组合功能
实验设备
74LS181(两片),74LS273(两片),74LS245(一片),开关若干,灯泡若干,单脉冲一片
实验原理
实验中的运算器由两片74LS181以并/串形式构成8位字长的ALU。
运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74LS373)锁存,锁存器的输入连至数据总线,数据开关用来给出参与运算的数据(A和B),并经过一个三态门(74LS245)和数据显示灯相连,显示结果。
74LS181:
完成加法运算
74LS273:
输入端接数据开关,输出端181。
在收到上升沿的时钟信号前181和其输出数据线之间是隔断的。
在收到上升沿信号后,其将输出端的数据将传到181,同时,作为触发器,其也将输入的数据进行保存。
因此,通过增加该芯片,可以通过顺序输入时钟信号,将不同寄存器中的数据通过同一组输出数据线传输到181芯片的不同引脚之中
74LS245:
相当于181的输出和数据显示灯泡组件之间的一个开关,在开始实验后将其打开,可以使181的运算结果输出并显示到灯泡上
实验步骤
1.选择实验设备:
根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
2.搭建实验流程:
将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。
搭建好的实验流程图如图2所示。
具体操作如下:
①将74LS273芯片的0-7号引脚(数据端从低到高)及9号引脚(复位端)接到开关上,8号引脚接至单脉冲组件,左右两个74LS273芯片分别保存参与运算的数据A和B。
接着把两个74LS273组件的11-14号引脚(数据的低四位)分别接到74LS181组件(左)的0-7号引脚上,其中0-3号引脚为A的低四位,4-7号引脚为B的低四位。
同样的,把两个74LS273组件的15-18号引脚(数据的高四位)分别接到74LS181组件(右)的0-7号引脚上,其中0-3号引脚为A的高四位,4-7号引脚为B的高四位。
②74LS181的8-12号引脚(S0-S3、M)接到开关上控制逻辑/算术运算。
把低位的74LS181芯片(左)的13号引脚(CN端)由开关控制,高位的74LS181芯片(右)的13号引脚CN与低位的74LS181的15号进位输出相连。
③最后,把两个74LS181芯片的16-19号引脚顺序接到74LS245的0-7接口上。
74LS245芯片的8、9号引脚接开关,11―18号输出引脚(低位到高位)接灯泡,作为运算器结果的显示。
初始化各芯片的控制信号,数据开关置上相应的数据
3.初始化各芯片的控制信号,数据开关置上相应的数据(A置为65H,B置为A7H)
实验截图:
DR1:
ADR2:
B
4.点击“运行”按钮,分别点击左右两个单脉冲组件,把参与运算的数据B和A置入两个锁存器中。
通过改变S3,S2,S1,S0,M,CN的组合来实现不同的功能,根据连接到245的灯泡显示情况,可以对输入数据和输出结果进行检验(因为当ALU的控制信号位1111时其将直接输出A,为1010时直接输出B),74LS181的功能见表2-1,A和B分别表示参与运算的两个数,“+”表示逻辑或,“加”表示算术求和。
M=0
S3S2S1S0CN=1CN=0M=0
5. 通过前面的操作,我们将A置为65H,B置为A7H。
然后改变运算器的控制电平S3,S2,S1,S0,M,CN的组合,观察运算器的输出,填入表2-2中,并和理论值进行比较,验证74LS181的功能。
实验结果:
M=0
(算数运算)
M=1
DR1
DR2
S3S2S1S0
CN=1
CN=0
逻辑运算
65
A7
0000
F=65
F=66
F=9A
65
A7
0001
F=E7
F=E8
F=18
65
A7
0010
F=7D
F=7E
F=82
65
A7
0011
F=FF
F=00
F=00
65
A7
0100
F=A5
F=A6
F=DA
65
A7
0101
F=27
F=28
F=58
65
A7
0110
F=BD
F=BE
F=C2
65
A7
0111
F=3F
F=40
F=40
65
A7
1000
F=8A
F=8B
F=BF
65
A7
1001
F=0C
F=0D
F=3D
65
A7
1010
F=A2
F=A3
F=A7
65
A7
1011
F=24
F=25
F=25
65
A7
1100
F=CA
F=CB
F=FF
65
A7
1101
F=4C
F=4D
F=7D
65
A7
1110
F=E2
F=E3
F=E7
65
A7
1111
F=64
F=65
F=65
实验3进位控制实验
实验目的
验证带进位控制的算术运算功能发生器的功能
按给定的数据完成几种指定的算术运算
实验设备
74LS181(两片),74LS273(两片),74LS245(一片),开关若干,灯泡若干,单脉冲一片
实验原理
本实验是在实验一的基础上增加进位控制部分。
其中181的进位进入一个灯泡组件,用于测试是否有进位.当进位标志灯亮,表示无进位,灯灭表示有进位。
实验步骤
1.选择实验设备:
根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
2.搭建实验流程:
将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。
实验界面与算术逻辑运算实验类似,不同的是,左边的74LS181的15号引脚接灯泡,用于测试是否有进位.当进位标志灯亮,表示无进位,灯灭表示有进位.实验流程图如图3所示.
3.其余步骤同上一实验.验证带进位运算功能.
实验截图:
实验结果:
实验结果:
DR1
DR2
S3S2S1S0
进位
65
A7
0000
1
65
A7
0001
1
65
A7
0010
1
65
A7
0011
1
65
A7
0100
1
65
A7
0101
0
65
A7
0110
1
65
A7
0111
0
65
A7
1000
1
65
A7
1001
0
65
A7
1010
1
65
A7
1011
0
65
A7
1100
1
65
A7
1101
0
65
A7
1110
1
65
A7
1111
0
实验5存储器实验
实验目的
掌握静态存储随机存储器RAM的工作特性
掌握静态存储随机存储器RAM的读写方法
实验设备
74LS273组件一片,静态存储器MEMORY6116组件一片(是一个2k×8的静态存储器。
在本实验中只使用8位地址),单脉冲一个,开关若干,灯泡若干
实验原理
本实验所用的静态存储器由一片6116(2K×8)构成,其数据线接至数据开关,地址线由地址锁存器(74LS373)给出。
因地址寄存器为8位,接入6116的地址A7-A0,而高三位A8-A10接地,所以其实际容量为256字节。
6116有三个控制线:
CE(片选线)、OE(读线)、WE(写线)。
当片选CE=0,读信号OE=0时,进行读操作,当片选CE=0,写信号WE=1时,进行写操作。
由于本实验中将OE常接地,这样,当CE=0、WE=0时进行读操作,CE=0、WE=1时进行写操作,写时间与T3脉冲宽度一致。
实验步骤
1.选择实验设备:
根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
2.搭建实验流程:
将已选择的组件进行连线,74LS273的0―7号输入引脚(数据端)、9号引脚(复位端)分别接到开关上,8号引脚接单脉冲信号,11-18号输出引脚接到静态MEMORY的0-7号地址输入引脚。
静态MEMORY的高3位地址输入引脚8―10统一置0,由开关控制,使存储器实际容量为256个字节。
11-13号使能端(CE、WE、OE)分别由开关控制,14-21号数据端同时接入开关和灯泡,进行读写操作,开关控制欲写入存储器的数据,灯泡用于从存储器读出数据的显示。
实验流程图如图6所示。
3.设置相应芯片的控制位.(273的9号引脚为1,6116的CE=1,WE=1,OE=0.)
4.写入数据:
点击运行按钮,74LS273的连接的地址数据开关作为地址输入端可以自己设置,设置完毕后,双击单脉冲信号,将地址数据输入到74LS273里面去。
因为静态MEMORY6116的11号引脚(CE端)为0,12号引脚(WE端)为0时写入数据,所以11,12号引脚置0,13号引脚(OE端)置0,静态MEMORY6116连接的开关作为数据输入端,将数据写到指定的存储器单元中去。
输入数据可以由用户自己设置。
这样就完成了存储器的写操作,重复上述过程可以完成其他地址的数据写入过程。
记录下此时写入各个单元的数据,以便进行读操作时验证。
5.读出数据:
把静态MEMORY6116的11号引脚(CE端)和13号(OE端)引脚设置为0,12号引脚(WE端)置为1,然后置地址,触发脉冲,则可以从灯泡中读出相应地址中的数据。
完成读操作。
检查读的数据与刚记录的数据是否一样。
1:
OE,WE,CE位置零,74LS273的CLR位置1
将00001111存入地址00000100
2,WE位置1
取出存在00000100地址中的数据:
实验结果:
根据灯泡亮的位置,可得在地址为00000100中取出的数据为00001111,所得结果正是之前存入的数据,实验结果正确。
汇编实验
实验内容:
字符串的比较;
实验要求:
用汇编语言写一程序比较两字符串,若相等打印match,不相等打印nomatch
实验步骤:
实验代码:
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
DATASSEGMENT
BUF1DB100DUP(0)
BUF2DB100DUP(0)
WAR1DB"MATCH!
$"
WAR2DB"NOMATCH!
$"
DATASENDS
STACKSSEGMENT
DW8DUP(0)
STACKSENDS
CODESSEGMENT
START:
MOVAX,DATAS
MOVDS,AX
MOVAX,STACKS
MOVSS,AX
MOVSP,16
MOVDX,OFFSETBUF1
MOVBX,DX
MOVBYTEPTRDS:
[BX],80;设置缓冲区最大容量
MOVAH,0AH
INT21H;