0166-BIOS 中斷
2023-08-14 09:18 作者:jiangbo4444 | 我要投稿
環(huán)境
Time 2022-11-09
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
說明
參考:《x86匯編語言:從實(shí)模式到保護(hù)模式》李忠
參考:http://www.ablmcc.edu.hk/~scy/CIT/8086_bios_and_dos_interrupts.htm
目標(biāo)
使用 BIOS 中斷,來進(jìn)行屏幕的輸出。
BIOS 中斷
BIOS 中斷是 BIOS 啟動(dòng)后,從地址 0x0000 處初始化的一個(gè)中斷向量表。 其中存放的是段地址和偏移地址,每個(gè)終端號(hào)對(duì)應(yīng)四個(gè)字節(jié),一共可以有 256 個(gè)中斷號(hào)。
匯編代碼
字符定義
之前是通過對(duì)單個(gè)字符進(jìn)行定義的,這里直接使用了字符串,用單引號(hào)引起來。
loop 循環(huán)
使用了 CX 寄存器來存儲(chǔ)字符的個(gè)數(shù),使用 loop 進(jìn)行循環(huán)。
中斷
使用的是 0X10 中斷,子功能號(hào)是 0X0E,表示向屏幕輸出,并后移光標(biāo)。 AL 寄存器存儲(chǔ)將要顯示的字符,AL 寄存器填寫子功能號(hào),最后使用 int 10h 進(jìn)行中斷。 該中斷為 BIOS 提供。
總結(jié)
使用 BIOS 的中斷,向屏幕輸出了 hello world。
附錄
標(biāo)簽: