0162-显示 hello world
2023-08-13 22:00 作者:jiangbo4444 | 我要投稿
环境
Time 2022-11-08
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
说明
参考:《x86汇编语言:从实模式到保护模式》李忠
参考:https://wiki.osdev.org/Printing_To_Screen
目标
在屏幕上显示 hello 字符串。
显存
彩色的文本显示内存的地址是 0xB800,只要向这个地址写入字符和颜色,就可以直接显示。 其中使用两个字节来显示一个字,第一个字节对应字符的 ASCII 码,第二个对应具体的颜色。
颜色

汇编代码
在这里,借助了数据段 ds 的地址,不指定数据段的情况下,默认使用 ds 访问。
启动 QEMU
之前是通过 -nographic 启动的,因为现在需要显示,所以需要换个参数:
qemu-system-i386 -s -S -drive format=raw,file=main -curses
效果
可以看到,在最开始的地方,绿色的颜色显示了 hello 字符串。

总结
在屏幕上显示了绿色的 hello 字符串。