鱼C论坛

 找回密码
 立即注册
查看: 2880|回复: 0

[学习笔记] 实验九

[复制链接]
发表于 2017-9-17 18:40:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编程:在屏幕中央分别显示绿色的、绿底红色的、白底蓝色的‘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, [bx]
                mov ah, 2
                mov es:720H[si], ax
                
                mov ah, 20
                mov es:7c0H[si], ax

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

用点心就能可以做出来哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 03:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表