x86汇编学习

操控显存输出字符串

在8086的内存地址结构中,B8000H~BFFFFH 这部分的内存区域为显存区域,一旦向这个地址空间写入数据cpu会从0号偏移地址开始读取数据然后显示输出,(每写入一次数据就从0开始读取一次)

代码:

start:

    mov ax,0B800H

    mov ds,ax

    mov dl,'a'

    mov ds:[0],dl 

end start

在这块区域中,每个字符固定占用两个字节的空间,也就是ds:[0] 和ds:[1]存放一个字符的信息,前者存放字符具体的内容,后者存放字符对应的颜色

start:

    mov ax,0B800H

    mov ds,ax

    mov dl,'a'

    mov ds:[0],dl 

    mov dl,00000100B    ;让字符以红色显示

    mov ds:[1],dl

end start

字符颜色设置规则

00000000      ;用八个二进制位表示字符属性

从高往低数,第一个二进制位表示是否显示闪烁痕迹

第234个二进制位表示字符背景颜色,分别代表RGB

第5个二进制位表示字符是否高亮

第678个二进制位表示字符本身的颜色,分别代表RGB

由于cpu会从0号偏移地址开始读取数据然后显示输出,因此假如你直接在6号偏移地址写入字符数据,那么前面三个数据会以占位形式存在

start:

    mov ax, 0B800H

    mov ds, ax

    mov di, 'a'

    mov ds: [0], d1

    mov d1,00000111B

    mov ds: [6],d1;输出结果为"      a"

end start

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值