实验九

  1. 补全程序 t1.asm如下,完成在屏幕上输出内存单元中的十进制两位数。

       这里用到div除法运算,用al存放十位数字,用ah存放个位数字,因为要输出十进制的两位数,则在他们本身数字的基础上加上0的ASCII码值30h即可。最后输出结果为12.

 

2.补全程序 t2.asm,完成在屏幕上输出 data 段定义的 5 个十进制两位数,数据和数据 之间以空格间隔。

      这是仿照实验1写出的,因为这里有5个数字要输出,所以要循环五次。不变的是用al存放商(十位数字),ah存放余数(个位数字)。且每两个数中间用空格,即运用上面的三行代码mov ah,2  mov dl,0  int 21h即可实现。

 

3.编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 'welcome to masm!'。

       这题相比前两题复杂许多,先是确定屏幕中间的第十一行的偏移地址是06e0h,再确定总体框架,因为要输出三行,所以外层循环三次,而每个字符串有16个字节,所以内层循环16次。这里的偶地址(低位)存放字符,奇地址(高位)存放字符的属性(颜色)。确定这些之后再编写代码。

 

总结与感悟:

这次实验是之前所学的总结性实验,用到了很多知识点,主要是应用div除法运算进行十进制的输出,再加上循环来实现。以及对内存偏移地址的分析和运用。虽然本次实验难度增加了不少,但是对编程的能力也为之增强些许。

 

posted @ 2018-12-11 02:36  Sgolden  阅读(119)  评论(1编辑  收藏  举报