欢迎来到天天文库
浏览记录
ID:1245438
大小:48.50 KB
页数:4页
时间:2017-11-09
《实验一 数据转换实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一数据转换实验一、实验目的和要求1、学习在星研集成环境软件下建立、汇编、链接和运行(调试)8086汇编语言源程序的过程;2、通过对验证性实验的阅读、调试,掌握8086指令系统中常用指令的功能、用法和注意事项;3、在对验证性实验理解与掌握的基础上,结合课堂讲授的有关简单程序、分支程序、循环程序、查表程序和子程序结构的各种设计方法,完成拓展实验项目的程序设计,达到培养学生自主学习、开拓创新能力培养之目的。二、实验软件星研集成环境软件。三、实验内容验证性实验十六进制数转换成ASCII码程序1、程序清单如下:CODESEGMENTASSUMECS:CODESTAR
2、T:MOVCX,0004HMOVDI,3500HMOVDX,[DI]A1:MOVAX,DXANDAX,000FHCMPAL,0AHJBA2ADDAL,07HA2:ADDAL,30HMOV[DI+0AH],ALINCDIPUSHCXMOVCL,04HSHRDX,CLPOPCXLOOPA1MOVAH,4CHINT21HCODEENDSENDSTART开始2、程序流程图如下:设定循环次数取要处理数地址到DIDX送AX[DI]送DX弹出CXAX取低位转变成ASCIIAL+30HDX右移4位将AL存入DI+0AH单元并自加DICX压栈AL>9?NY要输出字母AL+7CX
3、=0?N结束Y1、实现功能:将35003501里的两个十六进制数转变成ASCII码存了350A350B350C350D拓展性实验课题:十进制数的ASCII码转换为BCD码程序设计具体要求:设有5个数的ASCII码分别存放在数据段2000H开始的内存单元中,编程将其转换为对应的BCD码,并按位分别存入数据段3000H开始的内存单元中。若不是十进制数的ASCII码,则对应的存放单元内容为“FF”。完成相应程序的流程图、汇编语言程序设计,进行调试并验证结果。程序清单如下:stacksegmentstack'stack'dW8dup(?)stackendsdatseg
4、mentorg2000hascdb30h,21h,32h,33h,44hcountequ$-ascorg3000h-$resultdbcountdup(?)datendscodesegmentassumeDS:dat,CS:code,SS:stacks1:movax,datmovds,axmovcx,count-1movsi,offsetascmovdi,offsetresultcldc1:lodsbcmpal,30hjldo1;小于0cmpal,3ahjnledo1;大于9subal,30hmov[di],alincdiloopc1do1:mov[di],0
5、ffh;传FFH到3000hincdideccxjmpc1codeendsendc1实验小结:感觉星研这个环境很不好用,这样那样的问题总会出现。小公司就是小公司做不出好东西来。调试过程中对一些指令有了进一步的了解,知道了一个汇编程序开始部分断定义的具体意义。然后可以整合一下学到的东西做一下拓展实验。无它了。
此文档下载收益归作者所有