第5章 编写主引导扇区代码

第五章 编写主引导扇区代码


显存和段寄存器

首先理解显存的概念。显卡工作时,会把显存中的信息显示到屏幕上。CPU在显示信息时,首先把信息写入显存,再在屏幕显示。为了加快处理速度,在内存中设置一块显存空间的映射,将信息直接写入内存,再从内存中读取、显示信息。文本模式显存映射的起始物理地址此时是0xB800.

DS:段寄存器

ES:附加段寄存器

此处先用附加段寄存器ES。Intel处理器不允许直接将立即数送入段寄存器,只能如下操作

​ mov 段寄存器,通用寄存器

​ mov 段寄存器,内存单元

则先进行以下两步

mov ax,0xb800
mov es,ax

字符的编码表示

显卡在任何时候都认为发送的是ASCII码。屏幕上每个字符对应着显存中的两个连续字节,前一个字节表示待显示字符的ASCII码,后一个字节是字符的显示属性,包括字符颜色(前景色)和底色(背景色)。有一张表格揭示了编码表示的显示属性。

如果字符属性0x07,即00000111,则对应于不闪烁,黑色背景色,白色前景色。

mov的使用

mov byte [0x00],'L'

汇编语言支持直接用字符代替对应的ASCII码,比如直接用’L’代替0x4c,就可以打印出字符L

mov支持直接向内存单元写数据,此时:

  • 需指定段寄存器,默认用DS;

  • 需指定数据传输大小,byte、word、dword等

当使用其他段寄存器时,用前缀,如下面的语句

mov byte [es:0x00],'L'

使用了段寄存器es。

``assembly
mov byte [es:0x00],‘L’


使用了段寄存器es。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值