当前位置:文档之家› 实验2 算术与逻辑运算指令实验

实验2 算术与逻辑运算指令实验

实验2 算术与逻辑运算指令实验
实验2 算术与逻辑运算指令实验

实验2 算术与逻辑运算指令实验

一、实验目的

1. 学习算术与逻辑运算的原理及指令的用法;

2. 进一步学习emu8086调试程序的用法,并学会emu8086下编写简单应用程序的方法;

3. 掌握BCD码加、减法以及ASCII码加减法。

二、实验内容

1. 用emu8086执行各加减法指令以及不同编码方式的运算方法,记录执行结果,进行分析、比较,掌握各功能类似的指令之间的差别。

2. 用emu8086编写一个COM文件,其功能是检查自身的长度以及代码检查和。如果自身的长度改变或检查和改变,则显示“VIRUS”,否则显示“OK”。

三、实验步骤

(一) 加法、减法以及逻辑运算指令练习

1. 启动emu8086;

2. 用单步按钮命令调试以下程序段(分号后注释部分不用输入);

-A

xxxx:0100 XOR AX,AX ;AX= , C=____, Z=____

xxxx:0102 MOV AX,89AB ;AX= , C=____, Z=____

xxxx:0105 MOV BX,AX ;BX=

xxxx:0107 INC AX ;AX= , C=____, Z=____

xxxx:0108 DEC AX ;AX= , C=____, Z=____

xxxx:0109 ADD AX,SI ;AX= , C=____, Z=____

xxxx:010B SUB AX,SI ;AX= , C=____, Z=____

xxxx:010D ADC AX,SI ;AX= , C=____, Z=____

xxxx:010F SBB AX,SI ;AX= , C=____, Z=____

xxxx:0111 NOP

xxxx:0112 MOV AX,0808

xxxx:0115 MOV BX,0080

xxxx:0118 MOV CX,0880 ;CX=___________

xxxx:011B OR AX,BX ;AX=___________ , C=____, OV=____

xxxx:011D MOV AX,0808 ;AX=___________, BX=___________

xxxx:0120 AND AX,CX ;AX=___________, C=____, S=____

xxxx:0122 MOV AX,0808 ;AX=___________, CX=___________

xxxx:0125 XOR AX,BX ;AX=___________, BX=___________

xxxx:0127 NOT AX ;AX=___________

xxxx:0129 NEG AX ;AX=___________

xxxx:012B

3. 分析上述程序段,用铅笔填写指令依次执行后寄存器和标志位的值,观察它们的变化。

4.给SI寄存器赋值:

SI 0000修改7777

5. 单步执行以上程序段,依次与你的分析结果核对,如有错,则纠正自己理解上的偏差,加深认识,并将正确结果填入空格内。

6. 保存该程序并退出emu8086

(二) 十进制(BCD码)加减法练习

1.;emu8086

2. 按如下顺序进行操作,记录结果并分析原因;

-a100

xxxx:0100 XOR AL,AL

xxxx:0102 INC AL

xxxx:0104 DAA

xxxx:0105 JMP 102

用交换指令实现寄存器之间的数据交换

mov ax,1234h ;ax=1234h

mov bx,5678h ;bx=5678h

xchg ax,bx ;ax=5678h,bx=1234h

xchg ah,al ;ax=7856h

用交换指令实现寄存器与存储器之间的数据交换

xchg ax,[2000h] ;也可以表达为xchg [2000h],ax

xchg al,[2000h] ;也可以表达为xchg [2000h],al

将7812h压入堆栈

mov ax,7812h

push ax

将主存单元DS : [2000H]的一个字压入堆栈

push [2000h]

例2.10a:将栈顶一个字的内容弹出送AX寄存器

pop ax

例2.10b:将栈顶一个字送入主存DS : [2000H]

pop [2000h]

标志寄存器传送

LAHF ;AH←FLAGS的低字节

SAHF ;FLAGS的低字节←AH

SAHF和LAHF是一对相反功能的指令。它们只影响标志寄存器的低8位。

PUSHF ;SP←SP-2,SS:[SP]←FLAGS

POPF ;FLAGS←SS:[SP],SP←SP+2

PUSHF指令可用来保存全部标志位,POPF指令设置标志寄存器。

2.12:置位单步标志TF

pushf ;保存全部标志到堆栈

pop ax ;从堆栈中取出全部标志

or ax,0100h ;设置D8=TF=1,而ax其他位不变

push ax ;将ax压入堆栈

popf ;将堆栈内容取到标志寄存器:即FLAGS←AX

标志位操作

CLC ;复位进位标志:CF←0

STC ;置位进位标志:CF←1

CMC ;求反进位标志:CF←~CF

CLD ;复位方向标志:DF←0

STD ;置位方向标志:DF←1

CLI ;复位中断标志,禁止可屏蔽中断:IF←0

STI ;置位中断标志,允许可屏蔽中断:IF←1

例2.13:有效地址的获取

mov bx,0400h

mov si,3ch

lea bx,[bx+si+0f62h] ;BX=139EH

例2.14:地址指针的传送

mov word ptr[3060h],0100h

mov word ptr[3062h],1450h

lds si,[3060h] ;ds=1450h,si=0100h

les di,[3060h] ;es=1450h,di=0100h

例2.15a:用字节输入指令从20h和21h端口输入一个字数据

in al,21h

mov ah,al

in al,20h

2.15b:用字输入指令从20h和21h端口输入一个字数据

in ax,20h

2.15c:用DX间接寻址从20h和21h端口输入一个字数据

mov dx,20h

in ax,dx

2.16:将数据80h送到3fch端口

mov dx,3fch

mov al,80h

out dx,al

例2.17a:加法运算

mov al,0fbh ;al=0fbh

add al,07h ;al=02h

mov word ptr[200h],4652h ;[200h]=4652h

mov bx,1feh ;bx=1feh

add al,bl ;al=00h

add word ptr[bx+2],0f0f0h ;[200h]=3742h

例2.17b:无符号双字加法运算(带进位加法指令ADC)

mov ax,4652h ;ax=4652h

add ax,0f0f0h ;ax=3742h,CF=1

mov dx,0234h ;dx=0234h

adc dx,0f0f0h ;dx=f325h,CF=0

SUB reg,imm/reg/mem ;reg←reg-imm/reg/mem

SUB mem,imm/reg ;mem←mem-imm/reg

例2.18a:减法运算

mov al, 0fbh ;al=0fbh

sub al, 07h ;al=0f4h,CF=0

mov word ptr [200h],4652h ;[200h]=4652h

mov bx,1feh ;bx=1feh

sub al,bl ;al=0f6h,CF=1

sub word ptr [bx+2],0f0f0h ;[200h]=5562h,CF=1

例2.18b:无符号双字减法运算(带借位减法指令SBB)

mov ax,4652h ;ax=4652h

sub ax,0f0f0h ;ax=5562h,OF=0、SF=0、ZF=0、AF=0、PF=0、CF=1

mov dx,0234h ;dx=0234h

sbb dx,0f0f0h ;dx=1143h,OF=0、SF=0、ZF=0、AF=0、PF=0、CF=1

dec cx

inc ax

例2.19:求补运算

mov ax,0ff64h

neg al ;ax=ff9ch,OF=0、SF=1、ZF=0、PF=1、CF=1

sub al,9dh ;ax=ffffh,OF=0、SF=1、ZF=0、PF=1、CF=1

neg ax ;ax=0001h,OF=0、SF=0、ZF=0、PF=0、CF=1

dec al ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=1

neg ax ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=0

例2.20:比较AL是否大于100

cmp al ,100 ;al-100

jb below ;al<100,跳转到below执行

sub al,100 ;al≥100,al←al-100

inc ah ;ah←ah+1

below: ...

例2.21a:无符号数0B4H与11H相乘

mov al,0b4h ;al=b4h=180d

mov bl,11h ;bl=11h=17d

mul bl ;ax=Obf4h=3060d,OF=CF=1(AX高8位不为0)例2.21b:有符号数0B4H与11H相乘(有符号数乘法指令IMUL)

mov al,0b4h ;al=b4h=-76d

mov bl,11h ;bl=11h=17d

imul bl ;ax=faf4h=-1292d,OF=CF=1

;AX高8位不是低8位的符号扩展,表示含有有效数字例2.22a:无符号数0400H除以B4H

mov ax,0400h ;ax=400h=1024d

mov bl,0b4h ;bl=b4h=180d

div bl ;商al=05h,余数ah=7ch=124d

例2.22b:有符号数0400H除以B4H

mov ax,0400h ;ax=400h=1024d

mov bl,0b4h ;bl=b4h=-76d

idiv bl ;商al=f3h=-13d,余数ah=24h=36d

例2.23:符号扩展

mov al,80h ;al=80h

cbw ;ax=ff80h

add al,255 ;al=7fh

cbw ;ax=007fh

例2.24:进行有符号数除法AX÷BX

cwd

idiv bx

例2.25a:压缩BCD码的加法运算

mov al,68h ;al=68h,表示压缩BCD码68

mov bl,28h ;bl=28h,表示压缩BCD码28

add al,bl ;二进制加法:al=68h+28h=90h

daa ;十进制调整:al=96h

;实现压缩BCD码加法:68+28=96

例2.25b:压缩BCD码的减法运算

mov al,68h ;al=68h,表示压缩BCD码68

mov bl,28h ;bl=28h,表示压缩BCD码28

sub al,bl ;二进制减法:al=68h-28h=40h

das ;十进制调整:al=40h

;实现压缩BCD码减法:68-28=40

例2.27a:非压缩BCD码的加法运算

mov ax,0608h ;ax=0608h,表示非压缩BCD码68

mov bl,09h ;bl=09h,表示非压缩BCD码9

add al,bl ;二进制加法:al=08h+09h=11h

aaa ;十进制调整:ax=0707h

;实现非压缩BCD码加法:68+9=77

例2.27b:非压缩BCD码的减法运算

mov ax,0608h ;ax=0608h,表示非压缩BCD码68

mov bl,09h ;bl=09h,表示非压缩BCD码9

sub al,bl ;二进制减法:al=08h-09h=ffh

aas ;十进制调整:ax=0509h

;实现非压缩BCD码减法:68-9=59

例2.27b:非压缩BCD码的减法运算

mov ax,0608h ;ax=0608h,表示非压缩BCD码68

mov bl,09h ;bl=09h,表示非压缩BCD码9

sub al,bl ;二进制减法:al=08h-09h=ffh

aas ;十进制调整:ax=0509h

;实现非压缩BCD码减法:68-9=59

例2.27c:非压缩BCD码的乘法运算

mov ax,0608h ;ax=0608h,表示非压缩BCD码68

mov bl,09h ;bl=09h,表示非压缩BCD码9

mul bl ;二进制乘法:ax=08h×09h=0048h

aam ;十进制调整:ax=0702h

;实现非压缩BCD码乘法:8×9=72

例2.27d:非压缩BCD码的除法运算

mov ax,0608h ;ax=0608h,表示非压缩BCD码68

mov bl,09h ;bl=09h,表示非压缩BCD码9

aad ;二进制扩展:ax=68=0044h

div bl ;除法运算:商al=07h,余数ah=05h

;实现非压缩BCD码除法:68=7×9+5

例2.28a:逻辑与运算

mov al,45h

and al,31h ;al=01h,CF=OF=0、SF=0、ZF=0、PF=0 观察CF,OF是否=0,SF、ZF和PF状态,而对AF未定义。例2.28b:将BL中D0和D3清0,其余位不变

and bl,11110110b

例2.29a:逻辑或运算

mov al,45h

or al,31h ;al=75h,CF=OF=0、SF=0、ZF=0、PF=0 例2.29b:将BL中D0和D3置1,其余位不变

or bl,00001001b

例2.30a:逻辑异或运算

mov al,45h

xor al,31h ;al=74h,CF=OF=0、SF=0、ZF=0、PF=1 例2.30b:将BL中D0和D3求反,其余位不变

xor bl,00001001b

XOR指令经常给寄存器清0,同时使CF也清0;例如:xor ax,ax ;ax=0,CF=OF=0、SF=0、ZF=1、PF=1

例2.31:逻辑非运算

mov al,45h

not al ;al=0bah,观察NOT 指令不影响标志位

例2.32:TEST指令用于测试某一(几)位是否(同时)为0或为1。

test al,01h ;测试AL的最低位D0

jnz there ;标志ZF=0,即D0=1,则程序转移到there

... ;否则ZF=1,即D0=0,顺序执行

there: ...

例2.33:移位指令的功能

mov cl,4

mov al,0f0h ;al=f0h

shl al,1 ;al=e0h,CF=1,SF=1、ZF=0、PF=0,OF=0

shr al,1 ;al=70h,CF=0,SF=0、ZF=0、PF=0、OF=1

sar al,1 ;al=38h,CF=0,SF=0、ZF=0、PF=0、OF=0

sar al,cl ;al=03h,CF=1,SF=0、ZF=0、PF=1

;移位指令按照移入的位设置进位标志CF,根据移位后的结果影响SF、ZF、PF,对AF没有定义。

例2.34:利用移位指令计算DX←3×AX+7×BX,假设为无符号数运算,无进位mov si,ax

shl si,1 ;si←2×ax

add si,ax ;si←3×ax

mov dx,bx

mov cl,03h

shl dx,cl ;dx←8×bx

sub dx,bx ;dx←7×bx

add dx,si ;dx←7×bx+3×ax

例2.35:将DX.AX中的32位数值左移一位

shl ax,1

rcl dx,1

例2.36:把AL最低位送BL最低位,但保持AL不变

ror bl,1

ror al,1

rcl bl,1

rol al,1

例2.37:AH/AL分别存放着非压缩BCD码的两位,现将它们合并成为一个压缩BCD码存入AL

mov cl,4

rol ah,cl ;也可以用shl ah,cl

add al,ah ;也可以用or al,ah

表2.2 条件转移指令中的条件cc

助记符标志位说明助记符标志位说明

JZ/JE ZF=1 等于零/相等JC/JB/JNAE CF=1 进位/低于/不高于等于

JNZ/JNE ZF=0 不等于零/不相等JNC/JNB/JAE CF=0 无进位/不低于/高于等于

JS SF=1 符号为负JBE/JNA CF=1或ZF=1 低于等于/不高于

JNS SF=0 符号为正JNBE/JA CF=0且ZF=0 不低于等于/高于

JP/JPE PF=1 “1”的个数为偶JL/JNGE SF≠OF 小于/不大于等于

JNP/JPO PF=0 “1”的个数为奇JNL/JGE SF=OF 不小于/大于等于

JO OF=1 溢出JLE/JNG ZF≠OF或ZF=1 小于等于/不大于

JNO OF=0 无溢出JNLE/JG SF=OF且ZF=0 不小于等于/大于

例2.38:如果AL最高位为0,则设置AH=0;如果AL最高位为1,则设置AH=FFh(也就是用一段程序实现符号扩展指令CBW的功能)使用“不等于零转移JNZ指令”:

test al,80h ;测试最高位

jz next0 ;最高位为0(ZF=1),转移到next0

mov ah,0ffh ;最高位为1,顺序执行

jmp done ;无条件转向done

next0: mov ah,0

done: ...

上述程序段也可以用“等于零转移JZ指令”:

test al,80h ;测试最高位

jnz next1 ;最高位为1(ZF=0),转移到next1

mov ah,0h ;最高位为0,顺序执行

jmp done ;无条件转向done

next1: mov ah,0ffh

done: ...

例2.39:计算|X-Y|,X和Y为存放于X单元和Y单元的16位操作数,结果存入result。

mov ax,X

sub ax,Y ;AX←X-Y,下面求绝对值

jns nonneg ;为正数,无需处理,直接转向保存结果

neg ax ;为负数,进行求补得到绝对值

nonneg: mov result,ax ;保存结果

例2.41:设字符的ASCII码在AL寄存器中,将字符加上奇校验位

and al,7fh ;最高位置“0”,同时判断“1”的个数

jnp next ;个数已为奇数,则转向next

or al,80h ;否则,最高位置“1”

next: ...

例2.42:记录BX中1的个数

xor al,al

again: test bx,0ffffh ;等价于cmp bx,0

je next

shl bx,1 ;还可以用哪个(循环)移位指令实现?

jnc again

inc al

jmp again

next: ... ;AL保存1的个数

四、思考题

计算机病毒感染可执行文件的方法是把自已的代码放到可执行文件中,当执行被感染程序时,病毒程序也同时被执行,通过几个实验,对程序执行的过程已有初步了解,试分析前面病毒测试程序,是不是能检测到所有的病毒感染?

五、选做题

有兴趣的同学,可对以上程序进一步完善,把它编成一个有实用意义的应用程序。

实验二图像的代数运算

昆明理工大学信息工程与自动化学院学生实验报告 ( 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、了解运算器的组成原理。 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 8位算术逻辑运算

淮海工学院计算机工程学院实验报告书 课程名:《计算机组成原理》 题目:实验一8位算术逻辑运算 实验 班级: 学号: 姓名:

1、目的与要求 1)掌握算术逻辑运算器单元ALU(74LS181)的工作原理。 2)掌握简单运算器的数据传送通路组成原理。 3)验证算术逻辑运算功能发生器74LSl8l的组合功能。 4)按给定数据,完成实验指导书中的算术/逻辑运算。 2、实验设备 ZYE1601B计算机组成原理教学实验箱一台,排线若干。 3、实验步骤与源程序 l) 按下列步骤连接实验线路,仔细检查无误后,接通电源。 ⑴ ALUBUS连EXJ3; ⑵ ALUO1连BUS1; ⑶ SJ2连UJ2; ⑷跳线器J23上T4连SD; ⑸ LDDR1、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式); ⑹ AR跳线器拨在左边,同时开关AR拨在“1”电平。 2) 用二进制数码开关KD0~KD7向DR1和DR2寄存器置数。方法:关闭ALU输出三态门(ALUB`=1),开启输入三态门(SWB`=0),输入脉冲T4按手动脉冲发生按钮产生。设置数据开关具体操作步骤图示如下: LDDR1=1 LDDR1=0 说明:LDDR1、LDDR2、ALUB`、SWB`四个信号电平由对应的开关LDDR1、LDDR2、ALUB、SWB 给出,拨在上面为“1”,拨在下面为“0”,电平值由对应的显示灯显示,T4由手动脉冲开关给出。 ⑶检验DR1和DR2中存入的数据是否正确,利用算术逻辑运算功能发生器 74LS181的逻辑功能,即M=1。具体操作为:关闭数据输入三态门SWB`=1,打开ALU输出三态门ALUB`=0,当置S3、S2、S1、S0、M为1 1 1 1 1时,总线指示灯显示DR1中的数,而置成1 0 1 0 1时总线指示灯显示DR2中的数。 ⑷验证74LS181的算术运算和逻辑运算功能(采用正逻辑) 在给定DR1=35、DR2=48的情况下,改变算术逻辑运算功能发生器的功能设置,观察运算器的输出,填入表2.1.1中,并和理论分析进行比较、验证。。 4、测试数据与实验结果 实验数据记录

实验二 算术运算实验

实验二算术运算实验 一、实验目的 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.在进行加法和乘法运算时,会出现对高位的进位扩展。因此,在记录结

《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)结构图:

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

实验二算术运算类操作实验 (基础与设计) 一、实验要求和目的 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,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响。 设计流程:

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

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

计算机组成原理实验二 算术逻辑运算实验 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

实验二算术逻辑运算实验 一、实验目的 (1)了解运算器芯片(74LS181)的逻辑功能。 (2)掌握运算器数据的载入、读取方法,掌握运算器工作模式的设置。 (3)观察在不同工作模式下数据运算的规则。 二、实验原理 1.运算器芯片(74LS181)的逻辑功能 74LS181是一种数据宽度为4个二进制位的多功能运算器芯片,封装在壳中,封装形式如图2-3所示。 图2-3 74LS181封装图 主要引脚有: (1)A0—A3:第一组操作数据输入端。 (2)B0—B3:第二组操作数据输入端。 (3)F0—F3:操作结果数据输入端。 (4)F0—F3:操作功能控制端。 ??????:低端进位接收端。 (5)CC (6)CC4:高端进位输出端。 (7)M:算数/逻辑功能控制端。 芯片的逻辑功能见表2-1.从表中可以看到当控制端S0—S3为1001、M为??????为1时,操作结果数据输出端F0—F3上的数据等于第一组操作数据输0、CC 入端A0—A3上的数据加第二组操作数据输入端B0—B3上的数据。当S0—S3、??????上控制信号电平不同时,74LS181芯片完成不同功能的逻辑运算操作或M、CC ??????、CC4进位信号低电平有效;减法运算数运算操作。在加法运算操作时,CC ??????、 算操作时,CC ??????、CC4借位信号高电平有效;而逻辑运算操作时,CC CC4进位信号无意义。 2.运算器实验逻辑电路 试验台运算器实验逻辑电路中,两片74LS181芯片构成一个长度为8位的运算器,两片74LS181分别作为第一操作数据寄存器和第二操作数据寄存器,一片74LS254作为操作结果数据输出缓冲器,逻辑结构如图2-4所示。途中算

实验二带进位控制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 , 并且不产生进位。

相关主题
文本预览
相关文档 最新文档