编程:在屏幕中间分别显式绿色、绿底红色、白底蓝色的字符串‘welcome to masm!’
思路:
- 首先分别求出绿色、绿地红色、白底蓝色所对应的属性值。分别为
02H
,24H
,71H
。 - 将’welcome to masm!'以及上述三个属性值分别写入内存中的数据段。
- 定位屏幕中间的内存地址,由题知,每一页25行,每行80个字符,160个字节。我们需要将三行内容显示在屏幕中央,故我们要从第12行的中央开始显示,12行中央的地址为:B8000+(11×160+64)=B8720H,我们将B872作为目标段地址。
- 定义一个大循环,循环3次,打印三条语句。其中
es
定位目标段地址,di
定位目标偏移地址,si
定位数据源的偏移地址。 - 定义两个小循环,嵌套在大循环中,第一个小循环负责将字符从数据段拷贝至显存,第二个小循环负责将字符的属性从数据段拷贝至显存。
代码:
assume cs:codesg,ds:datasg,ss: