汇编实验五DOS功能调用.doc

汇编实验五DOS功能调用.doc

ID:57897097

大小:225.00 KB

页数:18页

时间:2020-04-02

汇编实验五DOS功能调用.doc_第1页
汇编实验五DOS功能调用.doc_第2页
汇编实验五DOS功能调用.doc_第3页
汇编实验五DOS功能调用.doc_第4页
汇编实验五DOS功能调用.doc_第5页
资源描述:

《汇编实验五DOS功能调用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、福建农林大学东方学院信息工程类实验报告系:计算机系专业:电子信息工程年级:姓名:廖少兵学号:实验课程:汇编语言实验室号:实验设备号:实验时间:指导教师签字:成绩:实验五功能调用.实验目的和要求1.学会中关于显示功能调用指令的用法。2.领会修改显存方法显示字符。.实验用的软硬件环境实验的硬件环境是:—机及其兼容机实验的软件环境是:操作系统:以上;调试程序:;文本编程程序:、;宏汇编程序:(或);连接装配程序:;交叉引用程序:(可有可无)。.实验内容及实验数据记录1、输入一个字符,显示出来2、输入一个字符串,显示出来3、开始的个的位二进制数用十六进制数的形式显示出来()理解

2、程序()输入程序,汇编,运行(在状态下输入:文件名),观察结果。()如果要分行显示,程序要如何修改?,,:,::,,,:,[],:,,,,,,:,,,,1、运行下列程序,在屏幕的第行,会显示一个字符,理解程序段():的号功能,设置的彩色字符模式,'':[**]1、显示*************************、编写程序,统计字缓冲区中的个数据的正数、负数、的个数,并将统计结果以进制形式显示出来。.操作方法及实验步骤)直接调用号功能即可,环境中命令直接编辑代码写入内存如下指令)字符串的输入和显示,原以为在调用号功能后需要调用号显示功能,因此编辑代码如下?(?)'$

3、':)我们知道要将数以进制的形式显示就必须找到其对应的字母的码,码是数字的开始也就是进制中的,而开始至为个常用符号的码值,从开始才是大写字母的码值,因此将所要转化的四位二进制数与做比较,若小于可直接加得到其对应的码,若大于等于则应多加上跳过个符号码得到其对应的进制码以达到转换的目的即显示时打印其相应的码对应的字符。要达到题目要求的分行显示,从程序的跟踪可以看出在在取数时分为了两个情况,一个通过定位内存单元一次性取得一个位二进制数,另一个是处理数据时循环移位取高四位数。而要使得数据显示时换行只要在完成一个位数据的转换后取下一个位数时进行调用号功能输出换行符码为即便可。所以

4、在源代码的基础上在两次前间添加指令如下)可以看到程序首先通过在内存开辟了附加段,段首地址为并通过:[**]以便于向(位于~彩色字符模式显示缓冲区)执行,''写入字符‘’,以达到直接改变显存内容显示。)分析图案第行打印了列*********第行打印了列*******第行打印了列*****第行打印了列***第行打印了列*因此有两种思路,一是通过调用号功能配合循环逐一打印字符'*',二是借鉴)中的方法直接改变内存内容显示'*'。但两种方法都用到了双重循环,外层循环控制行的打印,内层循环控制列的打印。结合图案分析和循环数与行序号不然找到如下关系:、<列数<*当前行序号而行控制参

5、是外层循环的变动,所以有、当前行序号。这里选择第二种以熟悉并掌握)中的方法首先按和式,就有了偏移地址的计算式:*()*。其中<<*,可通过内层循环实现。因此有最初代码(错误)():;段装入;循环控制次数为;高位清零,'*';初始打印字符:;从列开始显示;行控制参数;控制当前行;保存行参数(:);控制当前列;显存空间定位:[];通过显存显示;列打印自加(:),;检验打印上限;未打印完当前行返回继续打印;打印完一行则换行;行打印循环;退出到界面)分析题目要求有三,首先定义缓冲区存放个有符号数据,其次对于正负数和零的统计可通过两次筛选来完成,最后是进制的转换这在)中已得以解决

6、,因此有部分流程如下这样在进制转换时就有了一个取数的麻烦,为此考虑如果多开辟一个缓冲区来存放三个结果,下一个指针,一来解决了这个问题,二来筛选时通过指针的跳动也同时使得统计结果的代码得以简化,所以就有了如下流程:按分析结合流程编辑代码如下,():():[];负数的个数[];零的个数:[];正数的个数;统计个数:,[];以下为进制的转换并显示注释参考)见附录::.实验数据处理和分析)按最初想法汇编程序得到了下面可怕的结果由此单步跟踪观察,定位到输入的字符串所在查看,如图得知号功能的调用并没出错,所以应该是号的问题单步到号功能调用指令,执行后,发现在确实调用,并显示了字符串

7、但在返回界面却显示先前的一大堆乱码,所以认为是结束字符'$'的关系,于是修改字符缓冲区为如下?(?)'$'结果出现了如下情况,只要输入的字符少于个都会缺失掉前面几个不唯一。至于问题处在哪,琢磨了好一段时也没弄清楚,猜想是号功能的调用是否已自动回显了字符串而立刻调用号功能是不是产生了覆盖。于是注释号功能的调用。结果单一的号功能的调用就已会显了字符串,符合题目要求。)调试,单步跟踪如图程序进行取数操作:不难理解,程序首先通过循环左移位将数据高位(二进制数)移出并补到数据低位,再将内存中一单元的数据(数的低位二进制数)传送至寄存器如上图。数据处

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。