汇编实验二算术运算类操作实验.docx

上传人:b****8 文档编号:8813328 上传时间:2023-02-01 格式:DOCX 页数:20 大小:34.77KB
下载 相关 举报
汇编实验二算术运算类操作实验.docx_第1页
第1页 / 共20页
汇编实验二算术运算类操作实验.docx_第2页
第2页 / 共20页
汇编实验二算术运算类操作实验.docx_第3页
第3页 / 共20页
汇编实验二算术运算类操作实验.docx_第4页
第4页 / 共20页
汇编实验二算术运算类操作实验.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

汇编实验二算术运算类操作实验.docx

《汇编实验二算术运算类操作实验.docx》由会员分享,可在线阅读,更多相关《汇编实验二算术运算类操作实验.docx(20页珍藏版)》请在冰豆网上搜索。

汇编实验二算术运算类操作实验.docx

汇编实验二算术运算类操作实验

汇编语言实验报告

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

班级:

姓名:

学号:

实验日期:

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

一、实验要求和目的

1、了解汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;

2、掌握各类运算类指令对各状态标志位的影响及测试方法;

3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;

4、熟悉无符号数和有符号数乘法和除法指令的使用;

5、掌握符号位扩展指令的使用。

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

二、软硬件环境

1、硬件环境:

汁算机系统windows;

2、软件环境:

装有MASM、DEBUG.LINK、等应用程序。

三、实验涉及的主要知识

本实验主要进行算术运算程序设计•和调试,涉及到的知识点包括:

1.加减法处理指令

主要有加法指令ADD,带进位加法ADC,减法指令SUB,带进位减法指令

SBBo

2.乘除法指令和符号位扩展指令

主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令IDIV,以及符号位从字节扩展到字的指令CBW和从字扩展到双字的指令CWD。

3.BCD码的调整指令

主要有非压缩的BCD码加法调整指令DAA,压缩的BCD码减法调整指令DAS,非压缩的BCD码加法调整指令AAA,非压缩的BCD码减法调整指令AAS,乘法的非压缩BCD码调整指令AAM,除法的非压缩BCD码调整指令AAD。

8088/8086指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表1所示的数据类型进行数据运算。

数制

二进制

BCD码

带符号

无符号

组合

非组合

运算符

+、-、X、-j-

+、-

+、-、X、4-

操作数

字节、字、多精度

字节(二位数字)

字节(一位数字)

表1数据类型数据运算表

各指令的格式、功能及其对标志位的影响等细节知识,请同学们查阅相关书籍,这里不

再赘述。

四、实验内容与步骤

1、对于两组无符号数,087H和034H,0C2H和5FH,试编程求这两组数的和差积商,并考

虑计算结果对标志寄存器中状态标志位的影响

2、在数据段定义了两个多精度的有符号16进制数,FIRST和SECOND,1)求两数的和

与差,并将结果存放在THIRD为首地址的缓冲区中;2)如果把两组数据当作十进制数据

来处理,再次求两数的和与差,并将结果存放在FORTH为首地址的缓冲区中。

试编程实现

上述运算。

3、编程计算((Z+X*Y-328)-V)/Y,其中X、Y、Z、V均为16位带符号数,假设初始数

据分别装入X、Y、Z、V单元,要求上式计算结果的商存入AX,余数存入DX寄存器。

学自行给出初始值加以验证程序。

五、程序设计•:

实验1:

流程图如下:

开始

输入数据

进行运算

输出结果

结束

实验2:

以16进制加法为例,流程图如下:

开始

输入FIRST

和SECOND

SI二3,CX二4

Y

CX二0?

输出

THIRD

[THIRD+1][SI]=FIRST[SI]+SECOND[SI]

CX-1,SI-1结束

其他程序流程图类似。

六、实验过程及结果:

实验1:

1.根据要求,设计程序如下:

0203仙O506O7O8O91O11121311*151********02122232J4252627282930313233叢

DATASSEGMENTdatalDU087Hdata2DU034Hdata3DU0C2Hdata4DW5FH

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATASSTART:

MOU

MOUDS,AX

MOUAX7datal

ADDAX7data2

MOUAX7datal

SUBAX7data2

MOUAX7datal

MOUBX7data2

MULBX

MOUAJC,datal

MOUBX,data2

DIUBX

MOUA}C,data3

ADCAJC^ataU

MOU般,data3

SBBAX.dataU

MOUAK9data3

MOUBX.dataU

IMUL畔

MOUAX,data3

MOUBX,data4

IDIUBK

MOUAH,4CH

INT21H

CODESENDS

ENDSTART

2.编译代码,生成OBJ文件,再生成EXE文件,可成功运行。

3.进行程序调试可得运算结果如下:

087H+034H的结果:

t

nx-eeBBBx^oeeocx=ggs9ox-eeoesp咖gBp^ooeesimx®di咖00

DS=077©ES=O76QSS=076FCS=©771IP^KKCNUUPElPLNZNAPENC

O?

?

l:

96ecAioeooMOUftXJOOOG)ds:

0000=000?

087H-034H的结果:

AX6053KX二6008

DS旳7?

0e?

?

l:

66)13A1GO00

CX;*53DX0000SP^OQGO

SStTGFCS,0?

71IPW13iwAxjoeee)

087HX034H的结果:

-t

AX二1B6CBXWOHI>S=0?

?

0ES旳730771:

9©1CA16009

excessDX二098SF二0099

SS=e?

6FCS=0?

?

1!

P=G01C

nowAxjooeoi

刖©00si^ooeoD.OOOG

HUUPElPLMZNAPEHC

DS:

eO99«367

087H/034H的结果:

AX9092BX0R34DS6?

?

0ES0?

f>0O771:

GG2SH1M09

CX=GG59DX^eOlFSF-0900ss=0?

fercs=G?

?

iip-eera

«nunx.roow)

BP9060SJ0909

NUUPElPLHZNrtPENC

DS:

eG04=6GC2

0C2H+5FH的结果:

AX01Z1BX0034

DS二0776ES二0760e?

?

l:

662C10468

CX=6e59DX091FSPOOGG

SS=OT6FOS旳771IF^OBZCH)UAXJOGOI)

bfeeeosieeeodieeeo

NUUTEIFLNZACPENC

DS;oo^eec2

0C2H-5FH的结果:

AX0063BX0934PS=0776ES=07690?

?

1:

6633ftl0460

exoesgdxcoifspooggSS二€T76FCS=07?

1IF二0933rt)UnXJOGCH)

BP09GGSiO06ODi0960

NUUPElPLNZACPEHC

IXS:

“MO0C2

0C2HX5FH的结果:

AXM7FEBX^OCKF

DS=07?

0ES=0?

8e

CX二妙9DX^OOOGSP^GOOOSS=076F00771IP二G03C

BP-GOtWSIPO09DIPQ09

NUUPElPLNZACPENC

9771:

O0:

JC

rtju

DS:

66CH^GCZ

0C2H4-5FH的结果:

BP-0900SI-6CO5DI6060

KUUPElPLKZNAPENCftS:

000O=GG8?

 

AX6002BX-6Q5F

DS=W?

0ES=0?

6O

|G7?

l;0O15B44C

CX二0O5PDX二0004SP二0009BP-00(*)SI二0660DI^G090SS=0?

6FCS=07?

1IF=9045MUUPElPLNZftCPENC

MOUrtH.4C

4•总结两组数的和差积商及标志状态位悄况如下表:

计算

状态标志

表达式

结果

CF

AF

ZF

OF

SF

PF

087H+034H

OBBH

NC

XA

NZ

NV

PL

PE

087H-034H

53H

NC

\A

NZ

NV

PL

PE

087H*034H

1B6CH

NC

\A

NZ

NV

PL

PE

087H/034H

商2H

余1FH

NC

\A

ZR

NV

PL

PE

0C2H+5FH

121H

NC

AC

NZ

NV

PL

PE

0C2H-5FH

63H

NC

AC

NZ

NV

PL

PE

0C2H*5FH

47FE

NC

XA

NZ

NV

PL

PO

0C2H/5FH

商2H

余4H

NC

\A

ZR

NV

PL

PE

 

状态标志位

加法

减法

乘法

除法

0

1

0

1

0

1

0

1

CF

最高有效

位向高位

无进位

最高有效位向高位有进位

二进制减法运算中最高有效为向高位无借位

(被减数〉=减数,够减

二进制减法运算中最高冇效位向高位有借位(被减数小于减数,不够减的情况

CFOF二00乘积的高一半为0(字节操作的

(AH)或字操作的(DX))

CF

OF二11乘积的高一半不为0

的情况)

AF

玉响

无影响

ZF

结果不为

结果为零

*影响

无影响

OF

两个不同符号数相加,或同符号数相加,结果符号与其相同。

两个同符号数相加(正数+正数或负数+负数),结果符号与其相反。

同符号数相减时,或不同符号数相减,其结果符号与减数不同。

两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。

CF0F=00乘积的高一半为0(字节操作的

(AH)或字操

作的(DX))

CF

OF二11乘积的高一半不为0

SF

结果不为负

结果为负

无影响

无影响

PF

无影响

无影响

|

实验2:

1.根据要求,编译程序如下:

FIRST+SECOND的16进制:

02

03

04

05

06

07

ns

09

012345678901

111111111122

DATASSEGMENT

FIRSTDB1|5H,82H,96H,57HSECONDDB12H,46H,83H,45H

THIRDDB5dup(8)

FORTHDB5dup(O)DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATftS

ENDSTART

FIRST-SECOND的16进制:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

START:

MOU

MOUDS,AX

MOUSI,3

MOUAL.FIRST[SI]

SUBAL,SECOND[SI]

MOU[THIRD+1][SI],

MOUCX,4

next:

DECSI

MOUAL,FIRST[SI]

SUBAL,SECOND[SI]

MOU[THIRD+1][SI],

LOOPnext

MOUAL,0

SUBAL,0

MOU[THIRD][SI],AL

MOU

INT21H

CODESENDS

ENDSTART

DATASSEGMENT

FIRSTDB45H,82H,96H,57HSECONDDB12H,46H,83H,45HTHIRDDB5dup(O)

FORTHDB5dup(O)DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

FIRST+SECOND的10进制:

01

DATASSEGMENT

02

FIRSTDD45H,82II,96II,57H

03

SECONDDB12H,46H,83H,45H

04

THIRDDB5dup(O)

05

FORTHDB5dup(O)

06

DATASENDS

07

CODESSEGMENT

08

ASSUMECS:

CODES,DS:

DATAS

09

START:

10

MOUAX,DATfiS

11

MOUDS,AX

12

MOUSI,3

13

MOUAL,FIRST[SI]

14

ADCAL,SECOND[SI]

15

Dtlti

16

MOU[F0RTH+1][SI],AL

17

MOUCX,4

18

next:

19

DECSI

20

MOUAL,FIRST[SI]

21

ADCAL,SECOND[SI]

22

DAA

23

MOU[F0RTH+1][SI],AL

24

LOOPnext

25

MOUAL,0

26

ADCALJ

27

DAA

2S

29

MOU[FORTH][SI],AL

30

MOUAH詁CH

31

IHT21II

32

CODESENDS

33

cB.

EHDSTART

FIRST-SECOND的10进制:

01

DfiTfiSSEGMENT

02

FIRSTDBU5H,82H,96H,57H

03

SECONDDB12H,46H,83H,45H

04

THIRDDB5dup(0)

05

FORTHDB5dup(0)

06

DfiTfiSENDS

07

CODESSEGMENT

08

ASSUMECS:

CODES,DS:

DATAS

09

STfiRT:

10

MOUAX,DATAS

11

MOUDS,AX

12

MOUSI,3

13

MOUAL,FIRST[SI]

14

SBBAL,SECOND[SI]

15

DAS

16

MOV[F0RTH+1][SI],fiL

17

MOUCX,4

18

next:

19

DECSI

20

MOUAL,FIRST[SI]

21

SBBAL,SECOND[SI]

22

DAS

23

MOV[FORTH+1][SI],I1L

24

LOOPnext

25

MOUAL,0

26

SBBAL90

27

DAS

28

MOU[FORTH][SI],ftL

29

30

MOUAH94CH

31

INT21H

32

CODESENDS

33

ENDSTART

2.编译代码,生成OBJ文件,再生成EXE文件,可成功运行。

3.进行程序调试可得运算结果如下:

FIRST+SECOXD的16进制结果:

BX-0999CX二0900DX二决炯SF旳609册二60阳SXFFFFDl=0999

977Z:

962E

M4(:

EU

AH.4(:

dds:

6

刃?

8:

飯旧0

45

57

eo-s?

o?

?

e:

eeio

eo

00

eo®

ET773:

磁0

OE

eo-tw

0773:

0030

00

00

4E-8A

(•r779:

96H0

00

eo-e^

0770:

0850

CD

00

G03

叨8:

0660

eo

00

QO-G9

3779:

0070

00

00

eooo

e0ooGHsn4ooQOGO

090eH4o4舸090900

%ee6z&创

DS二©?

?

eES二07WSS^076FCS=0?

?

21P^G2£NUUPElPLZRNrtPEHC

FIRST-SECOND的16进制结果:

gZc

X076OBX-GOO)

cxeoee

i)xeeoesp^oeeo

BP=006G

SI=FFFFDI6600

DS^OT70DS二G760

SS捋76F

CSe?

7ZIF

、二妙E

HUUPElPL贡

NAFENC

07?

2:

6G2E

B44C

MIU

"MC

dds:

O

刃70:

6000

33

E..W.F...3<

cr?

?

o:

eoio

00

0770:

ecize

(14

0770:

6030

M

N....M...

0770.0040

00

L

0?

?

0:

6C60

GO

»

cr7?

o:

eo60

GO

ET770:

e0?

9

00

FIRST-SECOND的10进制结果:

Ax=e?

*nBx=oo0e曲旳?

0£S=0?

66

0?

?

2:

0fniJVHC

-dds:

©

0770:

00004502

0?

?

e:

00106060

0779:

0020BO70

0770:

0030ZF8B0779:

0010GOZF9779:

0E5960M0776:

0060GOOO9779:

00766099

E..W.F..C36

CX0609DX=090eSP45009

SS=6?

6FCS=0?

?

2IP=0G31

MOU«L4C

99-43OB00008A

OG-4E

F9-B6

00-6900OG冷99

BP=ooeoSI=FFFFDI=O0e©

NUUP£1MGMZACPECY

 

4・最终结果如下:

十六进制结果

十进制结果

FIRST+SECOND

57H,C8H,19H,9CH

5&29,80,03

FIRST-SECOND

33H,3CH,13H,12H

33,36,13,12

实验3:

1.依据题意编写代码如下:

01

DATASSEGMENT

02

XDW87H

03

VDW3即H

04

ZDW0C2H

05

UDW5FH

06

DATASENDS

07

CODESSEGMENT

98

ASSUMECS:

CODES,DS:

DATAS

99

START:

10

MOUAX,DfiTfiS

11

MOUDS,fiX

12

MOUAX,X

13

IMULV

14

MOUCX5AX

15

MOUBX,DX

16

MOUAX52

17

CWD

18

ADDAX.CX

19

ADCDX.BX

20

SUBAX.328

21

SBBDX.Q

22

MOUCX,AX

23

MOUBX.DX

24

MOUAK9U

25

CWD

26

SUBCX,fiX

27

SBBBX,DX

28

MOUfiX,CX

29

MOUDX,BX

30

IDIUY

31

MOUAH/CH

32

33

34

INT21H

CODESENDSENDSTART

2•编译代码,生成OBJ文件,再生成EXE文件,可成功运行。

3.进行程序调试可得运算结果如下:

HX-O08ZBX-69G0CX-lft8?

DX-OO1FSP-0090BPP9O0SI-eGOODI-0009DS=0770ES=0?

bOSS二W6FCS=0771IP=0O3ZMUUPElPLZBMAPEMCe?

71:

«MZB44CMOUAH.4C

即商为82H,余数为1FH

七、实验感想:

经过两次实验,渐渐熟悉了编程环境,对汇编语言中的二进制、十六进制、

十进制、BCD码的表示形式有了一定了解,也对从汇编课上学习到的有关BCD码调整指令方面理论知识有了更深刻的认识,经过自己动手编程,熟悉了二进制多字节加减法基本指令的使用方法以及无符号数和有符号数乘法和除法指令的使用,通过分析和思考,掌握了各类运算类指令对个状态标志位的影响和测试方法。

继续阅读

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1