南邮微机原理实验报告资料.docx

上传人:b****5 文档编号:26443926 上传时间:2023-06-19 格式:DOCX 页数:15 大小:117.33KB
下载 相关 举报
南邮微机原理实验报告资料.docx_第1页
第1页 / 共15页
南邮微机原理实验报告资料.docx_第2页
第2页 / 共15页
南邮微机原理实验报告资料.docx_第3页
第3页 / 共15页
南邮微机原理实验报告资料.docx_第4页
第4页 / 共15页
南邮微机原理实验报告资料.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

南邮微机原理实验报告资料.docx

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

南邮微机原理实验报告资料.docx

南邮微机原理实验报告资料

《微型计算机原理与接口技术》

上机实验

 

学院:

电子科学与工程

专业:

电磁场与无线技术

姓名:

陈秀慧

课程号:

B0300062S

学号:

B14020604

任课老师:

欧晓鸥

2016年3月21日

 

一、实验目的

熟悉第四章汇编语言程序设计中简化段定义格式,汇编语言循环结构的实现,DOS功能的调用等功能,以及算术运算程序设计中字符串处理程序设计中内容的显示,十六进制ASCII码与各数值的转化,比较搜索等命令。

二、实验任务 

1.在微型计算机上用汇编语言编程完成实验内容所规定的实验;

2.记录源代码和程序调试过程;

3.完成实验报告。

三、主要仪器设备 

硬件:

微型计算机

软件:

未来汇编

四、实验内容

上机题1.显示5行HELLO

源程序:

.486

DATASEGMENTUSE16

MESGDB'HELLO'

DB0,0,0

DATAENDS

CODESEGMENTUSE16

ASSUMECS:

CODE,DS:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVCX,5

LL1:

MOVMESG+5,0DH

MOVMESG+6,0AH

MOVMESG+7,'$'

CALLDISP

MOVMESG+5,0

MOVMESG+6,0

MOVMESG+7,0

LOOPLL1

MOVAH,4CH

INT21H

DISPPROC

MOVAH,9

MOVDX,OFFSETMESG

INT21H

RET

DISPENDP

CODEENDS

ENDBEG

运行结果:

上机题2.询问用户姓名并等待输入,用户输入姓名后按回车键程序再把输入的姓名复制显示在屏幕上

源程序:

.586

DATASEGMENTUSE16

MESGDB'Whatisyourname?

$'

MESG2DB'?

(Y/N)$'

BUFDB30

DB?

DB30DUP(?

DATAENDS

CODESEGMENTUSE16

ASSUMECS:

CODE,DS:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

AGAIN:

MOVAH,9

MOVDX,OFFSETMESG

INT21H

MOVAH,0AH

MOVDX,OFFSETBUF

INT21H

MOVAH,2

MOVDL,0AH

INT21H

MOVBL,BUF+1

MOVBH,0

MOVSI,OFFSETBUF+2

MOVBYTEPTR[BX+SI],'$'

MOVAH,2

MOVDL,0AH

INT21H

MOVAH,9

MOVDX,OFFSETBUF+2

INT21H

MOVAH,9

MOVDX,OFFSETMESG2

INT21H

MOVAH,1

INT21H

CMPAL,'Y'

JNEAGAIN

MOVAH,4CH

INT21H

CODEENDS

ENDBEG

运行结果:

上机题3.从键盘输入的一位十六进制ASCII码→二进制数显示

源程序:

DATASEGMENTUSE16

MESGDB'PleaseEnter!

',0DH,0AH,'$'

DATAENDS

CODESEGMENTUSE16

ASSUMECS:

CODE,DS:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVAH,9

MOVDX,OFFSETMESG

INT21H

MOVAH,1

INT21H

CMPAL,3AH

JCNEXT1

SUBAL,7H

NEXT1:

SUBAL,30H

MOVBL,AL

MOVAH,2

MOVDL,'='

INT21H

CALLDISP

MOVAH,2

MOVDL,'B'

INT21H

EXIT:

MOVAH,4CH

INT21H

DISPPROC

MOVCX,8

LAST:

MOVDL,'0'

RCLBL,1

JNCNEXT2

MOVDL,'1'

NEXT2:

MOVAH,2

INT21H

LOOPLAST

RET

DISPENDP

CODEENDS

ENDBEG

运行结果:

上机题4.字符串比较

比较从键盘输入的字符串STR1,和数据段中定义的字符串STR2是否相等。

若相等,则置FLAG单元为‘Y’,不相等则置为‘N’。

源程序:

.586

DATASEGMENTUSE16

STR1DB30,?

30DUP(?

FLAGDB'N'

DATAENDS

EXTRASEGMENTUSE16

STR2DB'WELCOME'

COUNTEQU$-STR2

EXTRAENDS

CODESEGMENTUSE16

ASSUMECS:

CODE,DS:

DATA,ES:

EXTRA

BEG:

MOVAX,DATA

MOVDS,AX

MOVAX,EXTRA

MOVES,AX

MOVCX,COUNT

MOVAH,0AH

MOVDX,OFFSETSTR1

INT21H

MOVCL,STR1+1

MOVCH,0

CMPCX,COUNT

JNZEXIT

MOVSI,OFFSETSTR1+2

MOVDI,OFFSETSTR2

CLD

LOAD:

REPECMPSB

JNZEXIT

MOVFLAG,'Y'

EXIT:

MOVAH,2

MOVDL,0AH

INT21H

MOVAH,09H

MOVDX,OFFSETFLAG

MOVAH,4CH

INT21H

CODEENDS

ENDBEG

运行结果:

上机题5.数据查找

设从BUF单元开始,存有一字符串,找出其中ASCII码最小和最大的字符,并送屏幕显示。

源程序:

.586

DATASEGMENTUSE16

BUFDB'DLSIEFLIEFAWOKFADL'

COUNTEQU$-BUF

MAXDB'MAX=',?

0DH,0AH

DB'$'

MINDB'MIN=',?

DB'$'

DATAENDS

CODESEGMENTUSE16

ASSUMECS:

CODE,DS:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVAL,BUF

MOVMAX+4,AL

MOVMIN+4,AL

MOVBX,OFFSETBUF+1

MOVCX,COUNT-1

LAST:

MOVAL,[BX]

CMPAL,MAX+4

JNALESS

MOVMAX+4,AL

LESS:

CMPAL,MIN+4

JNCNEXT

MOVMIN+4,AL

NEXT:

INCBX

LOOPLAST

MOVAH,9

MOVDX,OFFSETMAX

INT21H

MOVAH,9

MOVDX,OFFSETMIN

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDBEG

运行结果:

上机题6.字符串中关键字符的搜索

假设从STRING单元开始有一字符串,从键盘输入一个关键字符,查找字符串中是否存在输入的关键字符,将搜索到的关键字符的个数存放在内存NUM单元,并将每一个搜索到的关键字符在字符串中的位置信息存放到POINTER开始的内存单元。

源程序:

.586

DISPMACROVAR

MOVAH,9

MOVDX,OFFSETVAR

INT21H

ENDM

DATASEGMENTUSE16

STRINGDB'BASICFORTRAN_77C++FOXPROJAVA'

LENSEQU$-STRING

POINTERDWLENSDUP(0)

FLAGDB0

MESGYDB0DH,0AH,'------Found!

$'

MESGNDB0DH,0AH,'------NotFound!

$'

DATAENDS

CODESEGMENTUSE16

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAH,1

INT21H

MOVBX,OFFSETPOINTER

MOVDI,OFFSETSTRING

MOVCX,LENS

CLD

AGA:

REPNESCASB

JNZNEXT

MOVFLAG,1

MOVSI,DI

DECSI

MOV[BX],SI

ADDBX,2

JMPAGA

NEXT:

CMPFLAG,1

JZFOUND

NOFOUND:

DISPMESGN

JMPEXIT

FOUND:

DISPMESGY

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDBEG

CODEENDS

ENDBEG

运行结果:

五、实验思考题

字符串比较中显示比较的结果:

FLAGDB'N'

EXIT:

MOVAH,2

MOVDL,0AH

INT21H

MOVAH,09H

MOVDX,OFFSETFLAG

但是发现键入字符串中会多出‘Y’或者‘N’输入正确出Y错误为N,后来发现是FLAG的显示结果与键入字符串连在了一起不方便观察故加入换行符$修改为:

FLAGDB'N$'

显示结果:

六、实验小结

  通过该上机实验,掌握了汇编语言程序设计的基本过程及其各阶段的基本任务,了解其生成过程及其相关的技术对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。

通过把书上例题的程序段在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对那些本来很陌生的言语有了更深的理解,知道和理解了题干要求的指标在计算机中是怎样执行的,对这门课程在实践中的应用有深刻的理解。

七、教师评阅

日期:

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

当前位置:首页 > 工程科技 > 交通运输

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

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