文档库 最新最全的文档下载
当前位置:文档库 › 实验二 算术运算实验

实验二 算术运算实验

实验二 算术运算实验
实验二 算术运算实验

实验二算术运算实验

一、实验目的

1、掌握MASM for Windows 环境下的汇编语言编程环境使用;

2、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD

码的表示形式;

3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志

位的影响及测试方法;

4、掌握无符号数和有符号数运算区别及编程方法;

5、掌握BCD 码调整指令的使用方法

二、软硬件实验环境

1、硬件环境:惠普64 位一体化计算机及局域网;

2、软件环境:windows 8,红蜘蛛管理系统,MASM for Windows。

三、实验基本原理

算术运算实验需要对运行结果进行调试及查看状态字,其相关知识如下。

1) 标志位

在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。

表1标志名和状态符号的对照表参照表

2) 加减法指令

ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。

3) 乘除法指令

MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV 表示带符号数除法指令。

4) 符号位扩展指令

CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。

5) BCD码的调整指令

在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。

组合的BCD码加法调整指令DAA;

组合的BCD码减法调整指令DAS;

非组合的BCD码加法调整指令AAA;

非组合的BCD码减法调整指令AAS;

乘法的非组合BCD码调整指令AAM;

除法的非组合BCD码调整指令AAD。

8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。

表2数据类型的数据运算表

四、实验步骤与内容

1)对于表格中三组无符号数,试编程求这三组数的指定运算结果,并考虑计算结果对标志寄存器中状态标志位的影响:

①实验分析

本实验要求简单,仅对指定三组数进行基本运算。只需使用ADD、SUB、MUL、DIV四个运算命令,并以MOV命令作为数值转移的手段即可。运算结果和状态标志的情况可以通过debug调试中的T命令进行逐步查看。

需要注意的主要有以下几点:

1.在进行加法和乘法运算时,会出现对高位的进位扩展。因此,在记录结

果的时候不能仅仅记录低2位(十六进制)的结果,应记录包含高位的

完整结果;

2.在使用MUL和DIV命令时,语句的写法与ADD和SUB有区别;

3.除法运算既可得到商,也可得到余数,余数存在DL中;

4.查看结果时以三个语句为一次运算,输入三个T命令后的结果才是此次

运算的结果。

②流程图

③程序样例

1、

DATAS SEGMENT

;此处输入数据段代码

BUF1 DB 0ABH,64H,0A2H

BUF2 DB 78H,5AH,3FH

BUF3 DB 10 DUP(?)

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,2

Q1:

MOV AH,0H

MOV AL,BUF1[SI]

MOV BL,AL

MOV AL,BUF2[SI]

ADD AX,BX ;进行运算

MOV BUF3[SI],AL

ADD SI,1H

DEC CX

JNZ Q1 ;跳转再做一次第二组数的加法运算

MOV AX,4CH

INT 21H

CODES ENDS

END START

2、

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,2

Q1:

MOV AH,0H

MOV AL,BUF2[SI]

MOV BL,AL

MOV AL,BUF1[SI]

SUB AX,BX

MOV BUF3[SI],AL

ADD SI,1H ;do the operation

DEC CX

JNZ Q1 ;do it again with the second group of numbers

MOV AX,4CH

INT 21H

CODES ENDS

END START

3、DATAS SEGMENT

;此处输入数据段代码

BUF1 DB 0ABH,64H,0A2H

BUF2 DB 78H,5AH,3FH

BUF3 DB 10 DUP(?)

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV SI,2

MOV CX,1

Q1:

MOV AH,0H

MOV AL,BUF2[SI]

MOV BL,AL

MOV AL,BUF1[SI]

DIV BX

MOV BUF3[SI],AL

ADD SI,1H ;do the operation

DEC CX

JNZ Q1 ;do it again with the second group of numbers

MOV AX,4CH

INT 21H

CODES ENDS

END START

④实验结果

0ABH+78H

64H+5AH

0ABH-78H

64H-5AH

0A2H*3FH

0A2H/3FH

2) 在数据段定义了两个多精度的有符号16进制数,BUF1和BUF2。求两数的和与差,并将计算值存放在BUF2为首地址的缓冲区中;同时将两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在BUF2为首地址的缓冲区中。试编程实现上述运算。

BUF1 DB 92H,98H,45H,64H,78H

BUF2 DB 33H,46H,17H,45H,52H

①实验分析

本实验的思想是把这个两个多精度数进行按精度(每两位)进行运算,考虑进位与借位,每种运算都可以使用循环和带进位加法,或循环和带进位减法进行实现。对于十进制数运算的要求,再辅以DAA和DAS两种十进制调整命令,将结果变为BCD码即可。

本实验中需要注意的有以下几点:

1.本实验要求就过存入以BUF2为首地址的缓冲区。为在运算时保护BUF2的数据,需

定义另一个存储空间来存储和BUF2一样的数据;

2.在进行不同运算的间隙应当进行清除进位标志的操作,即使用CLC命令,避免上一

运算的进位影响下一位运算的结果;

3.DAA和DAS都只能对AL里的结果转换为压缩BCD码,因此十进制加减结果必须存

入AL里,且转换为压缩BCD码的结果要靠读取AL来获得。

②程序流程图

③程序样例

1、DATAS SEGMENT

;此处输入数据段代码

BUF1 DB 92H,98H,45H,64H,78H

BUF2 DB 33H,46H,17H,45H,52H

BUF3 DB 10 DUP(?)

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,4

MOV AH,00H

Q1:

MOV AL,BUF2[SI]

MOV BL,AL

MOV AL,BUF1[SI]

ADC AL,BL

MOV BUF2[SI],AL

INC SI

DEC CX

JNZ Q1

MOV AX,4CH

INT 21H

CODES ENDS

END START

2、DATAS SEGMENT

;此处输入数据段代码

BUF1 DB 92H,98H,45H,64H,78H

BUF2 DB 33H,46H,17H,45H,52H

BUF3 DB 10 DUP(?)

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,4

MOV AH,00H

Q1:

MOV AL,BUF2[SI]

MOV BL,AL

MOV AL,BUF1[SI]

SBB AL,BL

MOV BUF2[SI],AL

INC SI

DEC CX

JNZ Q1

MOV AX,4CH

INT 21H CODES ENDS

END START

3、DATAS SEGMENT

;此处输入数据段代码

BUF1 DB 92H,98H,45H,64H,78H

BUF2 DB 33H,46H,17H,45H,52H

BUF3 DB 10 DUP(?)

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,4

MOV AH,00H

Q1:

MOV AL,BUF2[SI]

MOV BL,AL

MOV AL,BUF1[SI]

ADC AL,BL

DAA

MOV BUF2[SI],AL

INC SI

DEC CX

JNZ Q1

MOV AX,4CH

INT 21H

CODES ENDS

END START

4、DATAS SEGMENT

;此处输入数据段代码

BUF1 DB 92H,98H,45H,64H,78H

BUF2 DB 33H,46H,17H,45H,52H

BUF3 DB 10 DUP(?)

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,4

MOV AH,00H

Q1:

MOV AL,BUF2[SI]

MOV BL,AL

MOV AL,BUF1[SI]

SBB AL,BL

DAA

MOV BUF2[SI],AL

INC SI

DEC CX

JNZ Q1

MOV AX,4CH

INT 21H

CODES ENDS

END START

④实验结果

3) 编程计算280*584/190,运算结果用十六进制表示。要求上式计算结果的商存入AX,余数存入DX寄存器。

①实验分析

本实验要求很简单,可用基本运算直接完成。值得注意的就是最后进行除法运算时,DIV命令的执行结果自动将商存在AX中,余数存于DX中,可直接满足实验要求,故无需多余操作。

②程序流程图

实验流程即为从算式最左至最右逐步运算的基本运算律,故流程图略。

③程序样例

DATAS SEGMENT

DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV AX,280

MOV BX,584

MUL BX

MOV BX,190

DIV BX

MOV AH,4CH

INT 21H

CODES ENDS

END START

④实验结果

商为AX中的035CH 余数为DX中的0078H

五、实验感想与收获

本次实验的难度比上一次有了很大的提高,也带给我们更多的收获。

第一个实验中我就已经在尝试使用循环的结构来进行加减法,这给我第二个实验的进行提供了极大的便利。但是在进行第二个实验的时候,由于一开始在每个循环节中对SI+1的操作没有使用INC指令,而是使用了ADD SI,1这样的指令,影响了进位符,并最终导致了结果的输出错误。经过了数次调试后终于发现了这个问题,并解决。在这个过程中,我对ADD,ADC,SUB,SBB等指令的作用和原理有了很深入的理解,并且能够灵活的运用这几个指令。可以说非常的有收获。

实验二图像的代数运算

昆明理工大学信息工程与自动化学院学生实验报告 ( 2012 —2013 学年第二学期) 一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验原理 图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式: C(x,y) = A(x,y) + B(x,y) C(x,y) = A(x,y) - B(x,y) C(x,y) = A(x,y) * B(x,y) C(x,y) = A(x,y) / B(x,y) 图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。 使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。下表列举了所有图像处理工具箱中的图像代数运算函数。

表2-1 图像处理工具箱中的代数运算函数 能够接受uint8和uint16数据,并返回相同格式的图像结果。虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。 代数运算的结果很容易超出数据类型允许的范围。例如,uint8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是uint8,那么大于255的结果(包括无穷大inf)将被设置为255。 注意:无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。三、实验步骤 1.图像的加法运算 图像相加一般用于对同一场景的多幅图像求平均效果,以便有效地降低具有叠加性质的随机噪声。直接采集的图像品质一般都较好,不需要进行加法运算处理,但是对于那些经过长距离模拟通讯方式传送的图像(如卫星图像),这种处理是必不可少的。 在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。imadd函数的调用格式如下:Z = imadd(X,Y) 其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。 图像加法在图像处理中应用非常广泛。例如,以下代码使用加法操作将图2.1中的(a)、(b)两幅图像叠加在一起: I = imread(‘rice.tif’); J = imread(‘cameraman.tif’); K = imadd(I,J); imshow(K); 叠加结果如图2.2所示。

实验二算术运算实验

实验二算术运算实验 一、实验目的 1、掌握MASM for Windows 环境下的汇编语言编程环境使用; 2、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式; 3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志 位的影响及测试方法; 4、掌握无符号数和有符号数运算区别及编程方法; 5、掌握BCD 码调整指令的使用方法 二、软硬件实验环境 1、硬件环境:惠普64 位一体化计算机及局域网; 2、软件环境:windows 8,红蜘蛛管理系统,MASM for Windows。 三、实验基本原理 算术运算实验需要对运行结果进行调试及查看状态字,其相关知识如下。 1) 标志位 在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。 表1标志名和状态符号的对照表参照表 2) 加减法指令 ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。 3) 乘除法指令 MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV

表示带符号数除法指令。 4) 符号位扩展指令 CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。 5) BCD码的调整指令 在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。 组合的BCD码加法调整指令DAA; 组合的BCD码减法调整指令DAS; 非组合的BCD码加法调整指令AAA; 非组合的BCD码减法调整指令AAS; 乘法的非组合BCD码调整指令AAM; 除法的非组合BCD码调整指令AAD。 8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。 表2数据类型的数据运算表 四、实验步骤与内容 1) 对于表格中三组无符号数,试编程求这三组数的指定运算结果,并考虑计算结果对标志寄存器中状态标志位的影响: ①实验分析 本实验要求简单,仅对指定三组数进行基本运算。只需使用ADD、SUB、MUL、DIV四个运算命令,并以MOV命令作为数值转移的手段即可。运算结果和状态标志的情况可以通过debug调试中的T命令进行逐步查看。 需要注意的主要有以下几点:

计算机组成原理运算器实验—算术逻辑运算实验

实验报告 、实验名称 运算器实验—算术逻辑运算实验 、实验目的 1、了解运算器的组成原理。 2、掌握运算器的工作原理。 3、掌握简单运算器的数据传送通路。 4、验证运算功能发生器( 74LS181)的组合功能 三、实验设备 TDN-CM++ 计算机组成原理教学实验系统一套,导线若干四、实验原理 实验中所用的运算器数据通路如图1-1 所示。其中两片74LSl81以串行方式构成8 位字长的ALU,ALU 的输出经过一个三态门(74LS245)和数据总线相连。三态门由ALU-R 控制,控制运算器运算的结果能否送往总线,低电平有效。为实现双操作数的运算,ALU 的两个数据输入端分别由二个锁存器DR1、DR2 (由74LS273实现)锁存数据。要将数据总线上的数据锁存到DRl、DR2 中,锁存器的控制端LDDR1 和DDR2必须为高电平,同时由T4 脉冲到来。 数据开关“( INPUT DEVICE")用来给出参与运算的数据,经过三态 (74LS245) 后送入数据总线,三态门由SW—B控制,低电平有效。数据显示灯“( BUS UNIT") 已和数据总线相连,用来显示数据总线上的内容。 图中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4 为脉冲信号外,其它均为电平信号。由于实验电路中的时序信号均已连至“W/R UNIT ”的相应时序信号引出端,因此,在进行实验时,只需将“W /R UNIT"的T4接至“ STATE UNIT ”的微动开关KK2 的输入端,按动微动开关,即可获得实验所需的单脉冲。 ALU 运算所需的电平控制信号S3、S2、S1、S0 、Cn、M、LDDRl、 LDDR2 、ALU-B 、SW-B均由“ SWITCH UNIT ”中的二进制数据开关来模拟,其中Cn、ALU —B、SW 一 B 为低电平有效LDDR1 、LDDR2 为高电平有效。 对单总线数据通路,需要分时共享总线,每一时刻只能由一组数据送往总线。

实验二 算术运算类操作实验 (基础与设计)

实验二算术运算类操作实验 (基础与设计) 一、实验要求和目的 1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式; 2、掌握各类运算类指令对各状态标志位的影响及测试方法; 3、熟悉汇编语言二进制多字节加减法基本指令的使用方法; 4、熟悉无符号数和有符号数乘法和除法指令的使用; 5、掌握符号位扩展指令的使用。 6、掌握BCD 码调整指令的使用方法 二、软硬件环境 1、硬件环境:计算机系统 windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 本实验主要进行算术运算程序设计和调试,涉及到的知识点包括: 1.加减法处理指令 主要有加法指令ADD,带进位加法ADC,减法指令SUB,带进位减法指令SBB。 2.乘除法指令和符号位扩展指令 主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令IDIV,以及符号位从字节扩展到字的指令CBW 和从字扩展到双字的指令CWD。3.BCD 码的调整指令 主要有非压缩的BCD 码加法调整指令DAA,压缩的BCD 码减法调整指令DAS,非压缩的BCD 码加法调整指令AAA,非压缩的BCD 码减法调整指令AAS,乘法的非压缩BCD码调整指令AAM,除法的非压缩BCD 码调整指令AAD。 8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令,可对下表所示的数据类型进行数据运算。 四、实验内容与步骤 1、对于两组无符号数,087H 和034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响。 设计流程:

《8位算术逻辑运算实验》

3.2 算术逻辑运算部件 1位全加器 n 位并行加法器 ALU 单元 乘、除 法器 运算器 3.2.1 加法单元 若:+1101,+1111 两数相加,且分别放入A 、B 两个寄存器。 0 0 1 1 0 1 (补码、双符号位表示) +) 0 0 1 1 1 1 0 1 1 1 0 0 第3位:输入量: Ai(1),Bi(1), C i-1(1) 本位进位 C i ∑i C i-1 A i B i 低位进位 本位操作数 输入、输出量之间的关系式: Σi =(A B i C i-1 (1) C i = A i B i A B i )C i-1 (2) 根据上式,得出一位全加器的逻辑电路图: 根据(1)式得: 如果三个输人中1的个数为奇数,则本位和为1,否则为0。 根据(2)式得: 当本位的两个输入A i 、B i 均为1时,不管低位有无进位C i-1传来,都必然产生进位C i ;若C i-1为1,只要A i 、B i 中有一个为1,也必然产生进位。 i-1 i-1 i i i i (a ) (b ) 进位链 选择逻 辑控制 移位器 寄存器组 选择器

3.3.1 2并行加法器与进位逻辑结构 一、串行加法器 1.定义:如果每步只求一位和,将n 位加分成n 步实现,这样的加法器称为串行 加法器。 2.组成: 1 个一位全加器 1个移位寄存器:从低到高串行提供操作数相加; 1个寄存器 1个触发器 3.特点:结构简单,速度极慢。 二、并行加法器 1.定义:如果用n 位全加器一步实现n 位相加,即n 位同步相加,这样的加法器称为并行加法器。 2.组成: n 位加法器 并行加法器 串行进位链 进位链 并行进位链 根据(指C i-1 )输入量提供时间的不同,将进位链分为带串行进位链的并行加法器,带并行进位链的并行加法器。 加法器的运算速度不仅与全加器的运算速度有关,更主要的因素是取决于进位传递速度。 3.进位信号的基本逻辑: C i = A i B i +(A i )C i-1 令Gi= A i B i 进位产生函数 Pi = A i ,进位传递函数 4.串行进位链 (1)定义:各级进位信号直接依赖于低一级的进位信号 (2)关系式: C 1 = G 1 + P 1C 0 C 2 = G 2 + P 2C 1 C 3 = G 3 + P 3C 2 。。。。。。。。。 C n = G n + P n C n-1 (3)结构图:

16位算术逻辑运算实验

16 位算术逻辑运算实验 一、实验内容 1、实验原理 实验中所用16位运算器数据通路如图3-3所示。其中运算器由四片74LS181以并/串形成16位字长的ALU构成。低8位运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,低8位数据总线通过LZD0~LZD7显示灯显示;高8位运算器的输出经过一个三态门74LS245(U33`)到ALUO1`插座,实验时用8芯排线和高8位数据总线BUSD8~D15插座KBUS1或KBUS2相连,高8位数据总线通过LZD8~LZD15显示灯显示;参与运算的四个数据输入端分别由四个锁存器74LS273(U29、U30、U29`、U30、)锁存,实验时四个锁存器的输入并联后用8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据源来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,输入的数据通过LD0~LD7显示。

本实验用到6个主要模块:⑴低8位运算器模块,⑵数据输入并显示模块,⑶数据总线显示模块,⑷功能开关模块(借用微地址输入模块),⑸高8位运算器模块,⑹高8位(扩展)数据总线显示模块。根据实验原理详细接线如下(接线⑴~⑸同实验一): ⑴ALUBUS连EXJ3; ⑵ALUO1连BUS1; ⑶SJ2连UJ2; ⑷跳线器J23上T4连SD; ⑸LDDR1、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式); ⑹AR跳线器拨在左边,同时开关AR拨在"1"电平; ⑺ALUBUS`连EXJ2;

计算机组成原理实验报告材料

福建农林大学计算机与信息学院信息工程类实验报告系:计算机科学与技术专业:计算机科学与技术年级: 09级 姓名:张文绮学号: 091150022 实验课程:计算机组成原理 实验室号:___田405 实验设备号: 43 实验时间:2010.12.19 指导教师签字:成绩: 实验一算术逻辑运算实验 1.实验目的和要求 1. 熟悉简单运算器的数据传送通路; 2. 验证4位运算功能发生器功能(74LS181)的组合功能。 2.实验原理 实验中所用到的运算器数据通路如图1-1所示。其中运算器由两片74181

以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74373)锁存,锁存器的输入连接至数据总线,数据开关INPUT DEVICE用来给出参与运算的数据,并经过一个三态门(74245)和数据总线相连,数据显示灯“BUS UNIT”已和数据总线相连,用来显示数据总线内容。 图1-2中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号,其它均为电平信号。由于实验电路中的时序信号均已连至W/R UNIT的相应时序信号引出端,因此,在进行实验时,只需将W/R UNIT 的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲,而S3,S2,S1,S0,Cn,LDDR1,LDDR2,ALU-B,SW-B各电平控制信号用SWITCH UNIT中的二进制数据开关来模拟,其中Cn,ALU-B,SW-B为低电平控制有效,LDDR1,LDDR2为高电平有效。 3.主要仪器设备(实验用的软硬件环境) ZYE1603B计算机组成原理教学实验系统一台,排线若干。 4.操作方法与实验步骤

实验二算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作 一、实验目的 1.熟悉算术逻辑运算指令和移位指令的功能。 2.了解标志寄存器各标志位的意义和指令执行对它的影响。 二、实验预习要求 1.复习8086指令系统中的算术逻辑类指令和移位指令。2.按照题目要求在实验前编写好实验中的程序段。 三、实验任务 1.实验程序段及结果表格如表: 表

2.用BX 寄存器作为地址指针,从BX 所指的内存单元(0010H)开始连续存入(10H 、04H 、30H),接着计算内存单元中的这三个数之和,和放在 单元中,再求出这三个数之积,积放0014单元中。写出完成此功能的程

3 后结果(AX)= (1) 传送15H 到AL 寄存器; (2) 再将AL 的内容乘以2 ; (3) 接着传送15H 到BL 寄存器; (4) 最后把AL 的内容乘以BL 的内容。 4商= (1) 传送数据2058H 到DS:1000H 单元中,数据12H 到DS:1002H 单元中; (2) 把 DS:1000H 单元中的数据传送到AX 寄存器; (3) 把AX 寄存器的内容算术右移二位; (4) 再把AX 寄存器的内容除以DS:1002H 字节单元中的数; (5) 最后把商存入字节单元DS:1003H 中。 5.下面的程序段用来清除数据段中从偏移地址0010H 开始的12元的内容(即将零送到这些存储单元中去)。 (1) 将第4条比较指令语句填写完整(划线处)。 MOV SI ,0010H NEXT: MOV WORD PTR[SI],0 ADD SI ,2 CMP SI ,答案 22H (或者20H ) JNE NEXT HLT (2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H 开始),则上述程序段应如何修改 上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改变。 6. 输入并运行表中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。

《计算机组成原理》实验报告---8位算术逻辑运算实验

. '. 计算机专业类课程 实验报告 课程名称:计算机组成原理 学 院:信息与软件工程学院 专 业:软件工程 学生姓名: 学 号: 指导教师: 日 期: 2012 年 12 月 15 日

电子科技大学 实验报告 一、实验名称:8位算术逻辑运算实验 二、实验学时:2 三、实验内容、目的和实验原理: 实验目的: 1.掌握算术逻辑运算器单元ALU(74LS181)的工作原理。 2.掌握模型机运算器的数据传送通路组成原理。 3.验证74LS181的组合功能。 4.按给定数据,完成实验指导书中的算术/逻辑运算。 实验内容: 使用模型机运算器,置入两个数据DR1=35,DR2=48,改变运算器的功能设定,观察运算器的输出,记录到实验表格中,将实验结果对比分析,得出结论。 实验原理: 1.运算器由两片74LS181以并/串形式构成8位字长的ALU。

. '. 2.运算器的输出经过一个三态门(74LS245)和数据总线相连。 3.运算器的两个数据输入端分别由两个锁存器(74LS273)锁存。 4.锁存器的输入连至数据总线,数据开关(INPUT DEVICE)用来给 出参与运算的数据,并经过一三态门(74LS245)和数据总线相连。 5.数据显示灯(BUS UNIT)已和数据总线相连,用来显示数据总线内 容。 实验器材(设备、元器件):模型机运算器 四、实验步骤: 1. 仔细查看试验箱,按以下步骤连线 1)ALUBUS连EXJ3 2) ALU01连BUS1 3) SJ2连UJ2 4) 跳线器J23上T4连SD 5) LDDR1,LDDR2,ALUB,SWB四个跳线器拨在左边 6) AR跳线器拨在左边,同时开关AR拨在“1”电平 2. 核对线路,核对正确后接通电源 3. 用二进制数据开关KD0-KD7向DR1和DR2寄存器置入8位运算数据。

计算机组成原理实验报告一 算术逻辑运算器

算术逻辑运算器 一.实验目的与要求 试验目的:1、掌握算术运算器单元ALU(74LS181)的工作原理。 2、掌握简单运算器的数据传送通道。 3、验算由74LS181等组合逻辑电路组成的运算功能发生器运算功能。 4、能够按给定数据,完成实验指定的算术/逻辑运算。 试验要求:按练习的要求输入数据和完成相应的操作,将实验结果填入表格二.实验方案 1、按实验连线图接好线,仔细检查正确与否,无误后才接通电源。 2、用二进制数据开关分别向DR1寄存器和DR2寄存器置数。 3、通过总线输出DR1寄存器和DR2寄存器的内容。 4、比较实验结果和理论值是否一致,如果不一致,就分析原因,然后重做。 三.实验结果 练习一表1.1.2 练习二表1.1.3

1.实验结果分析 ●实验结果和理论值一致,讲明实验操作过程正确,实验结果准确无误。 2.结论 ●要有理论基础才可以做好实验的每一步,所以,平时一定要学好理论知识。 3.问题与讨论 我们这个小组,在做第二个实验时就遇到了很多问题,就是我们我无论输入什么显示灯都不变,然后我们就互相讨论,但是还是没办法解决,后来问了老师才知道我们插错线。 4.实验总结 (1)以前没有做过这种实验,所以实验前我做了充分的预习。但预习毕竟不是实际操

作,经常会在想实际情况会是什么样,在实际操作过程中我遇到了不少的困难,例如我做第二个实验时就插错线,幸好在老师的帮助下还加上自己的思考,终于把问题解决掉了。我觉得,实验前老师应该做些示范给我们看,这样我们会学得更快。 (2)在做表1.1.4的实验时,不知道怎样查出S3、S2、S1、S0、M、Cn的值,问周围的同学,他们也不知道。因为这个很重要,直接影响到后面的实验,所以请教了老师。 经过老师的解释后,我顺利地完成了后面的实验。 5.思考题 1)写出本实验中的各控制端的作用。 答:S0 S1 S2 S3(它们共同决定运算器执行哪一种运算)M(决定是算术运算还是逻辑运算). CN(表示有无进位) SW-B(输入三态门控制“INPUT DEVICE”中的八位数据开关D7-D0的数据是否送到数据总线BUS上) ALU-B(输出三态门,控制运算器的运算结果是否送到数据总线BUS)LDDR1 LDDR2 (寄存器,寄存数据) 2)在实验中哪些控制端高电平有效,哪些低电平有效? 答:高电平有效(LDDR1 LDDR2)低电平有效(CN ALU-B SW-B) 3)在实验正常的输入和输出操作中,SW-B和ALU-B为什么不能同时为0的状态? 答:ALU-B SW-B都是低电平有效,如果同时为低电平,这将导致数据一边输入一边输出。 4)DR1置数完成后,为什么要关闭控制端LDDR1? 答:不关闭的话将导致第二次输入的数据存入DR1中,覆盖之前的数据 DR2置数完成后,为什么要关闭控制端LDDR2? 答:不关闭的话,下此操作后的数据将会存入DR2中,覆盖之前的数据 5)在练习三的表1.1.4中,要求每一次的运算结果都要存入DR2寄存器,解释该存入操作 中为什么不用SW-B置“0”和ALU-B置“1” 答:因为这时候的数据已经是存在控制器中,不必要再输入,所以不必那样做。 6)“A+B”和”A加B”这两种运算有什么不同,查找表1.1.1,分别写出这两种运算中S3、 S2、S1、S0、M、CN各控制端的状态。 答:A+B表示逻辑加11101* A加B表示算术加100101 7)CN是进位控制端,在逻辑运算和算术运算中,它与哪种运算有关? 答:算术运算 8)做减法操作DR1减DR2时,与进位CN是否有关?如有关CN是0还是1? 答:有关,因为这是算术减。与0有关 进位控制运算器 1.实验目的与要求 试验目的: 1)、验证带进位控制的算术运算发生器的功能。 2)、按给定的数据完成几种指定的算术运算。 二、实验要求: 按练习一和练习二的要求输入数据和完成相应的操作,将实验结果填入表1.2.2和1.2.3. 三. 实验方案

计算机组成原理实验报告(运算器组成、存储器)

计算机组成原理实验报告 一、实验1 Quartus Ⅱ的使用 一.实验目的 掌握Quartus Ⅱ的基本使用方法。 了解74138(3:8)译码器、74244、74273的功能。 利用Quartus Ⅱ验证74138(3:8)译码器、74244、74273的功能。 二.实验任务 熟悉Quartus Ⅱ中的管理项目、输入原理图以及仿真的设计方法与流程。 新建项目,利用原理编辑方式输入74138、74244、74273的功能特性,依照其功能表分别进行仿真,验证这三种期间的功能。 三.74138、74244、74273的原理图与仿真图 1.74138的原理图与仿真图 74244的原理图与仿真图

1. 4.74273的原理图与仿真图、

实验2 运算器组成实验 一、实验目的 1.掌握算术逻辑运算单元(ALU)的工作原理。 2.熟悉简单运算器的数据传送通路。 3.验证4位运算器(74181)的组合功能。 4.按给定数据,完成几种指定的算术和逻辑运算。 二、实验电路 附录中的图示出了本实验所用的运算器数据通路图。8位字长的ALU由2片74181构成。2片74273构成两个操作数寄存器DR1和DR2,用来保存参与运算的数据。DR1接ALU的A数据输入端口,DR2接ALU的B数据输入端口,ALU的数据输出通过三态门74244发送到数据总线BUS7-BUS0上。参与运算的数据可通过一个三态门74244输入到数据总线上,并可送到DR1或DR2暂存。 图中尾巴上带粗短线标记的信号都是控制信号。除了T4是脉冲信号外,其他均为电位信号。nC0,nALU-BUS,nSW-BUS均为低电平有效。 三、实验任务 按所示实验电路,输入原理图,建立.bdf文件。 四.实验原理图及仿真图 给DR1存入01010101,给DR2存入10101010,然后利用ALU的直通功能,检查DR1、

算术逻辑运算实验

实验报告 实验项目:算术逻辑运算实验(试验一) 课程名称:计算机组成原理 姓名:学号同组姓名:学号:实验位置(机号): 实验日期 实验1.掌握简单运算器的数据传送通路 目的2.验证运算器功能发生器(74LS181)的组合功能 3.验证带进为控制的算术运算器功能发生器(74LS181)的功能 4.按指定的数据完成几种制定的算术运算 5.验证移位控制的组合功能 实验YY-Z02计算机组成原理教学实验系统一台,排线若干。设备 实验 内容1.实验原理 (算 运算器实验原理图 法、 程 T4______ ALU-B 序、

_____ _____ 进位CyCn 步骤 299-B 判零_____ M 74LS2 电路CyNCn 和方 S0 99 ALU S1 法) (74LS181) S2 S3 _____I/O-RINPUT Ai =“0”B-DA1DA1 (74LS273)DA2

(74LS273)B-DA2 实验中所用的运算器数据通路图如图1-1所示,算术逻辑实验接线图如图1-2所示。图中所示的是由两片段74LS181芯片以并/串形式构成的8位字长的运算器。右方为低压4位运算芯片,左方为高4位运算芯片。低位芯片的进位输出端C(n+4)与高芯片的进位输入端CN相连,高位芯片的进位输出引至外部。两个芯片的控制端S0~S3和M各自相连。 2.实验步骤 1)算数逻辑运算 i.输入单元置数一 ii.设置I/O-R# = 0 iii.ALU-B# =1 iv.B-DA1 _| ̄|_将输入单元的输入数据存入DA1中 v.输入单元置数据二 vi.B-DA2 _| ̄|_将数据存入DA2中 vii.设置S 3 -------S 0、M、Cn根据要求按照定义操作设置完成运算viii. ix. x.I/O-R# = 1 ALU-B = 0运算结果送总线 IO-W ̄|_| ̄总线数据送显示单元显示 数据1.算数逻辑运算

计算机组成原理实验报告 算术逻辑运算单元实验

西华大学数学与计算机学院实验报告 课程名称:计算机组成原理年级:2011级实验成绩: 指导教师:祝昌宇姓名:蒋俊 实验名称:算术逻辑运算单元实验学号:312011*********实验日期:2013-12-15 一、目的 1. 掌握简单运算器的数据传输方式 2. 掌握74LS181的功能和应用 二、实验原理 (1)ALU单元实验构成 1、结构试验箱上的算术逻辑运算单元上的运算器是由运算器由2片74LS181构成8字长的ALU 单元。 2、2片74LS373作为2个数据锁存器(DR1、DR2),8芯插座ALU-OUT作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。 3、运算器的数据输出由一片74LS244(输出缓冲器)来控制,8芯插座ALU-OUT作为数据输出端,可通过短8芯扁平电缆把数据输出端连接到数据总线上。 (2)ALU单元的工作原理 数据输入锁存器DR1的EDR1为低电平,并且D1CK有上升沿时,把来自数据总线上的数据打入锁存器DR1。同样,使EDR2为低电平,并且D2CK有上升沿时,把来自数据总线上的数据打入锁存器DR2。 算术逻辑运算单元的核心是由2片74LS181构成,它可以进行2个8位二进制数的算术逻辑运算,74LS181的各种工作方式可通过设置其控制信号来实现(S0、S1、S2、S3、M、CN)。当实验者正确设置了74LS181的各个控制信号,74LS181会运算数据锁存器DR1、DR2内的数据。由于DR1、DR2已经把数据锁存,只要74LS181的控制信号不变,那么74LS181的输出数据也不会发生改变。 输出缓冲器采用74LS244,当控制信号ALU-O为低电平时,74LS244导通,把74LS181的运算结果输出到数据总线;ALU-O为高电平时,74LS244的输出为高阻。

计算机组成原理--实验二算术逻辑运算实验

实验二算术逻辑运算实验 一、实验目的 (1)了解运算器芯片(74LS181)的逻辑功能。 (2)掌握运算器数据的载入、读取方法,掌握运算器工作模式的设置。 (3)观察在不同工作模式下数据运算的规则。 二、实验原理 1.运算器芯片(74LS181)的逻辑功能 74LS181是一种数据宽度为4个二进制位的多功能运算器芯片,封装在壳中,封装形式如图2-3所示。 5V A1 B1 A2 B2 A3 B3 Cn4 F3 BO A0 S3 S2 S1 S0 Cn M F0 F1 F2 GND 图 2-3 74LS181封装图 主要引脚有: (1)A0—A3:第一组操作数据输入端。 (2)B0—B3:第二组操作数据输入端。 (3)F0—F3:操作结果数据输入端。 (4)F0—F3:操作功能控制端。 (5):低端进位接收端。

(6):高端进位输出端。 (7)M:算数/逻辑功能控制端。 芯片的逻辑功能见表2-1.从表中可以看到当控制端S0—S3为1001、M为0、 为1时,操作结果数据输出端F0—F3上的数据等于第一组操作数据输入端A0—A3上的数据加第二组操作数据输入端B0—B3上的数据。当S0—S3、M、 上控制信号电平不同时,74LS181芯片完成不同功能的逻辑运算操作或算数运算操作。在加法运算操作时,、进位信号低电平有效;减法运算操作时,、 借位信号高电平有效;而逻辑运算操作时,、进位信号无意义。 2.运算器实验逻辑电路 试验台运算器实验逻辑电路中,两片74LS181芯片构成一个长度为8位的运算器,两片74LS181分别作为第一操作数据寄存器和第二操作数据寄存器,一片74LS254作为操作结果数据输出缓冲器,逻辑结构如图2-4所示。途中算术运算操作时的进位Cy判别进位指示电路;判零Zi和零标志电路指示电路,将在实验三中使用。 第一操作数据由B-DA1(BUS TO DATA1)负脉冲控制信号送入名为DA1的第一操作数据寄存器,第二操作数据由B-DA2(BUS TO DATA2)负脉冲控制信号送入名为DA2的第二操作数据寄存器。74LS181的运算结果数据由(ALU TO BUS)低电平控制信号送总线。S0—S3、M芯片模式控制信号同时与两片74LS181的S0—S3、M端相连,保证二者以同一工作模式工作。实验电路的低端进位接收端Ci与低4位74LS181的相连,用于接收外部进位信号。低4为74LS181的与高4位74LS181的上相连,实现高、低4位之间进位信号的传递。高4位之间进位信号的传递。高4位74LS181的送进位Cy判别和进位指示电路。 表2-1 74LS181 芯片逻辑功能表

实验二 数组及其运算

实验二 数组及其运算 一、实验目的 1.熟练矩阵、数组的创建; 2. 熟悉Matlab 的基本矩阵操作,运算符和字符串处理; 3. 熟悉矩阵的逻辑运算和关系运算; 二、实验设备 1.方正电脑 2.MATLAB 软件 三、实验内容 1.在指令窗中输入:x=1:0.2:2和y=2:-0.2:1,观察所生成的数组。 x = 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 y = 2.0000 1.8000 1.6000 1.4000 1.2000 1.0000 2.要求在[]π20上产生50个等距采样数据的一维数组,试用两种不同的指令实现。 X=linspace(0,2*pi,50) X=0:(2*pi)/49:(2*pi) 2.设x=-74o ,y=27 o ,22 的值。 x=-74/180*pi; y=27/180*pi; d=sin(x^2+y^2)/(sqrt(tan(abs(x+y)))+pi) d = 0.2273 3. 当a 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时,求0.3sin(0.3)a e a -+在各点的函 数值。 a=-3.0:0.1:3.0; y=exp(-0.3*a).*sin(a+0.3) Columns 1 through 10

-1.0512 -1.2305 -1.3863 -1.5184 -1.6267 -1.7116 -1.7734 -1.8129 -1.8309 -1.8285 Columns 11 through 20 -1.8069 -1.7675 -1.7117 -1.6411 -1.5572 -1.4617 -1.3564 -1.2428 -1.1228 -0.9978 Columns 21 through 30 -0.8696 -0.7397 -0.6095 -0.4804 -0.3538 -0.2308 -0.1126 0.0000 0.1060 0.2047 Columns 31 through 40 0.2955 0.3779 0.4515 0.5160 0.5714 0.6174 0.6543 0.6821 0.7010 0.7115 Columns 41 through 50 0.7138 0.7085 0.6959 0.6768 0.6516 0.6210 0.5856 0.5460 0.5030 0.4572 Columns 51 through 60 0.4093 0.3597 0.3093 0.2586 0.2080 0.1582 0.1097 0.0628 0.0180 -0.0245 Column 61 -0.0641 4. 已知 ??????=??????=5051 3501 ,05314320B A 求下列表达式的值: (1) A&B ans = 0 0 1 1 1 1 0 0 (2) A|B ans = 1 1 1 1 1 1 1 1 (3) ~A ans = 1 0 0 0 0 0 0 1 (4) A==B

实验2 Matlab的基本运算

实验1 Matlab 的基本运算(2) 实验目的: 1、 掌握建立矩阵的方法; 2、 掌握Matlab 各种表达式的书写规则以及常用函数的使用。 实验内容: 1. 设有矩阵A 和B A ????????=????????12345678910111213141516171819 202122232425 B ????-????=-????????30161769023497041311 (1)求它们的乘积C >> A=1:25; A=reshape(A,5,5); A=A'; B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; C=A*B C = 93 150 77 258 335 237 423 520 397 588 705 557 753 890 717 (2)将矩阵C 的右下角?32子矩阵赋给D >> D=C(3:5,2:3) D = 520 397 705 557 890 717 (3)查看Matlab 工作空间的使用情况 2. 已知:矩阵...A -????-??=????-?? 2310077804145655325032695454314 完成下列操作: (1)取出A 的前3行构成矩阵B ,前两列构成矩阵C ,左下角3*2子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。 A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; B=A(1:3,:) C=A(1:4,1:2) D=A(2:4,1:2) E=B*C B = 23.0000 10.0000 -0.7780 0

实验二带进位控制8位算术逻辑运算实验

实验二带进位控制8位算术逻辑运算实验 一、实验目的 1、验证带进位控制的算术逻辑运算发生器的功能。 2、按指定数据完成几种指定的算术运算。 二、实验内容 1、实验原理 带进位控制运算器的实验原理如图所示,在实验(1)的基础上增加进位控制部分,其中高位74LS181(U31)的进位CN4通过门UN4E、UN2C、UN3B 进入UN5B的输入端D,其写入脉冲由T4和AR信号控制,T4是脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。AR是电平控制信号(低电平有效),可用于实现带进位控制实验。从图中可以看出,AR必须为“0’’电平,D型触发器74LS74(UN5B)的时钟端CLK才有脉冲信号输入。才可以将本次运算的进位结果CY锁存到进位锁存器74LS74(UN5B)中。 2、实验接线 实验连线(1)~(5)同实验~,洋细如下: (1)ALUBUS~连ExJ3; (2)ALUO1连BUSl; (3)SJ2连UJ2; (4)跳线器J23上T4连SD; (5)LDDRl、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式);(6)AR、299B跳线器拨在左边,同时开关AR拨在“0’’电平,开关299B拨在“1”电平; (7)J25跳线器拨在右边。 3、实验步骤 (1)仔细查线无误后,接通电源。 (2)用二进制数码开关KDO~KD7向DRl和DR2 寄存器置数,方法:关闭ALU输出三态门ALUB=1,开启输入三态门SWB=0,输入脉冲T4按手动脉冲

发生按钮产生。如果选择参与操作的两个数据分别为55H 、AAH ,将这两个数存入DR1和DR2的具体操作步骤如下: (3)开关ALUB=0,开启输出三态门,开关SWB=1,关闭输入三态门,同时让 LDDR1=0,LDDR2=0。 (4)如果原来有进位,CY=1,进位灯亮,但需要清零进位标志时,具体操作方 法如下: ◆ S3、S2、S1、S0、M 的状态置为0 0 0 0 0,AR 信号置为“0”电平 (清零操作时DRl 寄存器中的数应不等于FF )。 ◆ 按动手动脉冲发生开关,CY=0,即清进位标志。 注:进位标志指示灯CY 亮时表示进位标志为“1”,有进位;进位标志指示灯CY 灭时,表示进位位为“0”,无进位。 (5)验证带进位运算及进位锁存功能 这里有两种情况: ● 进位标志已清零,即CY=0,进位灯灭。 ? 使开关CN=0,再来进行带进位算术运算。例如步骤(2)参与运算的两 个数为55H 和AAH ,当S3、S2、S1、S0状态为10010,此时输出数据总线显示灯上显示的数据为DRl 加DR2再加初始进位位“1” (因CN=0),相加的结果应为ALU=00,并且产生进位,此时按动手动脉冲开关,则进位标志灯亮,表示有进位。 ? 使开关CN=1,当S3、S2、S1、S0状态为10010,则相加的结累ALU=FF , 并且不产生进位。

北理工-汇编-实验二-算术运算类操作实验

………………………………………………最新资料推荐……………………………………… 本科实验报告 实验名称:实验二算术运算类操作实验(基础与设计)课程名称:CPU与汇编实验实验时间: 任课教师:实验地点: 实验教师: 实验类型:□原理验证■综合设计□自主创新 学生姓名: 学号/班级:组号:无学院:信息与电子同组搭档:无专业:信息工程成绩:

一、实验要求和目的 1.了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式; 2.掌握各类运算类指令对各状态标志位的影响及测试方法; 3.熟悉汇编语言二进制多字节加减法基本指令的使用方法; 4.熟悉无符号数和有符号数乘法和除法指令的使用; 5.掌握符号位扩展指令的使用; 6.掌握BCD 码调整指令的使用方法。 二、软硬件环境 1、硬件环境:计算机系统 windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 1.加减法处理指令 2.乘除法指令和符号位扩展指令 3.BCD 码的调整指令 四、实验内容 (一)对于两组无符号数,087H 和034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:

1.流程图 2.程序代码: DA TAS SEGMENT DA TAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START : MOV AX,DATAS MOV DS,AX MOV AX,0C2H MOV BX,5FH ADD AX,BX ;add MOV AX,0C2H MOV BX,5FH SUB AX,BX ;sub MOV AX,0C2H MOV BX,5FH MUL BX ;mul MOV AX,0C2H MOV BX,5FH DIV BX ;div MOV AH,4CH INT 21H CODES ENDS ENDSTART (将数据改变得到另一组输出结果) 3.实验结果 以第一组数的加法为例 (已将截图以上输入-t 进行debug 的步骤省略) 此时右下角信息(NV UP ……)代表标志寄存器的值。 4.结果分析: 由资料可得: 开始 结束 将两组数据分别存入AX ,BX 中,将二者中的数据相加,存入AX 中 将两组数据分别存入AX ,BX 中,用AX 中数据减去BX 中数据,存入AX 中 将两组数据分别存入AX ,BX 中,将二者中的数据相乘,存入AX 中 将两组数据分别存入AX , BX 中,用AX 中数据除以 BX 中数据,存入AX 中

实验一 运算器实验(1)

级班学号姓名 实验报告 实验一运算器实验 一、实验目的: 1、掌握简单运算器的数据传送通路; 2、验证运算功能发生器(74LS181)的组合功能; 3、验证带进位控制的算术运算功能发生器的功能; 4、按指定数据完成几种指定的算术运算。 二、实验设备 DVCC-C5JH计算机组成原理教学实验系统一台,排线若干。 三、实验原理 1、实验中所用的运算器数据通路图如附A图1-3所示。其中运算器由两片74LS181以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由二个锁存器(74LS373)锁存,锁存器的输入连至数据总线,数据开关(“INPUT DEVICE”)用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连,数据显示灯(“BUS UNIT”)已和数据总线相连,用来显示数据总线内容。 2、控制信号说明: T4:脉冲信号;实验时,将W/R UNIT的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲。 S3~S0、M:运算器的功能控制信号;可参见74181芯片的功能表P64。 Cn:进位控制信号,低电平有效。 LDDR1、LDDR2:数据寄存器DR1和DR2的数据装载控制信号,高电平有效。ALU-B:该控制信号控制是否将ALU的结果送到总线上,低电平有效。

SW-B :三态门开关信号,控制是否打开三态门,低电平有效。 四、实验内容 1、算术逻辑运算实验: 实验步骤: ①按图1-2连接路线,仔细检查无误后,接通电源; ②用二进制数码开关向DR1和DR2寄存器置数。 A )数据开关置01100101; B )设置switch unit :ALU-B=1 SW-B=0 LDDR1=1 LDDR2=0 C )按动KK2给出一个单脉冲信号,即T4=┎┒ D )数据开关置10100111; E )设置switch unit :LDDR1=0 LDDR2=1 F )按动KK2给出一个单脉冲信号。 ③检验DR1和DR2中存的数是否正确: A )设置switch unit :SW-B=1 ALU-B=0 B )设置switch unit :当S 3S 2S 1S 0M=00000,总线显示灯显示DR1中的数,而 置为S 3S 2S 1S 0M=01010,总线显示灯显示DR2中的数。 ④验证74LS181的算术运算和逻辑运算功能:[给定A=(DR1)=65 H ,B=(DR2)=A7 H] A )改变运算器的功能设置,观察运算器的输出,填入下表: DR1 DR2 S 3S 2S 1S 0 M=1(算术运算) M=0(逻辑运算) Cn=1 (无进位) Cn=0 (有进位) 65 A7 0000 01100101 01100110 10011010 65 A7 0001 11100111 11101000 00011000 65 A7 0010 01111101 01111110 10000010 65 A7 0011 11111111 00000000 00000000 65 A7 0100 10100101 10100110 11011010 65 A7 0101 00100111 00101000 01011000

相关文档
相关文档 最新文档