1.实验设备:TEC-8实验系统 2.实验电路 (1)运算器组成实验电路框图 ![](https://i-blog.csdnimg.cn/blog_migrate/6d071b9def4e358c9dc1eab54031459b.png) (2)运算器控制信号和数据信号
运算功能 | 数据来源选择 | 运算结果处理 | 数据指示灯 | M | S3-S0 | RD1-0 | RS1-0 | CIN | SBUS | LDC | LDZ | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | 1-逻辑运算 0-算术运算 | 算术加/减 逻辑与/或 | 选择送往A端口的寄存器 | 选择送往B端口的寄存器 | 低进位输入 | 开关数据送往DBUS | 保存C标志 | 保存Z标志 | 在T3上升沿写入RD1-RD0指定寄存器 | ALU运算结果送往DBUS | 数据总线DBUS上的数据 | ALU A端口数据 | ALU B端口数据 | 备注:对于M、S3-0等控制信号,实验箱上直接提供了指示灯。 对于RD1-0和RS1-0这4个信号,在微程序控制器控制方式下会在SEL3-0指示灯上显示。 | (3)操作模式
操作模式 DP SWC SWB SWA | 实验功能 | 1 0 0 0 | 启动程序运行 | 1 0 0 1 | 写存储器 | 1 0 1 0 | 读存储器 | 1 0 1 1 | 读寄存器 | 1 1 0 0 | 写寄存器 | 1 1 0 1 | 运算器组成实验 | 1 1 1 0 | 双端口存储器实验 | 1 1 1 1 | 数据通路实验 | 3.实验任务 (1)熟悉写运算器内部寄存器的控制信号和让运算器内部的ALU做加、减、与、或运算时的控制信号 (2)理解微程序控制器方式下,验证运算器对下述6组数据进行加、减、与、或运算。 ①A=0F0H,B=10H ②A=0FFH,B=0AAH ③A=10H,B=0F0H ④A=55H,B=0AAH ⑤A=03H,B=05H ⑥A=0C5H,B=61H ⑦A=0AH,B=0AH 4.实验步骤 A. 微程序控制器方式 (1)将控制器转换开关拨到下方微程序位置,将编程开关设置为正常位置,将开关DP拨到向上位置。打开电源。 (2)理解运算器执行加、减、与、或运算的控制信号 在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0 -> 通过数据开关设置R1→ R0 + R1→ R0 - R1→ R0 and R1→ R0 or R1,请分析每个运算器控制信号的作用。(操作模式设为1101) a) 按下CLR复位键,注意此时uA5-uA0全灭,再按QD键。 b) 请预先填写下列表格内容,在实验箱上验证所写信号是否正确。如果不一致,请分析原因。按QD结束每个操作。(表中需写出每个操作步骤相关控制信号的0/1取值,并解释该步骤所执行的操作、实验现象,只需写出并解释与相应操作相关的控制信号和数据信号) 微程序控制方式下运算器实验操作序列控制信号 (操作模式设为1101,以R0=FOH,R1=10H为例)
步骤1 | uA5-uA0 | M | S3-S0 | CIN | LDC | LDZ | SBUS | DRW | ABUS | RD1-0 | RS1-0 | 开关拨数设置R0 | 0BH | 0 | 0000 | 0 | 0 | 0 | 1 | 1 | 0 | 00 | 01 | 实验操作及现象解释: 实验操作:当指示灯uA5--uA0显示0BH时,在数据开关S70~SD0上设置R0。在数据总线DBUS指示灯D7~D0 上可以看到数据是否设置正确,发现错误需及时改正。设置数据正确后,按一次QD按钮,将SD7~SD0上的数据写入R0,进入下一步。 现象解释:设置R0时,74LS181不需要运转,因此它的指示灯全为0;SBUS=1表示数据可以送往DBUS;DRW=1表示允许数据写入到寄存器;ABUS=0表示禁止将ALU运算结果送往DBUS;RD1-RD0值取00表示选择R0的数据送往A端口,RS1-RS0值取01表示选择R1的数据送往B端口。 |
步骤2 | uA5-uA0 | M | S3-S0 | CIN | LDC | LDZ | SBUS | DRW | ABUS | RD1-0 | RS1-0 | 开关拨数设置R1 | 15H | 0 | 0000 | 0 | 0 | 0 | 1 | 1 | 0 | 01 | 00 | 实验操作及现象解释: 实验操作:在数据开关S70~SD0上设置R1。设置数据正确后,按一次QD按钮,将SD7~SD0上的数据写入R1,进入下一步。 现象解释:指示灯uA5--uA0显示15H,这时R0已经写,在指示灯B7~B0上可以观察到设置的R0数值;设置R1时,74LS181不需要运转,因此它的指示灯全为0;SBUS=1表示数据可以送往DBUS;DRW=1表示允许数据写入到寄存器;ABUS=0表示禁止将ALU运算结果送往DBUS;RD1-RD0值取01表示选择R1的数据送往A端口,RS1-RS0值取00表示选择R0的数据送往B端口。 |
步骤3 | uA5-uA0 | M | S3-S0 | CIN | LDC | LDZ | SBUS | DRW | ABUS | RD1-0 | RS1-0 | 进行R1+R2运算 | 16H | 0 | 1001 | 1 | 1 | 1 | 0 | 0 | 1 | 00 | 01 | 实验操作及现象解释: 实验操作:观察并记录加法结果和相应的指示灯信息,完成后按一次QD按钮,进入下一步。 现象解释:指示灯uA5--uA0显示16H。指示灯A7~A0显示被加数R0,指示灯B0~B7显示加数R1,D7~D0指示灯显示运行结果R0+R1;M=0表示算数运算,S3~S0=1001表示进行的加法运算,CIN=1表示低进位输入,LDC=1表示保存C标志,LDZ=1表示保存Z标志;SBUS=0表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 |
步骤4 | uA5-uA0 | M | S3-S0 | CIN | LDC | LDZ | SBUS | DRW | ABUS | RD1-0 | RS1-0 | 进行R1-R2运算 | 17H | 0 | 0110 | 0 | 1 | 1 | 0 | 0 | 1 | 00 | 01 | 实验操作及现象解释: 实验操作:观察并记录减法结果和相应的指示灯信息,完成后按一次QD按钮,进入下一步。 现象解释:指示灯uA5--uA0显示17H。指示灯A7~A0显示被减数R0,指示灯B0~B7显示减数R1,D7~D0指示灯显示运行结果R0-R1;M=0表示算数运算,S3~S0=0110表示进行的减法运算,CIN=0表示低位不进位输入,LDC=1表示保存C标志,LDZ=1表示保存Z标志;SBUS=0表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 |
步骤5 | uA5-uA0 | M | S3-S0 | CIN | LDC | LDZ | SBUS | DRW | ABUS | RD1-0 | RS1-0 | 进行R1 and R2运算 | 18H | 1 | 1011 | 0 | 0 | 1 | 0 | 0 | 1 | 00 | 01 | 实验操作及现象解释: 实验操作:观察并记录与运算结果和相应的指示灯信息,完成后按一次QD按钮,进入下一步。 现象解释:指示灯uA5--uA0显示18H。指示灯A7~A0显示R0,指示灯B0~B7显示R1,D7~D0指示灯显示运行结果R0 and R1;M=1表示逻辑运算,S3~S0=1011表示进行与逻辑运算,CIN=0表示低位不进位输入,LDC=0表示不保存C标志,LDZ=1表示保存Z标志;SBUS=0表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 |
步骤6 | uA5-uA0 | M | S3-S0 | CIN | LDC | LDZ | SBUS | DRW | ABUS | RD1-0 | RS1-0 | 进行R1 or R2运算 | 19H | 1 | 1110 | 0 | 0 | 1 | 0 | 0 | 1 | 00 | 01 | 实验操作及现象解释: 实验操作:观察并记录或运算结果和相应的指示灯信息,完成后按一次QD按钮,进入下一步。 现象解释:指示灯uA5--uA0显示19H。指示灯A7~A0显示R0,指示灯B0~B7显示R1,D7~D0指示灯显示运行结果R0 or R1;M=1表示逻辑运算,S3~S0=1110表示进行的或运算,CIN=0表示低位不进位输入,LDC=0表示保存C标志,LDZ=1表示保存Z标志;SBUS=0表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 |
(3)验证运算器的加、减、与、或运算功能 请预先填好下列表格,并在实验箱上验证所写的数据结果、C、Z标志输出是否正确,分析每个运算的运算结果、C、Z标志位。 微程序控制方式下运算器实验结果数据(操作模式设为1101)
A口 | B口 | 加 | 减 | 与 | 或 | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 0F0H | 10H | 00H | 1 | 1 | E0H | 1 | 0 | 10H | 1 | 0 | 0F0H | 1 | 0 | 实验操作及现象解释: 实验操作:在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0(A) -> 通过数据开关设置R1(B)→ R0 + R1→ R0 - R1→ R0 and R1 → R0 or R1;通过按钮QD进行下一步。 现象解释: 加:C=1表示0F0H+10H产生了进位,Z=1表示0F0H+10H的结果为0; 减:C=1表示0F0H-10H够减,即前者大于后者,Z=0表示0F0H-10H的结果不为0; 与:进行逻辑运算时,C指示灯保持不变,Z=0表示0F0H and 10H的结果不为0; 或:进行逻辑运算时,C指示灯保持不变,Z=0表示0F0H or 10H的结果不为0。 |
A口 | B口 | 加 | 减 | 与 | 或 | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 0FFH | 0AAH | A9H | 1 | 0 | 55H | 1 | 0 | AAH | 1 | 0 | FFH | 1 | 0 | 实验操作及现象解释: 实验操作:在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0(A) -> 通过数据开关设置R1(B)→ R0 + R1→ R0 - R1→ R0 and R1 → R0 or R1;通过按钮QD进行下一步。 现象解释: 加:C=1表示两数相加产生了进位,Z=0表示两数相加的结果不为0; 减:C=1表示两数相减够减,即前者大于后者,Z=0表示两数相减的结果不为0; 与:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相与的结果不为0; 或:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相或的结果不为0。 |
A口 | B口 | 加 | 减 | 与 | 或 | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 10H | 0F0H | 00H | 1 | 1 | 20H | 0 | 0 | 10H | 0 | 0 | F0H | 0 | 0 | 实验操作及现象解释: 实验操作:在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0(A) -> 通过数据开关设置R1(B)→ R0 + R1→ R0 - R1→ R0 and R1 → R0 or R1;通过按钮QD进行下一步。 现象解释: 加:C=1表示两数相加产生了进位,Z=1表示两数相加的结果为0; 减:C=0表示两数相减不够减,即前者小于后者,Z=0表示两数相减的结果不为0; 与:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相与的结果不为0; 或:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相或的结果不为0。 |
A口 | B口 | 加 | 减 | 与 | 或 | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 55H | 0AAH | FFH | 0 | 0 | ABH | 0 | 0 | 00H | 0 | 1 | FFH | 0 | 0 | 实验操作及现象解释: 实验操作:在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0(A) -> 通过数据开关设置R1(B)→ R0 + R1→ R0 - R1→ R0 and R1 → R0 or R1;通过按钮QD进行下一步。 现象解释: 加:C=0表示两数相加没有产生进位,Z=0表示两数相加的结果不为0; 减:C=0表示两数相减不够减,即前者小于后者,Z=0表示两数相减的结果不为0; 与:进行逻辑运算时,C指示灯保持不变,Z=1表示两数相与的结果为0; 或:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相或的结果不为0。 |
A口 | B口 | 加 | 减 | 与 | 或 | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 03H | 05H | 08H | 0 | 0 | FEH | 0 | 0 | 01H | 0 | 0 | 07H | 0 | 0 | 实验操作及现象解释: 实验操作:在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0(A) -> 通过数据开关设置R1(B)→ R0 + R1→ R0 - R1→ R0 and R1 → R0 or R1;通过按钮QD进行下一步。 现象解释: 加:C=0表示两数相加没有产生进位,Z=0表示两数相加的结果不为0; 减:C=0表示两数相减不够减,即前者小于后者,Z=0表示两数相减的结果不为0; 与:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相与的结果不为0; 或:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相或的结果不为0。 |
A口 | B口 | 加 | 减 | 与 | 或 | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 0C5H | 61H | 26H | 1 | 0 | 64H | 1 | 0 | 41H | 1 | 0 | E5H | 1 | 0 | 实验操作及现象解释: 实验操作:在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0(A) -> 通过数据开关设置R1(B)→ R0 + R1→ R0 - R1→ R0 and R1 → R0 or R1;通过按钮QD进行下一步。 现象解释: 加:C=1表示两数相加产生了进位,Z=0表示两数相加的结果不为0; 减:C=1表示两数相减够减,即前者大于后者,Z=0表示两数相减的结果不为0; 与:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相与的结果不为0; 或:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相或的结果不为0。 |
A口 | B口 | 加 | 减 | 与 | 或 | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 数据结果 | C | Z | 0AH | 0AH | 14H | 0 | 0 | 00H | 1 | 1 | 0AH | 1 | 0 | 0AH | 1 | 0 | 实验操作及现象解释: 实验操作:在微程序控制器方式下,计算机的操作依次为:复位 -> 通过数据开关设置R0(A) -> 通过数据开关设置R1(B)→ R0 + R1→ R0 - R1→ R0 and R1 → R0 or R1;通过按钮QD进行下一步。 现象解释: 加:C=0表示两数相加没有产生进位,Z=0表示两数相加的结果不为0; 减:C=1表示两数相减够减,即前者大于后者,Z=1表示两数相减的结果为0; 与:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相与的结果不为0; 或:进行逻辑运算时,C指示灯保持不变,Z=0表示两数相或的结果不为0。 | B. 独立方式 (1)先将电平控制开关K15-K0与运算器的各控制信号连接好。 将控制器转换开关拨到中间独立方式位置,将编程开关设置为正常位置,将开关DP拨到向上位置,打开电源。 (2)用开关SD7-SD0向通用寄存组R0-R3设置数据,并通过读到数据总线上验证数据设置是否正确。 (3)请预先填好下列表格,并在实验箱上验证所写信息是否正确,分析每个操作中有关控制信号所起的作用以及控制效果。 独立方式下写运算器寄存器(操作模式设为1100) (先用导线按下表中开关和控制信号的对应关系连接起来)
操作 | SBUS | DRW | RD1-RD0 | RS1-RS0 | 数据开关状态 | DBUS指示灯 | 数据A指示灯 | 数据B指示灯 | K6 | K4 | K3-K2 | K1-K0 | 开关拨数送R0 | 1 | 1 | 00 | 00 | 1 | AAH | AAH | AAH | 开关拨数送R1 | 1 | 1 | 01 | 01 | 1 | 05H | 05H | 05H | 开关拨数送R2 | 1 | 1 | 10 | 10 | 1 | 10H | 10H | 10H | 开关拨数送R3 | 1 | 1 | 11 | 11 | 1 | 01H | 01H | 01H | 实验操作及现象解释: 把操作模式设为1100—写寄存器功能;把数据开关SBUS和允许写入寄存器开关DRW打开,这样才能向寄存器写入数据;RD1-RD0值取00表示选择R0的数据送往A端口,依此类推;RS1-RS0值取00表示选择R0的数据送往B端口,依此类推。 |
注意:直接通过开关更改RD1-RD0 / RS1-RS0的取值,在数据灯A7-A0 / B7-B0上可查看对应寄存器内容。 (4)验证74181的正逻辑加、减、与、或运算功能。 请预先填好下列表格,在实验箱上验证所写信息是否正确,并分析每个操作中有关控制信号所起的作用以及控制效果。 独立方式下运算器实验(控制方式设为1101)
操作 | M | S3-S0 | CIN | LDC | LDZ | SBUS | ABUS | DRW | RD1-RD0 | RS1-RS0 | DBUS指示灯 | 数据A指示灯 | 数据B指示灯 | K14 | K13-K10 | K9 | K8 | K7 | K6 | K5 | K4 | K3-K2 | K1-K0 | 设置R1 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 00 | 01 | 0FH | 0FH | ~ | 设置R2 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 01 | 00 | 10H | 10H | 0FH | R1 + R2 | 0 | 1001 | 1 | 1 | 1 | 0 | 1 | 0 | 00 | 01 | 00H | 0FH | 10H | 实验现象解释(相加的两个数自行设置,但要求产生溢出): 设置R1=0FH,R2=10H:设置数值时74LS181不需要运作,所以与74LS181相关的信号灯全为0;将数据开关SBUS和允许向寄存器写入数据开关DRW打开,即设为1,这样数据才能写进寄存器;ABUS关闭,不能将ALU运算结果送往数据总线DBUS;①要将R1=0FH送入到A端口,要让A端口接收R0寄存器的数值,所以RD1-RD0=00,RS1-RS=01;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示0FH,B端口还没有值;②要将R2=10H送入到B端口,所以RD1-RD0=01,RS1-RS=00;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示10H,B端口显示0FH,A、B端口的值暂时换位。 R1+R2:设置M=0、S3-S0=1001:此时表示进行的算数加法,CIN=1:表示低位74181有进位输入;LDC=1:表示在 T 3的上升沿将运算得到的进位保存到 C 标志寄存器;LDZ=1:表示如果运算结果为0,在 T 3的上升沿,将1写入到 Z 标志寄存器;如果运算结果不为0,将0保存到 Z 标志寄存器;SBUS=DRW=0,表示此时禁止写入;ABUS打开,表示允许将ALU运算结果送往DBUS;RD1-RD0、RS1-RS0在进行算数时无意义,DBUS指示灯显示加法结果,数据A指示灯显示R1,数据B指示灯显示R2。 |
操作 | M | S3-S0 | CIN | LDC | LDZ | SBUS | ABUS | DRW | RD1-RD0 | RS1-RS0 | DBUS指示灯 | 数据A指示灯 | 数据B指示灯 | K14 | K13-K10 | K9 | K8 | K7 | K6 | K5 | K4 | K3-K2 | K1-K0 | 设置R1 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 00 | 01 | 03H | 03H | ~ | 设置R2 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 01 | 00 | 05H | 05H | 03H | R1 - R2 | 0 | 0110 | 0 | 1 | 1 | 0 | 1 | 0 | 00 | 01 | FEH | 03H | 05H | 实验现象解释(相减的两个数自行设置,但要求C标志为0): 设置R1=03H,R2=05H:设置数值时74LS181不需要运作,所以与74LS181相关的信号灯全为0;将数据开关SBUS和允许向寄存器写入数据开关DRW打开,即设为1,这样数据才能写进寄存器;ABUS关闭,不能将ALU运算结果送往数据总线DBUS;①要将R1=03H送入到A端口,要让A端口接收R0寄存器的数值,所以RD1-RD0=00,RS1-RS=01;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示03H,B端口还没有值;②要将R2=05H送入到B端口,所以RD1-RD0=01,RS1-RS=00;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示05H,B端口显示03H,A、B端口的值暂时换位。 R1-R2:设置M=0、S3-S0=0110:此时表示进行的算数减法,CIN=0:表示低位74181无进位输入;LDC=1:表示在 T 3的上升沿将运算得到的进位保存到 C 标志寄存器;LDZ=1:表示如果运算结果为0,在 T 3的上升沿,将1写入到 Z 标志寄存器;如果运算结果不为0,将0保存到 Z 标志寄存器;SBUS=DRW=0,表示此时禁止写入;ABUS打开,表示允许将ALU运算结果送往DBUS;RD1-RD0、RS1-RS0在进行算数时无意义,DBUS指示灯显示加法结果,数据A指示灯显示R1,数据B指示灯显示R2。 |
操作 | M | S3-S0 | CIN | LDC | LDZ | SBUS | ABUS | DRW | RD1-RD0 | RS1-RS0 | DBUS指示灯 | 数据A指示灯 | 数据B指示灯 | K14 | K13-K10 | K9 | K8 | K7 | K6 | K5 | K4 | K3-K2 | K1-K0 | 设置R1 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 00 | 01 | 04H | 04H | ~ | 设置R2 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 01 | 00 | 02H | 02H | 04H | R1 and R2 | 1 | 1011 | 0 | 0 | 1 | 0 | 1 | 0 | 00 | 01 | 00H | 04H | 02H | 实验现象解释: 设置R1=04H,R2=02H:设置数值时74LS181不需要运作,所以与74LS181相关的信号灯全为0;将数据开关SBUS和允许向寄存器写入数据开关DRW打开,即设为1,这样数据才能写进寄存器;ABUS关闭,不能将ALU运算结果送往数据总线DBUS;①要将R1=04H送入到A端口,要让A端口接收R0寄存器的数值,所以RD1-RD0=00,RS1-RS=01;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示0FH,B端口还没有值;②要将R2=02H送入到B端口,所以RD1-RD0=01,RS1-RS=00;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示02H,B端口显示04H,A、B端口的值暂时换位。 R1 and R2:设置M=1、S3-S0=1011:此时表示进行的逻辑与,CIN=0:表示低位74181无进位输入;LDC=0:表示不需要C 标志寄存器;LDZ=1:表示如果运算结果为0,在 T 3的上升沿,将1写入到 Z 标志寄存器;如果运算结果不为0,将0保存到 Z 标志寄存器;SBUS=DRW=0,表示此时禁止写入;ABUS打开,表示允许将ALU运算结果送往DBUS;DBUS指示灯显示与结果,数据A指示灯显示R1,数据B指示灯显示R2。 |
操作 | M | S3-S0 | CIN | LDC | LDZ | SBUS | ABUS | DRW | RD1-RD0 | RS1-RS0 | DBUS指示灯 | 数据A指示灯 | 数据B指示灯 | K14 | K13-K10 | K9 | K8 | K7 | K6 | K5 | K4 | K3-K2 | K1-K0 | 设置R1 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 00 | 01 | 04H | 04H | ~ | 设置R2 | 0 | 0000 | 0 | 0 | 0 | 1 | 0 | 1 | 01 | 00 | 02H | 02H | 04H | R1 or R2 | 1 | 1110 | 0 | 0 | 1 | 0 | 1 | 0 | 00 | 01 | 06H | 04H | 02H | 实验现象解释(相异或的两个数自行设置,但要求能用于将某一位取反): 设置R1=04H,R2=02H:设置数值时74LS181不需要运作,所以与74LS181相关的信号灯全为0;将数据开关SBUS和允许向寄存器写入数据开关DRW打开,即设为1,这样数据才能写进寄存器;ABUS关闭,不能将ALU运算结果送往数据总线DBUS;①要将R1=04H送入到A端口,要让A端口接收R0寄存器的数值,所以RD1-RD0=00,RS1-RS=01;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示0FH,B端口还没有值;②要将R2=02H送入到B端口,所以RD1-RD0=01,RS1-RS=00;此时DBUS指示灯显示输入的数据,ALU的A端口指示灯显示02H,B端口显示04H,A、B端口的值暂时换位。 R1 or R2:设置M=1、S3-S0=1110:此时表示进行的逻辑或,CIN=0:表示低位74181无进位输入;LDC=0:表示无进位,不需要保存;LDZ=1:表示如果运算结果为0,在 T 3的上升沿,将1写入到 Z 标志寄存器;如果运算结果不为0,将0保存到 Z 标志寄存器;SBUS=DRW=0,表示此时禁止写入;ABUS打开,表示允许将ALU运算结果送往DBUS;RD1-RD0、RS1-RS0在进行算数时无意义,DBUS指示灯显示与结果,数据A指示灯显示R1,数据B指示灯显示R2。 | 5.思考题 (1)ALU有记忆功能吗?理由是什么? 答:没有;ALU只负责处理数据而不负责存储数据;
- 在利用ALU做算术或逻辑运算时,为什么ALU的A端口和B端口的数据确定后,在数据总线DBUS上能够直接看到,而标志C/Z的值要在下一步才能看到?
答:运算器 ALU 由 2 片 74LS181 算术逻辑器件构成。运算器 ALU 的输出 发送到数据总线 DBUS 上,进位信号 C、标志位为零 Z,分别保存在寄存器 74LS74 中,另外 C、Z 还配置了两个二极管作为运算器进位与标志的状态。运算器参与 运算的数据分别来自于双端口寄存器的 A、B 两个端口。74LS181 构成的 8 位运 算器的运算类型由选择端口 S3-S0 选择完成,按一次 QD 才显示 C,Z 参与运算的数据,数据通过实验台操作板上的 8 个二进制数据开 关 SD7-SD0 来设置,然后输入到双端口通用寄存器堆 RF 中。数据开关 SD7-SD0 是 8 个双位开关。用手拨动这些开关,能够生成需要的 SD7-SD0 的值。数据开关 驱动器 SWD 是 1 片 74LS244(U58)。在信号 SBUS 为 1 时,SD7-SD0 通过 SWD 送往 数据总线 DBUS.
- 运算器相关的控制信号共有15个,这些控制信号各起什么作用?在每个操作步骤中,是否所有控制信号均会被使用到?请举例说明之。
答:15个控制信号如下: M 、S3、S2、S1、S0:控制74181的算术逻辑运算类型。 CIN:低位74181的进位输入。 RD1-RD0:选择送 ALU 的 A 端口的寄存器。 RS1-RS0:选择送 ALU 的 B 端口的寄存器。 DRW:为1时,在 T 3上升沿对 RDI 、RD0选中的寄存器进行写操作,将数据总线 DBUS 上的数D7~D0写入选定的寄存器。 LDC :当它为1时,在 T 3的上升沿将运算得到的进位保存到 C 标志寄存器。 LDZ :当它为1时,如果运算结果为0,在 T 3的上升沿,将1写入到 Z 标志寄存器;如果运算结果不为0,将0保存到 Z 标志寄存器。 ABUS:当它为1时,将开关数据送数据总线 DBUS ;当它为0时,禁止开关数据送数据总线 DBUS 。 SBUS:当它为1时,将运算结果送数据总线 DBUS ;当它为0时,禁止运算结果送数据总线 DBUS 。 在每个操作步骤中,所有控制信号并没有被完全使用,比如在进行数值设置时,与74LS181有关的控制都没用到。
- 在做加法运算时,若两数相加有进位,C标志输出1还是0?
答:输出1;比如A的第一组数据 0F0H+10H=00H。 (5)在做减法运算时,若两数相减不够减,C标志输出1还是0?请分析原因,并举例说明之。 答:不够减时C标志输出0;计算机巧妙的用补码来表示负数,然后通过和一个负数(补码)相加,来实现减法的操作,如果不够减的话,即不会产生进位;比如 55H-0AAH=ABH; |