003_使用文本模式在屏幕上打印第一个字符

文章介绍了字符或文本在屏幕上显示的过程,从CPU到显存再到屏幕,重点讲解了内存中0xB8000-0xB7FFF区域用于文本模式显示,每个字符由两字节定义,包括颜色和ASCII码。提供了一个简单的汇编代码示例,展示如何打印字符Z到屏幕的左上角。
摘要由CSDN通过智能技术生成

显示原理

显示字符或者说是文本的程序,是经过cpu–>显存–>屏幕,这样的顺序到达屏幕的,其定义的是屏幕上的每一个像素点,从而达到整体显示的效果

内存分布图

从内存分布图中可以看到,使用文本模式显示,对应的内存空间是0xB8000~0xB7FFF,可以定义的是一个80X25字符的屏幕
image.png

字符显示属性

每一个字符占用两字节的空间定义,第一个字节是定义其颜色,第二个字节是字符的ASCLL码,其颜色定义图也如下所示
image.png
image.png

打印第一个字符

; mbr.asm
org 0x7c00

mov bx,0xb800 

mov es,bx     ;这两行的作用是将段地址寄存器定义为文本模式所对应的内存空间

  

mov ah,0x07     ; 0x07对应的二进制是0000 0111,对应的颜色属性是黑底白字

mov al,'Z'      ; 这是低字节的地址空间,编译时会将Z转换为对应的ASCLL码

mov [es:0],ax   ; 将ax的两个字节装入0xb8000

  

stop:

hlt             ; 表示暂停,将cpu停留在最后的状态

jmp stop

  

times 510-($-$$) db 0

db 0x55,0xaa

编译后运行,可以看见qemu左上角第一个字符是Z
image.png
image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值