若余相思 发表于 2017-9-17 18:40:05

实验九

编程:在屏幕中央分别显示绿色的、绿底红色的、白底蓝色的‘welcome to masm!’

首先根据RGB颜色可以得到:绿色为02(02H), 绿底红色为20(14H),白底蓝色为113(71H)

再确定屏幕中央的位置:25*80字符(160字节)的屏幕,中间的三行分别是:12行、13行、14行,一行中央的位置是:160/2-16 = 64
相应的第12、13、14行内存单元的偏移地址地址分别是11 *160 + 64 = 1824(720H),12* 160 + 64 = 1984(7C0H),13* 160 +64 = 2144(860H)

因为编码和属性是紧挨着的,并且都是一个字节,所以我们可以用ax就可以装完编码和属性,程序代码如下:
assume cs: code

data segment

        db 'welcome to masm!'
       
data ends

code segment

start : mov ax, data
                mov ds, ax
               
                mov ax, 0b800H
                mov es, ax
               
                mov bx, 0
                mov si, 0
                mov di, 0
               
                mov cx, 16
        s : mov al,
                mov ah, 2
                mov es:720H, ax
               
                mov ah, 20
                mov es:7c0H, ax

                mov ah, 113
                mov es:860H, ax
                inc bx
                add si, 2
               
                loop s
               
                mov ax, 4c00H
                int 21H
               
code ends
end start
               
               

用点心就能可以做出来哦!
页: [1]
查看完整版本: 实验九