2023年汇编实验报告新编_第1页
2023年汇编实验报告新编_第2页
2023年汇编实验报告新编_第3页
2023年汇编实验报告新编_第4页
2023年汇编实验报告新编_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三算术运算与代码转换程序设计

一'实验目的

1)掌握算术运算程序的设计方法。

2)掌握代码转换程序的设计方法。

3)进一步掌握各种程序结构。

4)纯熟掌握和使用用DEBUG调试程序。

二'实验内容

1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在

屏幕上。

2)编制程序实现二进制定点数与十进制数的ASCII码串之间转换,并将结

果显示在屏幕上。

3)编写程序计算从键盘输入两个不超过四位的十进制数的和、差、积、商,

并以十进制形式输出。

4)写程序把从键盘输入的四位十六进制数转换为压缩的BCD码,并显示输出。

5)编写一通用过程用来将十进制数(从键盘输入)转换为P(从键盘输入)进

制数。

三、实验设备

PC机一台

四、实验环节

1)按程序流程图编制实验程序。

2)输入源程序。

3)汇编、连接程序,执行程序,检查结果。

4)程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行o

5)用D命令检查执行结果。

六、源程序

实验一

DATASEGMENT

NUM1DB22H,33H,44H,55H,66H,77H

NUM1LDB6H

NUM2DB22H,22H,22H,22H

NUM2LDB4H

0UTC0ME1DB10HDUP(O)

OUTCOME2DB10HDUP(0)

NDBOH

DATAENDS

STACKISEGMENTPARASTACK

DW2011DUP(O)

STACKIENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK1

START:MOVAX,DATA

MOVDS,AX

MOVCH,0

MOVSI,OFFSETNUM1

MOVDI,OFFSETNUM2

MOVAH,NUM1L

MOVAL,NUM2L

CMPAH,AL

JAECHA

XCHGSI,DI

XCHGAH,AL

CHA:SUBAH,AL

oMOVCL,AL

CLC

MOVBX,OFFSETOUTCOME1

LOP1:MOVAL,[DI]

PUSHCX

MOVCL,[SI]

ADCCL,AL

MOV[BX],CL

INCBX

INCSI

INCDI

POPCX

LOOPLOPl

MOVCL,AH

JCXZLOP3

LOP2TUSHCX

MOVCL,BYTEPTR[SI]

ADCCL,0

MOV[BX],CL

POPex

INCBX

INCSI

LOOPLOP2

LOP3:MOVCH,0

MOVSI,OFFSETNUM1

MOVDI.OFFSETNUM2

MOVAH,NUMIL

MOVAL,NUM2L

CMPAH,AL

JAECHA1

XCHGSI,DI

XCHGAH,AL

CHAI:SUBAH,AL

MOVCL,AL

CLC

MOVBX,OFFSETOUTCOME2

LOPlkMOVAL,[DI]

PUSHCX

MOVCLJSI]

SBBCL,AL

MOV[BX],CL

INCBX

INCSI

INCDI

POPex

LOOPLOP11

MOVCL,AH

JCXZLOP7

LOP21:PUSHCX

MOVCL,BYTEPTR[Si]

SBBCL,0

MOV[BX],CL

P0PCX

INCBX

INCSI

LOOPLOP21

LOP7:MOVDI,OFFSETOUTCOME1

ADDDIJ0H

MOVCX,11H

LOP4:MOVDL,[DI]

DECDI

CMPN,0H

JNELOP5

CMPDL,0H

JELOP9

LOP5:PUSHDX

PUSHCX

MOVCL,4H

SHRDL,CL

POPCX

CMPDL,9H

JBELOP6

ADDDL,7H

LOP6:ADDDL,30H

MOVAH,2

INT21H

MOVN,1H

POPDX

ANDDX,0FH

CMPDL,9H

JBELOP8

ADDDL,7H

LOP8:ADDDL,30H

MOVAH,2

1NT21H

MOVDL,H

MOVAH,2

INT21H

LOP9:LOOPLOP4

MOVN,0

MOVDI,OFFSETOUTCOME2

ADDDI,1OH

MOVCX,11H

LOP14:MOVDL,[DI]

DECDI

CMPN,0H

JNELOP15

CMPDL,0H

JELOP19

LOP15:PUSHDX

PUSHCX

MOVCL,4H

SHRDL,CL

POPex

CMPDL,9H

JBELOP16

ADDDL,7H

LOP16:ADDDL,30H

MOVAH,2

INT21H

MOVN,1H

POPDX

ANDDX,0FH

CMPDL,9H

JBELOP18

ADDDL,7H

LOP18:ADDDL,30H

M0VAH,2

INT21H

MOVDL/H'

MOVAH,2

INT21H

LOP19:LOOPLOP14

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

实验2

DATASEGMENT

TISHIIDB1PIeaseenterthefirstnumber:1,$

TISHI2DB1Pleaseenterthesecondnumber:',$

JIADB'+*,'$z

JIANDB'-'/$'

CHENGDB咒$

CHUDB7,

DENGDB'=*,$

YUDB'.........VS,

ADB10

BDW10

CDW10000

FDWOH

NUM1DWOH

NUM2DWOH

NDBOH

N1DB4H

DATAENDS

STACK1SEGMENTS?ACK

DW3OHDUP(0)

STACK1ENDS

CODESSEGMENT

ASSUMECSCODES,DS:DATA

START:MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETTISHI1

MOVAH,09H

INT21H

LOOP2:MOVAX,NUM1

MULB

MOVBX,AX

MOVAH,1

INT21H

CMPAL,0DH

JELOP1

MOVNUM1,BX

MOVAH,0

SUBAL,30H

ADDNUM1,AX

JMPLOOP2

LOP1:MOVDL,OAH输出换行和回车

MOVAH,2

INT21H

MOVDL,0DH

MOVAH,2

INT21H

MOVDX,OFFSETTISHI2

MOVAH,09H

INT21H

LOOP1:MOVAX,NUM2

MULB

0MOVBX,AX

MOVAH,1

INT21H

CMPALQDH

JELOP3

MOVNUM2,BX

MOVAH,0

SUBAL,30H

ADDNUM2,AX

JMPLOOP1

LOP3:MOVDL,OAH输出换行和回车

MOVAH,2

INT21H

MOVDL,0DH

MOVAH,2

INT21H

MOVN,0

MOVDX,NUM1

MOVF,DX

LOP6:MOVDX,0H

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,0H

JELOP7

MOVF,AX

JMPLOP6

LOP7:MOVCL,N

MOVCH,0

LOP16:POPDX

ADDDX,3OH

MOVAH,2

INT21H

LOOPLOP16

MOVDX,NUM2

MOVF,DX

MOVN,0

MOVDX,OFFSETJIA

MOVAH,09HINT21H

LOOOP6:MOVDX,OH

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,0H

JELOOOP7

MOVF,AX

JMPLOOOP6

LOOOP7:MOVCL,N

MOVCH,0

LOOOP16:POPDX

ADDDX,3OH

MOVAH,2

INT2IH

LOOPLOOOP16

MOVDX,OFFSETDENG

MOVAH,09H

INT21H

MOVN,0

LOOP3:MOVAX,NUM1

ADDAX,NUM2

MOVF,AX

LOOP4:MOVDX,OH

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOOP5

MOVF,AX

JMPLOOP4

LOOP5:MOVCL,N

MOVCH,0

LOOP0:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOOPO

MOVDL,0AH输出换行和回车

MOVAH,2

INT21H

MOVDL,ODH

MOVAH,2

INT21H

MOVN,0

MOVDX,NUM1

MOVF,DX

L0P61:MOVDX,OH

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOP71

MOVF,AX

JMPLOP61

LOP71:MOVCL,N

MOVCH,0

LOP161:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOP161

M0VDX,NUM2

MOVF,DX

MOVN,0

MOVDX,OFFSETJIAN

MOVAH,09HINT21H

LOOOP61:MOVDX,0H

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOOOP71

MOVF,AX

JMPLOOOP61

LOOOP71:MOVCL,N

MOVCH,0

LOOOP161:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOOOP161

MOVDX,OFFSETDENG

MOVAH,09H

INT21H

MOVN,0

MOVN,0

MOVAX,NUMI

SUBAX,NUM2

MOVF,AX

ANDAX,1000000OB

CMPAX,10000000B

JNELOOP6

NEGF

LOOP6:MOVDX,0

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JEL00P7

MOVF,AX

JMPLOOP6

L00P7:M0VCL,N

MOVCH,0

LOOP16:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOOP16

MOVDL,OAH输出换行和回车

MOVAH,2

INT21H

MOVDL.ODH

MOVAH,2

INT21H

MOVN,0

MOVDX,NUM1

MOVF,DX

LOP62:MOVDX,OH

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOP72

MOVF,AX

JMPLOP62

LOP72:MOVCL,N

MOVCH,0

L0P162:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOP162

MOVDX,NUM2

MOVF,DX

MOVN,0

MOVDX,OFFSETCHENG

MOVAH,09H

INT21H

LOOOP62:MOVDX,OH

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOOOP72

MOVF,AX

JMPLOOOP62

LOOOP72:MOVCL,N

MOVCH,0

LOOOP162:POPDX

ADDDX,3OH

MOVAH,2

INT21H

LOOPLOOOP162

MOVDX,OFFSETDENG

MOVAH,09H

INT21H

MOVN,0

MOVAX,NUM1

MULNUM2

DIVC

PUSHDX

MOVF,AX

MOVN,0

LOOP8:MOVDX,0

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOOP9

MOVF,AX

JMPLOOP8

LOOP9:MOVCL,N

MOVCH,0

LOOP17:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOOP17

MOVN,0

POPF

LOOP10:MOVDX,0H

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,0H

JELOOP11

MOVF,AX

JMPLOOPIO

LOOPlkMOVAL,N

CMPAL,4H

JELOOP20

MOVAL,4H

SUBAL,N

MOVCL,AL

MOVCH,0

LOOP19:MOVDX,O

MOVAH,2

INT21H

LOOPLOOP19

LOOP20:MOVCL,N

MOVCH,0

LOOP18:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOOP18

MOVDL,OAH输出换行和回车

MOVAH,2

INT21H

MOVDL,ODH

MOVAH,2

INT21H

MOVN,0

MOVDX,NUM1

MOVF,DX

LOP64:MOVDX,0H

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,0H

JELOP74

MOVF,AX

JMPLOP64

LOP74:MOVCL,N

MOVCH,0

LOP164:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOP164

MOVDX,NUM2

MOVF,DX

MOVN,0

MOVDX,OFFSETchu

MOVAH,09H

INT21H

LOOOP64:MOVDX,OH

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOOOP74

MOVF,AX

JMPLO00P64

LOOOP74:MOVCL,N

MOVCH,0

LOOOP164:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOOOP164

MOVDX,OFFSETDENG

MOVAH,09H

INT21H

MOVN,0

MOVAX,NUM1

MOVDX,0

DIVNUM2

PUSHDX

MOVF,AX

MOVN,0

LOOP15:MOVDX,0

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOOP12

MOVF,AX

JMPL0OP15

LOOP12:MOVCL,N

MOVCH,0

LOOP21:POPDX

ADDDX,30H

MOVAH,2

INT21H

LOOPLOOP21

MOVDX,OFFSETYU

MOVAH,09H

INT21H

POPF

MOVN,0

LOOP13:MOVDX,0

MOVAX,F

DIVB

PUSHDX

INCN

CMPAX,OH

JELOOP14

MOVF,AX

JMPLOOP13

LOOP14:MOVCL,N

MOVCH,OH

LOOP22:POPDX

ADDDX,3OH

MOVAH,2

INT21H

LOOPLOOP22

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

实验五输入输出程序设计

一'实验目的

1)掌握输入输出程序的编写方法。

2)熟悉系统功能调用的方法。

3)熟悉动画程序的编写方法。

二'实验内容

1)在CRT上每隔一秒连续显示字符0—9。

编程提醒

为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一

个空格。为了输出0—9,置寄存器BL初值为0,每循环一次使其增量。为了保证

输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND0FH

指令屏蔽高4位。

2)用系统功能调用将‘HELLO'由键盘输入,再从屏幕输出,***HELLO

***'O

3)编制在屏幕上画线的子程序,调用该子程序画一矩形。

4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底

部。

5)创建一磁盘文献,保存从键盘输入的字符串。

6)编写程序用设立系统时间,一方面从键盘以十进制数形式输入时间,然后修改系统时

间,并重新以十进制形式显示时间。

7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。

8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。

三'实验设备

PC机一台

四'实验环节

⑴按程序流程图编制实验程序。

2)输入源程序。

。3)汇编、连接程序,执行程序,检查结果。

4)程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。

五、源程序

实验五EXAM5-1

STACKSEGMENTSTACK

DB1024DUP(O)

STACKENDS

CODESEGMENT

ASSUMECS:CODE,SS:STACK

START:MOVBL,0

LP:MOVDL,2OH

MOVAH,2

INT2IH

MOVAL,BL

ADDAL,0

DAA

ANDAL,OFH

MOVBL,AL

PUSHBX

ORAL,3OH

MOVDL,AL

MOVAH,2

INT21H

MOVBX,3E8H

LP2:MOVCX,176H;延时1ms

LP1:PUSHF

POPF

LOOPLP1

DECBX

JNZLP2

POPBX

INCBL

JMPLP

CODEENDS

ENDSTART

执行程序EXAM5-1•EXE,屏幕上依次循环显示一个数字一个空格:

0123456789

实验五EXAM5-2

STACKSEGMENTSTACK

DB1024DUP(O)

STACKENDS

DATASEGMENT

BUFFDB6,7DUP(?),$

DATAENDS

INPUTMACROBUFE

MOVDX,OFFSETBUFE

MOVAH,OAH

INT21H

ENDM

PUTCHARMACROCHAR

MOVDL,CHAR

MOVAH,02H

INT21H

ENDM

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK

START:MOVAX,DATA

MOVDS,AX

INPUTBUFF;读取字符串TBUFF

PUTCHARODH

PUTCHAROAH;光标另起一行

MOVCX,0003H

NEXT:PUTCHAR2AH

LOOPNEXT

MOVCL,BUFF+1

SUBCH,CH

MOVBX,OFFSETBUFF+2

BEGIN:MOVAL,[BX]

PUTCHARAL

INCBX

LOOPBEGIN

MOVCX,0003H

NEXT1:PUTCHAR2AH

LOOPNEXT1

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

执行程序EXAM5-2-EXE,输入HELL0/屏幕上显示结果:

***HELL0***

实验五EXAM5-5

NAMEEXAM6

SSTACKSEGMENTSTACK'stack'

DB1024DUP(?)

SSTACKENDS

DATASEGMENT

ASKNAMEDBODH,OAH,'Enterthe'

DB'destfi1ename:$'

ASKCONTDB0DH,0AH,'Enterthestring'

DBasfilecontent:'Odh,Oah,'$5

FILEBUFDB62,63DUP(?)

HANDDDW?

MSGMERDBODH,OAH,OAH

DB'Directoryful1',0DH,0AH,'$'

MSGWERDB0DH,0AH,OAH

DB'Diskful1,,0DH,0AH,,$,

MSGSUCDBODH,0AH,0AH,

DB'WritefileisSuecessfuf

DBODH,0AH,'

DATAENDS

DISPLYMACROTEXT

MOVDX,OFFSETTEXT

MOVAH,09H

INT21H

ENDM

CRHANDMACROPATH,ATTR

MOVDX,OFFSETPATH;文

献名

MOVCL,ATT

R;文献属性

XORCH,CH

MOVAH,3CH

INT21H

ENDM

WRHANDMACROHAND,BUFF,BYTE

MOVBX,HAND

MOVDX,OFFSETBUFF

ADDDX,2

MOVCL,BYTE

XORCH,CH

MOVAH,4OH

INT21H

ENDM

CLHANDMACROHAND

MOVBX,H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论