0162-顯示 hello world
2023-08-13 22:00 作者:jiangbo4444 | 我要投稿
環(huán)境
Time 2022-11-08
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
說(shuō)明
參考:《x86匯編語(yǔ)言:從實(shí)模式到保護(hù)模式》李忠
參考:https://wiki.osdev.org/Printing_To_Screen
目標(biāo)
在屏幕上顯示 hello 字符串。
顯存
彩色的文本顯示內(nèi)存的地址是 0xB800,只要向這個(gè)地址寫(xiě)入字符和顏色,就可以直接顯示。 其中使用兩個(gè)字節(jié)來(lái)顯示一個(gè)字,第一個(gè)字節(jié)對(duì)應(yīng)字符的 ASCII 碼,第二個(gè)對(duì)應(yīng)具體的顏色。
顏色

匯編代碼
在這里,借助了數(shù)據(jù)段 ds 的地址,不指定數(shù)據(jù)段的情況下,默認(rèn)使用 ds 訪問(wèn)。
啟動(dòng) QEMU
之前是通過(guò) -nographic 啟動(dòng)的,因?yàn)楝F(xiàn)在需要顯示,所以需要換個(gè)參數(shù):
qemu-system-i386 -s -S -drive format=raw,file=main -curses
效果
可以看到,在最開(kāi)始的地方,綠色的顏色顯示了 hello 字符串。

總結(jié)
在屏幕上顯示了綠色的 hello 字符串。
附錄
標(biāo)簽: