《微机原理及应用》实验报告.docx

上传人:b****7 文档编号:9658406 上传时间:2023-02-05 格式:DOCX 页数:10 大小:16.91KB
下载 相关 举报
《微机原理及应用》实验报告.docx_第1页
第1页 / 共10页
《微机原理及应用》实验报告.docx_第2页
第2页 / 共10页
《微机原理及应用》实验报告.docx_第3页
第3页 / 共10页
《微机原理及应用》实验报告.docx_第4页
第4页 / 共10页
《微机原理及应用》实验报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

《微机原理及应用》实验报告.docx

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

《微机原理及应用》实验报告.docx

《微机原理及应用》实验报告

中国石油大学(华东)现代远程教育

实验报告

课程名称:

微机原理及应用

实验名称:

循环程序设计

实验形式:

在线模拟+现场实践

提交形式:

在线提交实验报告

学生姓名:

褚东学号:

*************

年级专业层次:

17电气自动化技术高起专

学习中心:

山东枣庄函授站(新)

 

提交时间:

2018年7月10日

一、实验目的

1.掌握单重循环及多重循环的程序设计方法;

2.学会针对不同的问题,选用不同的组织循环的方法;

3.进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。

二、实验内容

1.已知字数组定义如下:

ARRAYDW12,78,55,4,125,96

MAXDW?

编制程序求出该ARRAY数组中的最大数放入MAX单元。

datasegment

arraydw12,78,55,4,125,96

maxdw?

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movsi,0

movax,array[si]

movcx,5

again:

addsi,2

deccx

jcxzexit

cmpax,array[si]

jaagain

movax,array[si]

jmpagain

exit:

movmax,ax

movah,02h

int21h

movah,4ch

int21h

codeends

endstart

2.预留字符串口令,输入口令串与预留密码串比较。

若匹配则显示“MATCH!

CONGRATULATION”,否则显示“NOMATCH!

”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输入密码皆错,给出相应的提示信息,程序退出。

datasegment

passworddb'123456'

inputdb20,?

20dup(?

countequ6

str1db0dh,0ah,'match!

congratulation$'

str2db0dh,0ah,'nomatch!

pleaseinputagain:

$'

str3db0dh,0ah,'pleaseintoutyoupassword:

$'

str4db0dh,0ah,'wrong3times,programwillbeover$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdi,3

begin:

decdi

leadx,str3

movah,09h

int21h

leadx,input

movah,0ah

int21h

movsi,0

moval,input[si+1]

cmpal,count

jnzoutput1

movsi,0

movcx,count

again:

moval,password[si]

movbl,input[si+2]

cmpal,bl

jnzoutput1

incsi

loopagain

jmpoutput2

output1:

leadx,str2

movah,09

int21h

cmpdi,0

jnzbegin

jmpaa

output2:

leadx,str1

movah,09

int21h

jmpexit

aa:

leadx,str4

movah,09

int21h

movax,9999h

a:

movcx,9999h

b:

loopb

decax

jnza

exit:

movah,4ch

int21h

codeends

endstart

3.有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出。

datasegment

arraydw22,31,10,5,1,66,136,99

dataends

codesegment

mainprocfar

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdi,0

again:

movsi,di

next:

movax,array[di]

addsi,2

cmpsi,16

jaexit

cmpax,array[si]

jbenext

xchgax,array[si]

movarray[di],ax

jmpnext

exit:

adddi,2

cmpdi,16

jbagain

calloutput

movah,4ch

int21h

mainendp

outputprocnear

pushax

pushbx

pushcx

pushdx

movdi,0

s0:

movax,array[bx]

movcx,sp

s1:

movdx,0

movdi,10

divdi

pushdx

cmpax,0

jas1

s2:

popax

addax,30h

movdl,al

movah,02h

int21h

cmpsp,cx

jbs2

addbx,2

movdx,','

movah,02h

int21h

cmpbx,15

jbes0

popdx

popcx

popbx

popax

ret

outputendp

codeends

endstart

4.设有一段英文,其字符变量名为ENG,并以$字符结束。

试编写一程序,统计其中单词的个数,并查出单词SUN在该文中的出现次数,并以格式“SUN:

××××”显示出次数。

stasegmentstack

dw40hdup(?

toplabelword

staends

datareasegment

ENGdb'IALWAYSWATCHTHENBAGAMES.ESPECIALLYISUPPORTFORTHESUNTEAM$'

totaldw?

numdb'SUN:

$'

datareaends

codesegment

assumeds:

datarea,ss:

sta,cs:

code

mainprocfar

movax,sta

movss,ax

leasp,top

movax,datarea

movds,ax

xorbx,bx

xorax,ax

movsi,0

l0:

moval,ENG[si]

cmpal,'$'

jeexit

cmpal,'S'

jnegoback

incsi

moval,ENG[si]

cmpal,'U'

jnegoback

incsi

moval,ENG[si]

cmpal,'N'

jnegoback

incbx

incsi

jmpl0

goback:

incsi

jmpl0

exit:

movtotal,bx

movah,09h

leacx,num

movdx,cx

int21h

movcx,4

movbx,total

l11:

pushcx

movcl,4

rolbx,cl

pushbx

moval,bl

andal,0fh

cmpal,0

jbl10

cmpal,9

jnaright

addal,7

right:

addal,30h

movdl,al

movah,2

int21h

popbx

popcx

loopl11

l10:

movah,4ch

int21h

mainendp

codeends

endmain

三、预习要求

1.掌握单重循环及多重循环的程序设计方法;

2.学会针对不同的问题,选用不同的组织循环的方法;

3.进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。

四、编写完整的程序代码

五、思考题

1.根据实验要求写出运行后正确无误的MASM、LINK和DEBUG命令格式。

 

2.写出程序的数据段、代码段的位置和大小

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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