鱼C论坛

 找回密码
 立即注册
查看: 2329|回复: 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就可以装完编码和属性,程序代码如下:
  1. assume cs: code

  2. data segment

  3.         db 'welcome to masm!'
  4.        
  5. data ends

  6. code segment

  7. start : mov ax, data
  8.                 mov ds, ax
  9.                
  10.                 mov ax, 0b800H
  11.                 mov es, ax
  12.                
  13.                 mov bx, 0
  14.                 mov si, 0
  15.                 mov di, 0
  16.                
  17.                 mov cx, 16
  18.         s : mov al, [bx]
  19.                 mov ah, 2
  20.                 mov es:720H[si], ax
  21.                
  22.                 mov ah, 20
  23.                 mov es:7c0H[si], ax

  24.                 mov ah, 113
  25.                 mov es:860H[si], ax
  26.                 inc bx
  27.                 add si, 2
  28.                
  29.                 loop s
  30.                
  31.                 mov ax, 4c00H
  32.                 int 21H
  33.                
  34. code ends
  35. end start
  36.                
  37.                
复制代码


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 21:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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