汇编语言-操作显存数据

1.显示原理
A. 屏幕上的内容=显存中的数据

2 8086CPU各地址空间
A. 主存储器地址空间:00000-9FFFF,640K
B. 显存地址空间:A0000-BFFFF,128K,其中B8000H~BFFFFH共32K的空间是80列 * 25行彩色字符模式第 0页的显示缓冲区。
C. 各类ROM地址空间:C0000-FFFFF,256K
D. 显示缓冲区结构:
在这里插入图片描述
F. 用E命令直接修改内存的值示例
解决:十六进制41就是字符A,占低位字节。
02转为二进制就是:0000 0010,1代表G,也就是green,所以显示为黑底绿色。RGB(111)为白色,RGB(000)为黑色。
其它依次类推。

在这里插入图片描述
G. 编程序,在屏幕的中间显示白底蓝字

assume cs:codesg,ds:datasg
datasg segment
  db 'welcome to masm!'
datasg ends
codesg segment
start: 
  ;初始化寄存器
  mov ax,datasg
  mov ds,ax
  mov ax,0B800H  ;显存地址
  mov es,ax
  mov si,0

  ;显示器是80列,每列2字节,共160字节,共25行,160 * 12 正好垂直居中
  ;db 'welcome to masm!'16个字符,每个字符占2个字节(1个用于显示,1个用于属性),共32字节
  ;因为每行是160字节,所以80 - 16正好水平居中
  mov di,160*12+80-16

  ;显示字符串
  mov cx,16  ;循环16次
w:mov al,[si]
  mov es:[di],al ;低位字节放字符
  inc di
  mov al,71H     ;71H转为二进制是01110001,也就是 白底蓝字
  mov es:[di],al ;高位字节放显示属性
  inc si
  inc di
  loop w

  ;程序结束
  mov ax,4c00h
  int 21h

codesg ends
end start

显示效果:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值