- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
实用文档
北京邮电大学
微机原理与接口技术软件实验
实验二:汇编语言程序设计
院系:信通院信息工程
班级:
姓名:
学号:
指导老师:
二零一三年十一月
实验目的
进行独立编写汇编程序,掌握编写过程
逐步掌握程序设计基本方法:顺序结构、分支结构、循环结构
掌握基本dos命令
实验任务
1、编一程序,在显示器上显示256个ASCII代码,要求显示格式为每行显示16个字符,两个ASCII字符间空一格。
2、试编一个程序,把地址偏移量为100H单元开始的256个单元分别写入00H,01H,02H,03H,。。。,FFH数据。统计写入的数据块中0元素,正元素,负元素的个数,并分别把统计结果送入上述数据块之后的三个单元内。用DOS功能调用显示数据块各单元的内容。
3、编一个程序,把键入的十六进制数转换成十进制数并在屏幕上显示出来。键入的最大数为FFFFH,若键入的不是十六进数字,则显示出错提示。
三、实验内容
1、1)源程序及注释
datasegment;数据段定义
org100h;偏移量100h
bufdb256dup(?);定义256个字节变量
countequ$-buf;将buf的长度赋值给count变量
dataends
codesegment;代码段
assumecs:code,ds:data
start:movax,data
movds,ax
movsi,offsetbuf;设数据块首地址
movcx,count;设数据块长度,为循环次数
xoral,al;数据块第一个数据为0
nexta:mov[si],al
incsi;指针加1
incal;数据加1
loopnexta;循环,循环256次后结束,完成数据输入
movsi,offsetbuf;设数据块首地址,这里开始显示结果
movcx,count;设数据块长度,为循环次数
tab:movbh,16;每行显示16个数据
nextc:movdl,[si];将当前要显示的数据赋给dl
movah,02h;调用dos显示输出命令
int21h
movdl,20h;显示空格,这里实现每输出一个字符空一个
movah,02h
int21h
incsi;指针加1
loopnextd;未处理完,继续循环
jmpstop
nextd:decbh
jnznextc;未满16个,继续显示
movdl,0dh;每行满16个,送回车、换行
movah,02h
int21h
movdl,0ah
movah,02h
int21h
jmptab;继续处理下一行
stop:movah,4ch
int21h
codeends
endstart
2)流程图
2、(1)源程序及注释
datasegment;数据段
org100h;偏移量为100h
bufdb256dup(?);定义256个字节变量
countequ$-buf;buf长度
dataends
stacksegmentstackstack
sapdb256dup(?)
topequlengthsap
stackends
codesegment;代码段
assumecs:code,ds:data,ss:stack
start:movax,data
movds,ax
movax,stack
文档评论(0)