实验报告1.docx
- 文档编号:13577807
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:14
- 大小:460.39KB
实验报告1.docx
《实验报告1.docx》由会员分享,可在线阅读,更多相关《实验报告1.docx(14页珍藏版)》请在冰点文库上搜索。
实验报告1
学院
专业班级
姓 名
学 号
2011年11月
实验1
调试过程及运行情况:
该汇编程序代码已由实验书给出,本次实验旨在让学生熟悉软件的操作和基本的编译运行情况,故编译调试过程简单,不在此赘述。
实验2
本实验程序亦给出,较为简单,同实验一的过程一致。
实验3-1
实验要求:
本实验要求将缓冲区中的一个五位十进制数00012的ASCII码转换成二进制数,并将转换结果按位显示在屏幕上。
实验调试过程:
在刚开始时直接将ASCII码的值以字节形式赋给变量,需要经过手工计算,比较麻烦。
后来经过思考,改用字符串形式时存储形式就是字符对应的ASCII码,直接在00012上加单引号即可。
可以实现转化自动化。
实现字符十进制变换为二进制时应该注意存储的是十进制的ASCII码值,也即是共有五个字节。
只有了解了存储形式才能正确进行转化,利用实验指导书里给出的公式就可以做到这一点,这点相对来说比较简单。
在调试时刚开始只是简单地认为输出其值的大小就可以了,后来想到如果不是显示的二进制字符,结果就没有意义,在实现时可以利用移位的特点,通过检测进位标志位来决定输出的结果0或1,在利用转化成字符串进行输出,为了能够正确地进行输出,字符串的结尾还应该以$结束,方便程序检查断点,便于输出。
这就是这种要求输出结果类题目的一半解题思路,以后的同类编程题目的转化也是这样,就不在赘述。
总的来说,只要掌握了思路,编程是比较简单的,并且对各项操作对结果的影响能进行动态分析,修改的几率是比较小的。
实验3-2
实验要求:
本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为BCD码后,并将转换结果按位分别显示于屏幕上。
若输入的不是十进制数的ASCII码,则输出“FF”。
调试过程:
本次的实验思路和上个实验基本相同,不过多一个输入操作、转化成BCD码时稍微有点区别,需要进行按位与操作,然后再存储在数据区中,其余的操作和程序设计和上个实验相同。
调试过程简单,本实验没有出错。
输入五位数54321时的实验结果如下图所示:
输入五位数46578时的实验结果如下图所示:
输入56R34时的结果如下:
实验3-3
实验要求:
本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转换结果显示在屏幕上。
调试过程:
本次实验是直接进行存储的,相对来说较为简单,其余的相同的思路就不在多说,本实验耗费了较长时间,原因是除法溢出,开始时检查程序编译完全正确,只是逻辑错误,后来进过思考,一步一步地进行推理演练,最终发现是因为每次除法时寄存器DX中的值已经改变,不再是全0的形式,所以做除法是会溢出的,但是在循环中又会用到它,所以每次循环都应该进行清0操作,而在循环中可以利用其余的存储单元暂存,以便在下一次循环中会用到。
程序操作的顺序需要注意,这一点在这个程序中显得尤为重要。
其余的地方都比较简单,这个程序给我的收获也是比较大的。
这一点在今后的寄存器应用中会经常注意的。
实验结果如下图所示:
实验3-4
实验要求:
本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。
调试过程:
首先时存储的问题,非压缩型BCD码最好是采用字节形式进行每个字符的单独存放,然后是转化成数据的问题,利用公式这一步相对来说也是比较简单的,剩下的就是转化成ASCII码进行输出的问题了,这已经在前面有过详述,本实验的调试过程较为顺利,并未发生什么问题。
如下图是4个二位BCD码12,43,56,87的实验结果:
实验4-1
实验要求:
本实验要求计算X+Y=Z,将结果Z输出到屏幕,其中X=001565A0H,Y=0021B79EH。
调试过程:
本实验应该注意,8086一次最多支持两个字节的加法,应用32位加法时应该用到存储器辅助进行相应的运算,所以进位至关重要,为此,在试验中应该保护上一时刻的进位标志不会被破坏从而能为下一次循环利用,所以会用到堆栈保护。
其余的转化思想与之前的基本一致。
实验4-2
实验要求:
本实验要求计算X-Y=Z,其中,X、Y、Z为BCD码,其中X=0400H,Y=0102H。
调试过程:
本实验的思路与上个实验相仿,不过每次的循环中都应该进行减法的调整,这时就应该注意进位的保护了。
本实验中用到的是两位非压缩型的BCD码,故应进行两次的循环。
其余的较为简单。
调试过程较为顺利,无错误出现。
实验4-3
实验要求:
本实验要求实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,被乘数为54320H,乘数为3H,运算结束后,将乘积在屏幕上显示。
调试过程:
乘数只有一位十进制数相对来说比较简单,可以利用循环的思想进行分别相乘并调整。
同理也应该注意进位(此处应该注意是十进制的进位)的保护,但是AH在每次乘法运算时都会改变(实际上变为恒值0,进位丢失),故还需要进行转存。
实验4-4
实验要求:
本实验要求利用减奇法计算0040H的开平方值,并将运算结果显示在屏幕上。
调试过程:
本实验思路较为简单,就是在条件检测时应该注意在等于0和小与0时跳出循环,故应设置两条条件检测语句,调试过程无误。
实验5
实验要求:
本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。
(数据:
0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H;)
调试过程:
和之前的问题一样,第一次运行时也出现了结果不正确的现象,吸取之前的经验教训,本次错误改正较快,并不是很麻烦。
为了实现一个字节的输出,应该每4位作为一个整体,为程序的代码简单,可以利用程序的嵌套调用,但在调用时应该注意返回以及断点和堆栈的保护。
实验6
实验要求:
要求实验程序在数据区中存放一组数据,统计负数的个数。
(数据:
12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H)
调试过程:
本实验的设计过程较为简单,就是将数据的最高位检测出来是否为1,利用字符串比较可以做到这一点,该程序较为简单,调试过程中并未出现错误。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告