组成原理实验指导书

  • 格式:doc
  • 大小:1.15 MB
  • 文档页数:23

实验一通用寄存器传送实验一、实验目的1.熟悉通用寄存器的数据通路。

2.掌握通用寄存器的构成和运用。

二、实验要求在掌握了AX、BX运算寄存器的读写操作后,继续完成CX、DX通用寄存器的数据写入与读出。

三、实验原理实验中所用的通用寄存器数据通路如下图所示。

由四片8位字长的74LS574组成CX(R1 R0)、DX(R3 R2)通用寄存器组。

图中X2 X1 X0定义输出选通使能,RS1为通用寄存器源编码,由指令寄存器IR1定义,XP为源奇偶控制位。

O2 O1 O0为目的寄存器选择,Rd1为通用寄存器目的编码,由指令寄存器IR1定义,OP为目的奇偶控制位。

T4信号为寄存器组写脉冲,上升沿有效。

准双向I/O端口用于置数操作,经2片74LS245三态门与数据总线相连。

图1 通用寄存器数据通路W 总线字长:1=16位字操作,0=8位字节操作 XP 源部件奇偶标志:1=偶寻址,0=奇寻址 OP目标部件奇偶标志:1=偶寻址,0=奇寻址四、实验内容1. 寄存器组写操作 (1) 目的寄存器写编码(2) 寄存器组的字写入通过“I/O 单元”把CX 的地址00打入IR ,然后向CX 写入2211h ,操作步骤如下:数据来源I/O 单元置地址I/O=XX00h打地址IR=XX00h 置数据I/O=2211h写数据CX=2211h X2 X1 X0=011XP W=11MWR IR=11OP=1,按[单拍]MWR IR=00o2 o1 o0=111OP=1,按[单拍]通过“I/O 单元”把DX 的地址02打入IR ,然后向DX 写入4433h ,操作步骤如下:表2 IR 指令寄存器写入 表3 IR 指令寄存器取指I/O单元I/O=XX02h IR=XX02h I/O=4433h DX=4433hX2 X1 X0=011 XP W=11MWR IR=11OP=1,按[单拍]MWR IR=00o2 o1 o0=111OP=1,按[单拍](3)寄存器组的字节写入通过“I/O单元”把CX的地址00打入IR,然后向CL写入55h,操作步骤如下:数据来源I/O单元置地址I/O=XX00h打地址IR=XX00h置数据I/O=XX55h写数据CL=55hX2 X1 X0=011 XP W=11MWR IR=11OP=1,按[单拍]MWR IR=00o2 o1 o0=111OP=0,按[单拍]W=0在IR保持为“XX00”的条件下,可省略打地址环节,按下流程向CH写入AAh。

置数据I/O=XXAAh X2 X1 X0=011 XP W=10写数据CL=55h关闭写选通o2 o1 o0=000 o2 o1 o0=111OP=0,按[单拍]2.寄存器读操作(1)(2)寄存器组字读通过“I/O单元”把CX地址打入IR,然后CX送总线,操作步骤如下:数据来源I/O单元置地址I/O=XX00h打地址IR=XX00h数据来源CXX2 X1 X0=011 XP W=11MWR IR=11OP=1,按[单拍]MWR IR=00X2 X1 X0=110XP W=11通过“I/O单元”把DX地址打入IR,然后DX送总线,操作步骤如下:数据来源I/O单元置地址I/O=XX02h打地址IR=XX02h数据来源DXX2 X1 X0=011 XP W=11MWR IR=11OP=1,按[单拍]MWR IR=00X2 X1 X0=110XP W=11(3)寄存器组字节读通过“I/O单元”把CX地址打入IR,然后按字节方式分别读出CL、CH。

I/O单元I/O=XX00h IR=XX00h CLX2 X1 X0=011 XP W=11MWR IR=11OP=1,按[单拍]MWR IR=00X2 X1 X0=110XP W=10CHX2 X1 X0=110XP W=00实验二运算器实验一、实验目的完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。

二、实验原理实验中所用的运算器数据通路如图1所示。

ALU运算器由CPLD描述。

运算器的输出经过2片74LS245三态门与数据总线相连,2个运算寄存器AX、BX的数据输入端分别由4个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。

图1运算器数据通路图中AX、BX的写控制由O2~O0编码定义,通过按【单拍】钮完成运算源的数据打入。

三、运算器功能编码表1 ALU运算器编码表算术运算逻辑运算K15 K13 K12 K11功能K15 K13 K12 K11功能M S2 S1 S0 M S2 S1 S01 0 1 0 RR 0 0 0 0 A 1 0 0 1 RL 0 0 0 1 A+1 1 0 1 0 A—B 0 0 1 0 A&B 1 0 1 1 A+B 0 0 1 1 A#B 1 1 0 0 RRC 0 1 0 0 A=0 1 1 0 1 RLC 0 1 0 1 A-1 1 1 1 0 A—B—C 0 1 1 0 /A 1 1 1 1 A+B+C 0 1 1 1 B四、设置初始状态K23~K0置“0”,灭M23~M0控位显示灯。

1算术运算1.字算术运算(1)字写操作(置数操作)通过“I/O单元”二进制开关向寄存器AX和BX置数,操作步骤如下:数据来源I/O单元X2 X1 X0=011 XP W=11置数I/O=1122h寄存器AX(1122h)置数I/O=3344h寄存器BX(3344h)o2 o1 o0=011OP=1,按[单拍]o2 o1 o0=010OP=1,按[单拍](2)字读操作(运算寄存器AX和BX内容送总线)o2 o1 o0=000 OP=0X2 X1 X0=001XP W=11M=0S2 S1 S0=000M=0S2 S1 S0=111关闭写使能读FUN 数据总线显示AX值数据总线显示BX值(3)字算术运算(不带进位加)令M S2 S1 S0(K15 K13~K11=1011),FUN及总线单元显示AX+BX的结果。

令M S2 S1 S0(K15 K13~K11=1010),FUN及总线单元显示AX-BX的结果。

2.字节算术运算(1)偶字节写(置数操作)拨动“I/O输入输出单元”开关向寄存器AL和BL置数,操作步骤如下:X2 X1 X0=011 XP W=10o2 o1 o0=011OP=1,按[单拍]o2 o1 o0=010OP=1,按[单拍]数据来源I/O单元置数I/O=XX22h寄存器AL(22h)置数I/O=XX44h寄存器BL(44h)(2)偶字节读操作(运算寄存器AL和BL内容送总线)o2 o1 o0=000 OP=0X2 X1 X0=001XP W=10M=0S2 S1 S0=000M=0S2 S1 S0=111关闭写使能读FUN 数据总线显示AL值数据总线显示BL值(3)偶字节减法运算(不带进位加)令M S2 S1 S0(K15 K13~K11=1011),FUN及总线单元显示AL+BL的结果。

令M S2 S1 S0(K15 K13~K11=1010),FUN及总线单元显示AL-BL的结果。

2逻辑运算1.字逻辑运算(1)字写操作(置数操作)拨动“I/O输入输出单元”开关向寄存器AX和BX置数,操作步骤如下:数据来源I/O单元X2 X1 X0=011 XP W=11置数I/O=1122h寄存器AX(1122h)置数I/O=3344h寄存器BX(3344h)o2 o1 o0=011OP=1,按[单拍]o2 o1 o0=010OP=1,按[单拍](2)字读操作(运算寄存器AX和BX内容送总线)o2 o1 o0=000 OP=0X2 X1 X0=001XP W=11M=0S2 S1 S0=000M=0S2 S1 S0=111关闭写使能读FUN 数据总线显示AX值数据总线显示BX值(3)字逻辑运算令M S2 S1 S0(K15 K13~K11=0010),为逻辑与,FUN及总线显示AX逻辑与BX的结果。

令M S2 S1 S0(K15 K13~K11=0011),为逻辑或,FUN及总线显示AX逻辑或BX的结果。

2.字节逻辑运算(1)偶字节写操作(置数操作)拨动“I/O输入输出单元”开关向寄存器AL和BL置数,具体操作步骤如下:X2 X1 X0=011 XP W=10o2 o1 o0=011OP=1,按[单拍]o2 o1 o0=010OP=1,按[单拍]数据来源I/O单元置数I/O=XX22h寄存器AL(22h)置数I/O=XX44h寄存器BL(44h)(2)偶字节读操作(运算寄存器AL和BL内容送数据总线)o2 o1 o0=000 OP=0X2 X1 X0=001XP W=10M=0S2 S1 S0=000M=0S2 S1 S0=111关闭写使能读FUN 数据总线显示AL值数据总线显示BL值①若运算控制位设为(M S2 S1 S0=0000)则F=AL,即AL内容送到数据总线。

②若运算控制位设为(M S2 S1 S0=0111)则F=BL,即BL内容送到数据总线。

(3)偶字节逻辑运算令M S2 S1 S0(K15 K13~K11=0010),为逻辑与,FUN及总线显示AL逻辑与BL的结果。

令M S2 S1 S0(K15 K13~K11=0011),为逻辑或,FUN及总线显示AL逻辑或BL的结果。

(4)奇字写操作(置数操作)拨动“I/O输入输出单元”开关向寄存器AH和BH置数,操作步骤如下:X2 X1 X0=011 XP W=10o2 o1 o0=011OP=0,按[单拍]o2 o1 o0=010OP=0,按[单拍]数据来源I/O单元置数I/O=XX55h寄存器AH(55h)置数I/O=XX66h寄存器BH(66h)(5)奇字节读操作(运算寄存器AH和BH内容送总线)关闭AH、BH写使能,令K17=K18=1,按下流程分别读AH、BH。

o2 o1 o0=000 OP=0X2 X1 X0=001XP W=00M=0S2 S1 S0=000M=0S2 S1 S0=111关闭写使能读FUN 数据总线显示AH值数据总线显示BH值①若运算控制位设为(M S2 S1 S0=0000)则F=AH,即AH内容送到数据总线。

②若运算控制位设为(M S2 S1 S0=0111)则F=BH,即BH内容送到数据总线。

(6)奇字节逻辑运算令M S2 S1 S0(K15 K13~K11=0010),为逻辑与,FUN及总线显示AH逻辑与BH的结果。

令M S2 S1 S0(K15 K13~K11=0011),为逻辑或,FUN及总线显示AH逻辑或BH的结果。

实验思考验证表2 ALU运算器编码表所列的运算功能。