实验一 通用寄存器传送实验
一、实验目的
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 通用寄存器数据通路
表1 源与目的寻址编码表 总线源编码 M10 M9 M8 功能 X2 X1 X0 0 0 0 禁止 0 0 1 ALU 0 1 0 SP 0 1 1 IOR 1 0 0 MRD 1 0 1 XRD 1 1 0 RRD 1 1 1 PC 表2 IR指令寄存器写入 IR写 IR 1 1 1 MWR 1 1 1 微控制位 OP 1 1 0 W 1 0 X 功能说明 DRCK下降沿打入 IR字写 IRL偶字节写 IRH奇字节写
在线态目的编码 M19 M18 M17 功能 O2 O1 O0 0 0 0 禁止 0 0 1 MAR 0 1 0 BX 0 1 1 AX 1 0 0 SP 1 0 1 IOW 1 1 0 XWR 1 1 1 RWR
表3 IR指令寄存器取指
取指 按钮 功能说明 IR MWR DRCK 1 0 ↓ 打操作码,散转
说明:“↓”表示下降沿有效
W XP OP
总线字长:1=16位字操作,0=8位字节操作 源部件奇偶标志:1=偶寻址,0=奇寻址 目标部件奇偶标志:1=偶寻址,0=奇寻址
四、实验内容
1. 寄存器组写操作 (1) 目的寄存器写编码
目标使能 K19~K17 o2~o0 通用寄存器目标编址 IR IR1 0 0 111 0 1 1 1 K16 OP 1 1 0 1 1 0 K6 W 1 0 X 1 0 X T4 ↑ 功能说明 CX字写 ↑ CL偶字节写(R0) ↑ CH奇字节写(R1) ↑ DX字写 ↑ DL偶字节写(R2) ↑ DH奇字节写(R2)
(2) 寄存器组的字写入
通过“I/O单元”把CX的地址00打入IR,然后向CX写入2211h,操作步骤如下:
数据来源I/O单元X2 X1 X0=011XP W=11置地址I/O=XX00h打地址IR=XX00hMWR IR=11OP=1,按[单拍]MWR IR=00置数据I/O=2211h写数据CX=2211ho2 o1 o0=111OP=1,按[单拍]
通过“I/O单元”把DX的地址02打入IR,然后向DX写入4433h,操作步骤如下:
数据来源I/O单元X2 X1 X0=011XP W=11置地址I/O=XX02h打地址IR=XX02hMWR IR=11OP=1,按[单拍]MWR IR=00置数据I/O=4433h写数据DX=4433ho2 o1 o0=111OP=1,按[单拍]
(3) 寄存器组的字节写入
通过“I/O单元”把CX的地址00打入IR,然后向CL写入55h,操作步骤如下:
数据来源I/O单元X2 X1 X0=011XP W=11置地址I/O=XX00h打地址IR=XX00hMWR IR=11OP=1,按[单拍]MWR IR=00置数据I/O=XX55hW=0写数据CL=55ho2 o1 o0=111OP=0,按[单拍]
在IR保持为“XX00”的条件下,可省略打地址环节,按下流程向CH写入AAh。
置数据I/O=XXAAhX2 X1 X0=011XP W=10写数据CL=55ho2 o1 o0=111OP=0,按[单拍]关闭写选通o2 o1 o0=000
2. 寄存器读操作 (1) 源寄存器读编码 源编码 K10~K8 X2~X0 通用寄存器源编址 IR IR1 0 0 110 0 1 1 1 K7 XP 1 1 0 1 1 0 K6 W 1 0 X 1 0 X CX字读(R1R0) CL偶字节读(R0) CH奇字节读(R1) DX字读(R3R2) DL偶字节读(R2) DH奇字节读(R3) 功能说明
(2) 寄存器组字读
通过“I/O单元”把CX地址打入IR,然后CX送总线,操作步骤如下:
数据来源I/O单元X2 X1 X0=011XP W=11置地址I/O=XX00h打地址IR=XX00hMWR IR=11OP=1,按[单拍]MWR IR=00数据来源CXX2 X1 X0=110XP W=11
通过“I/O单元”把DX地址打入IR,然后DX送总线,操作步骤如下:
数据来源I/O单元X2 X1 X0=011XP W=11置地址I/O=XX02h打地址IR=XX02hMWR IR=11OP=1,按[单拍]MWR IR=00数据来源DXX2 X1 X0=110XP W=11
(3) 寄存器组字节读
通过“I/O单元”把CX地址打入IR,然后按字节方式分别读出CL、CH。