计算机应用实验报告.docx

上传人:b****5 文档编号:28842707 上传时间:2023-07-20 格式:DOCX 页数:29 大小:21KB
下载 相关 举报
计算机应用实验报告.docx_第1页
第1页 / 共29页
计算机应用实验报告.docx_第2页
第2页 / 共29页
计算机应用实验报告.docx_第3页
第3页 / 共29页
计算机应用实验报告.docx_第4页
第4页 / 共29页
计算机应用实验报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

计算机应用实验报告.docx

《计算机应用实验报告.docx》由会员分享,可在线阅读,更多相关《计算机应用实验报告.docx(29页珍藏版)》请在冰豆网上搜索。

计算机应用实验报告.docx

计算机应用实验报告

实验一乘法运算实验

一、实验目的:

1、了解调试程序DEBUG的常用命令和功能。

2、掌握多字节乘法运算程序的编写方法。

3、学会程序调试方法。

2、实验原理

序号

命令

功能

0?

?

?

?

?

?

显示Debug命令列表。

1?

?

?

?

?

a

汇编8086/8087/8088记忆码。

2?

?

?

?

?

c

比较内存的两个部分。

3?

?

?

?

d

显示部分内存的内容。

4?

?

?

?

e

从指定地址开始,将数据输入到内存。

5?

?

?

?

f

使用指定值填充一段内存。

6?

?

?

?

g

运行在内存中的可执行文件。

7?

?

?

?

?

h

执行十六进制运算。

8?

?

?

?

?

i

显示来自特定端口的1字节值。

9?

?

?

?

?

l

将文件或磁盘扇区内容加载到内存。

10?

?

m

复制内存块中的内容

11?

?

?

/n

为l或w命令指定文件,或者指定正在测试的文件的参数。

12?

?

o

向输出端口发送1个字节的值。

13?

?

p

执行循环、重复的字符串指令、软件中断或子例程。

14?

?

q

停止Debug会话。

15?

?

r

显示或改变一个或多个寄存器。

16?

?

?

?

s

在部分内存中搜索一个或多个字节值的模式。

17?

?

t

执行一条指令,然后显示所有寄存器的内容、所有标志的状态和Debug下一步要执行的指令的解码形式。

18?

?

?

u

反汇编字节并显示相应的原语句。

19?

?

?

w

将被测试文件写入磁盘。

20?

?

?

xa

分配扩展内存。

21?

?

?

xd

释放扩展内存。

22?

?

?

xm

映射扩展内存页。

23?

?

?

?

xs

显示扩展内存的状态。

三、实验内容:

将两个无符号数相乘,将结果数存入规定地址。

被乘数和乘数的存放地址及数据如下:

名称

地址

数据

被乘数

2000:

0000

2000:

0001

2A

30

乘数

2000:

0002

2000:

0001

15

1B

乘积

2000:

0004

2000:

0007

注意:

数据低位在前,高位在后。

四、实验报告内容:

1、实验用源程序:

开机选择“开始”→“运行”→输入“command”→输入“debug”调出debug应用程序。

Debug源程序:

D2000:

0000;查看部分内存内容

E2000:

00002A30151B;写入数据

D2000:

0000;查看输入后的数据

A回车;写程序

MOVAX,2000

MOVDS,AX

MOVAX,[0000]

MOVBX,[0002]

MULBX;让AX乘以DX,结果存入DX:

AX

MOV[0004],AX

MOV[0007],DX

INT20H;正常中断程序

Ctrl+M;退出编程,由键盘输入

G;运行程序

D2000:

0000;查看程序运行结果

2、实验结果分析

输出结果显示为72-6118-05结果正确。

实验中遇到的问题,在debug里输入程序要细心,如果输入有误为保证结果的正确应重新打开debug程序。

实验中发现输入的大小写对程序的结果没有影响。

实验二除法运算实验

一、实验目的:

1、了解调试程序DEBUG的常用命令和功能。

2、掌握多字节除法运算程序的编写方法。

3、学会程序调试方法。

二、实验内容:

将两个无符号数相除,将结果数存入规定地址。

被除数和除数的存放地址及数据如下:

名称

地址

数据

被除数

除数

2000:

0010~0013

2000:

0014~0015

2A3B4C5D

7C5D

余数

2000:

0016~0017

2000:

0018~0019

数据低位在前,高位在后。

三、实验报告内容:

1、实验用源程序

按照实验一中的方法调出debug:

Debug源程序:

D2000:

0000;查看部分内存内容

E2000:

00005D7C5D4C3B2A;写入数据

D2000:

0000;查看输入后的数据

A;写程序

MOVAX,2A3B

MOVDX,4C5D

MOVBX,7C5D

MOVAX,[0010]

MOVDX,[0012]

MOVBX,[0014]

DIVBX;被除数DX:

AX除BX,商存入AX,余数存到DX

MOV[0016],AX

MOV[0018],DX

INT20H;正常中断程序

Ctrl+M;退出编程,由键盘输入

G;运行程序

D2000:

0000;查看程序运行结果

2、实验结果分析

实验正确结果:

7D-FF9E-11

实验中应注意的问题,在输入数值时应高低位颠倒输入,程序运算时是先进后出。

遇到的问题:

当输入正序时得到的结果是EE-56E7-6F(为错误结果)。

实验三数据转换实验

一、实验目的:

1、进一步掌握DEBUG使用方法。

2、掌握数制转换程序的编写方法。

3、学会调试循环程序和子程序方法。

二、实验内容:

将单元2000:

0000~003中的8位十进制数35,26,38,74(数据高位在前,低位在后),转换成二进制数,存入单元2000:

0004~0007中。

在编写程序时,要充分利用循环程序和调用子程序的方法来简化程序设计,并注意循环的地址及子程序入口地址的设置方法。

三、实验报告内容:

1、实验用源程序

STACKSSEGMENTSTACK;堆栈段

DW128DUP();只有128个字节

STACKSENDS

DATASSEGMENT;数据段

D1DB10

;D2DB

;D3DB38H

;D4DB74H

DATASENDS

CODESSEGMENT;代码段

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS;初始化

MOVDS,AX

MOVAX,2000H

MOVDS,AX

MOVAX,2635H

MOVDI,0000H

MOV[DI],AX

MOVDI,0002H

MOVAX,7438H

MOV[DI],AX

MOVBL,10

MOVBX,0010

MOV[BX],AL

DO1MACROADD1,ADD2

MOVSI,CX

MOVDI,0000H

MOVCX,4

NEXT:

MOVAL,[DI]

SHRAL,4

MULBL

PUSHAX

MOVAL,[DI]

ANDAL,0FH

POPDX

XORAH,AH

XORDH,DH

ADDAL,DL

MOVSI,[CL+4]

MOV[DI+4],AL

INCDI

LOOPNEXT

ENDM

DO10H4H

DO115

DO126

DO137

MOVAX,4C00H;退出程序

INT21H

CODESENDS

ENDSTART

实验四显示字符串实验

一、实验目的:

1、掌握宏汇编语言源程序的编辑方法。

2、学会用MASM及LINK程序将源程序文件转换成可执行文件的方法。

3、学会调用DOS软中断功能来显示字符串的方法。

二、实验步骤:

1、利用全屏幕编辑程序来编辑源程序,文件扩展名为ASM,操作如下:

A>NE盘号:

文件名.ASM

2、利用MASM程序将源程序文件汇编成目标文件,目标文件扩展名为OBJ,操作如下:

A>MASM盘号:

文件名.ASM盘号:

文件名.OBJ

在编辑中发生错误,要用NE程序来修改源程序文件。

3、用LINK程序将目标文件转换成可执行文件,可执行文件扩展名为EXE,操作如下:

A>LINK盘号:

文件名.OBJ盘号:

文件名.EXE

4、在DOS环境下执行可执行文件。

三、实验内容:

按照宏汇编语言源程序格式的要求,编写一个文件,显示如下字符串:

Ilikemicrocomputerverymuch.

四、实验报告内容:

1、实验用源程序

STACKSSEGMENTSTACK;堆栈段

DW128DUP();只有128个字节

STACKSENDS

DATASSEGMENT;数据段

MSG1DB'Ilikemicrocomputerverymuch.','$'

DATASENDS

CODESSEGMENT;代码段

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS;初始化

MOVDS,AX

MOVDX,OFFSETMSG1

MOVAH,9

INT21H

MOVAX,4C00H;退出程序

INT21H

CODESENDS

ENDSTART

2、实验结果分析

实验显示出了“Ilikemicrocomputerverymuch.”

实验五显示字符串实验

一、实验目的:

1、进一步掌握字符串的显示方法。

2、掌握键盘信号的输入和分析方法。

3、进一步熟悉源程序的编写方法。

二、实验内容:

先使计算机提问下列问题:

Doyoulikethislesson(Y/N)

如果用户回答N,计算机回答:

Youshouldchangeyourinterest.

如果用户回答Y,计算机回答:

Youaregoodstudent.

三、实验报告:

1、实验用源程序:

STACKSSEGMENTSTACK;堆栈段

DW128DUP();注意这里只有128个字节

STACKSENDS

DATASSEGMENT;数据段

MSG1DB'Doyoulikethislesson(Y/N)','$'

MSG2DB10,'Youshouldchangeyourinterest.','$'

MSG3DB10,'Youaregoodstudent.','$'

DATASENDS

CODESSEGMENT;代码段

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS;初始化

MOVDS,AX

;请在这里添加您的代码

MOVDX,OFFSETMSG1

MOVAH,9

INT21H

MOVAH,1

INT21H

CMPAL,'Y'

JZY1

CMPAL,'y'

JZY1

CMPAL,'N'

JZY2

CMPAL,'n'

JZY2

Y1:

MOVDX,OFFSETMSG3

MOVAH,9

INT21H

JMPDONE

Y2:

MOVDX,OFFSETMSG2

MOVAH,9

INT21H

DONE:

MOVAX,4C00H;退出程序

INT21H

CODESENDS

ENDSTART

实验六数据排序实验

一、实验目的:

1、掌握比较数据大小的方法。

2、掌握由大到小排列数据的方法。

3、掌握显示某一数据区的方法。

二、实验内容:

先在数据区输入十个随机排列的数据,然后用气泡排序法把数据由大到小排列好,并显示在屏幕上。

然后改变数据的内容,再用同样的程序来排列,并显示出结果。

第一次排列的数据为:

41H,70H,03H,53H,88H,16H,20H,3FH,74H,8EH

第二次排列的数据为:

10H,78H,23H,04H,1AH,7AH,35H,4BH,9FH,0BH

显示结果:

班级,学号,名字

排序好的数据。

三、实验报告内容:

1、实验用源程序

STACKSSEGMENTSTACK;堆栈段

DW128DUP()

STACKSENDS

DATASSEGMENT;数据段

MSG1DB'Doyoulikethislesson(Y/N)','$'

MSG2DB10,'Youshouldchangeyourinterest.','$'

MSG3DB10,'Youaregoodstudent.','$'

DATASENDS

CODESSEGMENT;代码段

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS;初始化

MOVDS,AX

MOVDX,OFFSETMSG1

MOVAH,9

INT21H

MOVAH,1

INT21H

CMPAL,'Y'

JZY1

CMPAL,'y'

JZY1

CMPAL,'N'

JZY2

CMPAL,'n'

JZY2

Y1:

MOVDX,OFFSETMSG3

MOVAH,9

INT21H

JMPDONE

Y2:

MOVDX,OFFSETMSG2

MOVAH,9

INT21H

DONE:

MOVAX,4C00H;退出程序

INT21H

CODESENDS

ENDSTART

实验七显示字符串实验

一、实验目的:

1、掌握显示菜单的方法。

2、学会分析键盘输入数据的方法。

3、掌握编写宏指令和宏调用的方法。

二、实验步骤:

先在屏幕上显示下列菜单

Whatitemdoyouwanttoknow

1.Myname

2.Myage

3.Myinterestingwork

4.Myfamily

Pleaseinputthenumber:

然后根据输入的数据,分别回答你的姓名,年龄,感兴趣的工作和家庭成员,具体回答内容由同学自己拟定。

在程序中尽量采用宏指令,并注意程序设计的技巧。

三、实验报告内容:

1、实验用源程序

STACKSSEGMENTSTACK;堆栈段

DW128DUP()

STACKSENDS

DATASSEGMENT;数据段

M01DB'Whatitemdoyouwanttoknow','$'

M02DB10,28DUP(8),'1.Myname','$'

M03DB10,28DUP(8),'2.Myage','$'

M04DB10,28DUP(8),'3.Myinterestingwork','$'

M05DB10,28DUP(8),'4.Myfamily','$'

M06DB10,28DUP(8),'Pleaseinputthenumber:

','$'

M07DB10,28DUP(8),'LiJuan','$'

M08DB10,28DUP(8),'22','$'

M09DB10,28DUP(8),'playballs.','$'

M10DB10,28DUP(8),'Myparentsandme.','$'

DATASENDS

CODESSEGMENT;代码段

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS;初始化

MOVDS,AX

PRTMACROX

MOVDX,OFFSETX

MOVAH,9

INT21H

ENDM

IPTMACRO

MOVAH,1

INT21H

ENDM

IFGOMACROX,Y

CMPAL,X

JZY

ENDM

PRTM01

PRTM02

PRTM03

PRTM04

PRTM05

PRTM06

IPT

IFGO'1',Y1

IFGO'2',Y2

IFGO'3',Y3

IFGO'4',Y4

Y1:

PRTM07

JMPDONE

Y2:

PRTM08

JMPDONE

Y3:

PRTM09

JMPDONE

Y4:

PRTM10

DONE:

MOVAX,4C00H;退出程序

INT21H

CODESENDS

ENDSTART

实验八时钟显示实验

一、实验目的:

1、了解计算机中时钟数据的存取方法。

2、掌握时钟显示的编写方法。

3、进一步掌握BIOS和DOS中子程序的调用方法。

二、实验内容:

在计算机屏幕的右上角显示时钟值,直到按下一个键再返回DOS。

三、实验报告内容:

1、实验用源程序:

DATASEGMENT

WHOURDB0;秒表的时、分、秒、毫秒

WMINDB0

WSECDB0

WMSECDB0

OLD1CHDD0

SIGNALDB0

COUNTDW0

;---------------------------------------------------------------------------------------------------------------

CHOURDB0;闹钟的时、分、秒

CMINDB0

CSECDB0

;-----------------------------------------------------------------------------------------------------------------

SPACEDB2000DUP('')

PATTERNDB6DUP(''),0C9H,26DUP(0CDH),0BBH,6DUP('')

DB6DUP(''),0BAH,26DUP(20H),0BAH,6DUP('')

DB6DUP(''),0C8H,26DUP(0CDH),0BCH,6DUP('')

;----------------------------------------------------------------------------------------------------------------

DBUFFERDB8DUP(':

'),12DUP('')

DBUFFER1DB20DUP('')

DBUFFER2DB11DUP(':

'),15DUP('')

STR1DB0DH,0AH,'INPUT''M''TONEXT-STATE,INPUT''Q''TOEXIT:

$',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACKS

;-------------------------------------------------------------------

PUSHA1MACRO

PUSHDS

PUSHAX

PUSHBX

PUSHCX

PUSHDX

ENDM

POPA1MACRO

POPDX

POPCX

POPBX

POPAX

POPDS

ENDM

;图形化界面设计

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,0003H;设置显示方式为40*25彩色文本方式

INT10H

LEADX,STR1;显示提示信息

MOVAH,9

INT21H

MOVBP,OFFSETSPACE

MOVDX,0B00H

MOVCX,1000

MOVBX,0000H

MOVAX,1300H

INT10H;显示字符串,定义显示方式

;---------------------------------------------------------------

;主程序

LP1:

MOVAH,1;从键盘输入单个字符

INT21H

CMPAL,'M';AL='M'?

JNELP5

CALLDATE;显示系统日期

LP2:

MOVAH,1;从键盘输入单个字符

INT21H

CMPAL,'M';AL='M'?

JNELP5

CALLTIME;显示系统时间

LP3:

MOVAH,1;从键盘输入单个字符

INT21H

CMPAL,'M';AL='M'?

JNELP4

CALLSTOPWATCH;显示秒表

LP4:

MOVAH,1;从键盘输入单个字符

INT21H

CMPAL,'M';AL='M'?

JNELP5

CALLRING

LP5:

CMPAL,'Q';AL='Q'?

JNELP1

MOVAH,4CH;返回DOS状态

INT21H

;---------------------------------------------------------------

;显示日期子程序

DATEPROCNEAR

DISPLAY9:

MOVAH,2AH;取日期CX:

DH:

DL=年:

月:

日AL=星期

INT21H

MOVSI,0

MOVAX,CX

MOVBX,100

DIVBL

MOVBL,AH

CALLBCDASC1;日期数值转换成相应的ASCII码字符

MOVAL,BL

CALLBCDASC1

INCSI

MOVAL,DH

CALLBCDASC1

INCSI

MOVAL,DL

CALLBCDASC1

MOVBP,OFFSETDBUFFER1

MOVDX,001DH

;;;;;;;;;;L;;;;;;;;;;;;;

MOVCX,20

MOVBX,004EH

MOVAX,1301H

INT10H

MOVAH,02H;设置光标位置

;;;;;;;;222

MOVDX,0900H

MOVBH,0

INT10H

MOVBX,0018H

REPEA:

MOVCX,0FFFFH;延时

REPEAT:

LOOPREPEAT

DECBX

JNZREPEA

MOVAH,01H;读键盘缓冲区字符到AL寄存器

INT16H

JEDISPLAY1

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

当前位置:首页 > 解决方案 > 工作计划

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

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