重庆大学汇编实验报告4.docx

上传人:b****6 文档编号:15388038 上传时间:2023-07-04 格式:DOCX 页数:21 大小:759.67KB
下载 相关 举报
重庆大学汇编实验报告4.docx_第1页
第1页 / 共21页
重庆大学汇编实验报告4.docx_第2页
第2页 / 共21页
重庆大学汇编实验报告4.docx_第3页
第3页 / 共21页
重庆大学汇编实验报告4.docx_第4页
第4页 / 共21页
重庆大学汇编实验报告4.docx_第5页
第5页 / 共21页
重庆大学汇编实验报告4.docx_第6页
第6页 / 共21页
重庆大学汇编实验报告4.docx_第7页
第7页 / 共21页
重庆大学汇编实验报告4.docx_第8页
第8页 / 共21页
重庆大学汇编实验报告4.docx_第9页
第9页 / 共21页
重庆大学汇编实验报告4.docx_第10页
第10页 / 共21页
重庆大学汇编实验报告4.docx_第11页
第11页 / 共21页
重庆大学汇编实验报告4.docx_第12页
第12页 / 共21页
重庆大学汇编实验报告4.docx_第13页
第13页 / 共21页
重庆大学汇编实验报告4.docx_第14页
第14页 / 共21页
重庆大学汇编实验报告4.docx_第15页
第15页 / 共21页
重庆大学汇编实验报告4.docx_第16页
第16页 / 共21页
重庆大学汇编实验报告4.docx_第17页
第17页 / 共21页
重庆大学汇编实验报告4.docx_第18页
第18页 / 共21页
重庆大学汇编实验报告4.docx_第19页
第19页 / 共21页
重庆大学汇编实验报告4.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

重庆大学汇编实验报告4.docx

《重庆大学汇编实验报告4.docx》由会员分享,可在线阅读,更多相关《重庆大学汇编实验报告4.docx(21页珍藏版)》请在冰点文库上搜索。

重庆大学汇编实验报告4.docx

重庆大学汇编实验报告4

《汇编语言程序设计》实验报告

年级、专业、班级

姓名

实验题目

实验4:

汇编程序的子程序的实验

实验时间

2013年5月7日

实验地点

DS1421

实验成绩

实验性质

□验证性设计性综合性

教师评价:

□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;

□实验结果正确;□语法、语义正确;□报告规范;

其他:

评价教师签名:

一、实验目的

通过电话号码的维护和查询程序来联系基本的输入输出操作以及利用子程序来实现结构化的程序设计。

二、实验项目内容

1实现一个电话号码维护和查询的程序

2能够输入名字和电话号码,并能够按照名字显示电话号码

3假定已经存在有5个人的姓名和电话号码,最多可以存放10个人的电话号码,姓名长度为10个字符,电话号码也为10个字符,不足部分用空格代替。

4要求撰写必要程序模块设计图和主要的流程

3、实验过程或算法(源程序)

(如果老师要试运行下面的代码,要保证屏幕上有足够的空白)

assumecs:

code,ds:

iomemory

datasegment

s0db'NO.1','daoxian','$','123456','$'

s1db'NO.2','xiaobo','$','234567','$'

s2db'NO.3','pingcuo','$','345678','$'

s3db'NO.4','jianbi','$','456789','$'

s4db'NO.5','mingzhe','$','567890','$'

s5db'NO.6','','$','','$'

s6db'NO.7','','$','','$'

s7db'NO.8','','$','','$'

s8db'NO.9','','$','','$'

s9db'NO.10','','$','','$'

dataends

iomemorysegment

tabledws0,s1,s2,s3,s4,s5,s6,s7,s8,s9

innamedb10,0,16dup(?

inphonedb10,0,16dup(?

out0db'Whatdoyouwanttodo?

','$'

out1db'1.consult2.built3.alter4.qiut','$'

out2db'Yourinputiswrong.','$'

out3db'Enterthenameofnewlinkman:

','$'

out4db'Enterthephonenumberofnewlinkman:

','$'

out5db'Entertheidentifieryouwantoalter:

','$'

out6db'Enterthenameofthelinkman:

','$'

out7db'Enterthephonenumberofthelinkman:

','$'

out8db'Thephonebookisfull.','$'

out9db'Theidentifierisbeyondthescope.','$'

iomemoryends

codesegment

start:

movbl,5

Again:

callShowMenu

callDeal

jmpAgain

Over:

movax,4c00h

int21h

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

ShowMenu:

pushax

pushds

pushdx

callNextLine

movax,iomemory

movds,ax

movdx,offsetout0

movah,9

int21h

movdx,offsetout1

movah,9

int21h

popdx

popds

popax

ret

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

Deal:

pushax

movah,0ch

moval,1

int21h

cmpal,'1'

jeDeal1

cmpal,'2'

jeDeal2

cmpal,'3'

jeDeal3

cmpal,'4'

jeDeal4

jmpDeal5

Deal1:

callConsult

jmpDealRet

Deal2:

callBuilt

jmpDealRet

Deal3:

callAlter

jmpDealRet

Deal4:

jmpOver

Deal5:

callWrong

jmpDealRet

DealRet:

popax

ret

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

Consult:

pushax

pushbx

pushcx

pushdx

pushds

callNextLine

movax,data

movds,ax

movbh,0

movcx,bx

movbx,0

consultsub:

movdx,bx

movah,9

int21h

addbx,16

movdx,bx

movah,9

int21h

addbx,11

loopconsultsub

popds

popdx

popcx

popbx

popax

ret

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

NextLine:

pushax

pushdx

movah,3

int10h

incdh

movdl,0

movah,2

int10h

popdx

popax

ret

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

Built:

pushax

pushdx

pushds

cmpbl,10

jbbuiltstart

callFull

jmpbuiltend

builtstart:

callNextLine

movax,iomemory

movds,ax

movdx,offsetout3

movah,9

int21h

callInputName

callNextLine

movax,iomemory

movds,ax

movdx,offsetout4

movah,9

int21h

callInputPhone

incbl

builtend:

popds

popdx

popax

ret

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

Full:

pushax

pushdx

pushds

callNextLine

movax,iomemory

movds,ax

movdx,offsetout8

movah,9

int21h

popds

popdx

popax

ret

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

Alter:

pushax

pushbx

pushcx

pushdx

pushds

pushes

pushdi

pushsi

callNextLine

movax,iomemory

movds,ax

movdx,offsetout5

movah,9

int21h

movah,0ch

moval,1

int21h

subal,30h

cmpal,bl

jnaalterstart

callBeyond

jmpalterend

alterstart:

decal

movbl,al

callNextLine

movax,iomemory

movds,ax

movdx,offsetout6

movah,9

int21h

callInputName

callNextLine

movax,iomemory

movds,ax

movdx,offsetout7

movah,9

int21h

callInputPhone

alterend:

popsi

popdi

popes

popds

popdx

popcx

popbx

popax

ret

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

Beyond:

pushdx

pushds

pushax

callNextLine

movax,iomemory

movds,ax

movdx,offsetout9

movah,9

int21h

popax

popds

popdx

ret

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

Wrong:

pushdx

pushds

pushax

callNextLine

movax,iomemory

movds,ax

movdx,offsetout5

movah,9

int21h

popax

popds

popdx

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

InputName:

pushax

pushbx

pushcx

pushdx

pushds

pushes

pushdi

pushsi

movax,iomemory

movds,ax

movdx,offsetinname

movah,0ch

moval,0ah

int21h

subch,ch

movcl,inname+1

adddx,2

pushcx

movax,data

moves,ax

movax,iomemory

movds,ax

movsi,dx

movbh,0

movdi,bx

adddi,di

movdi,table[di]

adddi,5

cld

repmovsb

popax

movcx,10

subcx,ax

inputnamecir:

movbyteptres:

[di],''

incdi

loopinputnamecir

popsi

popdi

popes

popds

popdx

popcx

popbx

popax

ret

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

InputPhone:

pushax

pushbx

pushcx

pushdx

pushds

pushes

pushdi

pushsi

movax,iomemory

movds,ax

movdx,offsetinphone

movah,0ch

moval,0ah

int21h

subch,ch

movcl,inphone+1

adddx,2

pushcx

movax,data

moves,ax

movax,iomemory

movds,ax

movsi,dx

movbh,0

movdi,bx

adddi,di

movdi,table[di]

adddi,16

cld

repmovsb

popax

movcx,10

subcx,ax

inputphonecir:

movbyteptres:

[di],''

incdi

loopinputphonecir

popsi

popdi

popes

popds

popdx

popcx

popbx

popax

ret

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

codeends

endstart

程序流程图:

程序的解释

4、实验结果及分析和(或)源程序调试过程

程序运行结果如上图。

刚开始程序输出菜单,然后我选择执行1号功能,程序输出所有用户资料,然后我选择2号功能新建联系人,根据提示分别输入联系人名“zhong”与“12345”,接着选择3好功能,将2号联系人的名字改为“dabo”,电话改为“987654“,再选择1号功能,可以看出,屏幕上输出原来2号联系人的资料已经改变,而且多了6号联系人,最后选择4号功能退出。

由于还不熟悉汇编语言,程序还没实现怎么滚动屏幕,使得输出语句满屏时不会出错。

通过本程序,我了解了怎么在汇编中实现输入输出,以及利用子程序来实现结构化的程序设计。

 

报告创建时间:

2013年5月7日

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2