欢迎来到天天文库
浏览记录
ID:1246734
大小:80.00 KB
页数:5页
时间:2017-11-09
《1303-肖翰-3901130814实验四》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《汇编程序设计》实验报告项目名称实验四专业班级1303班学号3901130814姓名肖翰实验成绩:批阅教师:年月日5实验4实验学时:2实验地点:二综实验日期:一、实验目的掌握汇编编程规范,熟悉编程环境。二、实验内容编程计算3550H-2320H,按16进制输出计算所得的差1230H。再输出3550H-2321H的差,检验程序的正确性。提示:考虑依次将1230H(即0001001000110000B)从高位到低位,每4位二进制数一组分离出来,再将4位二进制数转换为ASCII码,利用DOS系统功能调用的2号子功能输出,就得到16进制数据的输出效果。本题要求综合应用移位操作
2、、逻辑操作等指令,并利用条件转移指令实现简单的循环程序,程序流程如图1所示。DOS系统功能调用的2号子功能格式见dos调用表。开始减法计算bx`二进制数(差)ch`循环次数4(bx)循环左移4位(用rol指令)dl`分离出(bx)的最低4位(用and指令)dl`将(dl)转换为ASCII码输出dl中的数字字符(利用2号DOS系统功能调用)ch`(ch)-1否(ch)=0?是结束图116进制数据输出程序流程图5三、实验步骤算法及关键代码codesegmentassumecs:codestart:movax,2320hmovbx,3550hsubbx,ax;要将bx中的值
3、保护起来,方便存取movdi,bxmovcx,4movsi,1111000000000000Bzhang:movax,cxmovdx,4subdx,cxadddx,dxadddx,dxmovcx,dxshlbx,clmovcx,axandbx,sicmpbh,01010000Bjaabovejmpnotaboveabove:movbl,bh5movax,cxmovcx,4shlbx,clmovcx,axaddbh,55;将这个值打印出来callprintjmpactuallynotabove:movbl,bhmovax,cxmovcx,4shlbx,clmovcx,a
4、xaddbh,48;将这个值打印出来callprintactually:movbx,diloopzhangmovah,4chint21hprint:movdl,bhmovah,2int21hretcodeendsendstart四、实验小结(简单说明实验过程中出现的问题和解决方法)5这个实验相对来说比较的不顺利,开始还以为是将程序每一步都以二进制的形式输出,最后是成功了,但是发现是不符合题意的。后来就是cx寄存器的问题处理不好。最终是将他们按照一定的格式,写在一个块中,一定的保证在块内cx的值是不会改变的。最后就是ASCII码的问题,将它保存并处理好,就可以很好的将结
5、果输出了。5
此文档下载收益归作者所有