我正在尝试编写一个引导扇区,将字符串打印到屏幕上。我正在使用 nasm。我的教程说,当调用 int 10h 时,您已将值 07h 放入 bl 中。这是文本的颜色。我尝试将 bl 的值更改为 08h 但它没有打印任何内容!所以我尝试将其更改为06h,但仍然没有任何结果!是否可以使用 bl 中的值更改颜色?如果是这样,什么值与什么颜色相匹配?
如果我更改 ah 中的值,int 10h 会执行其他操作(例如将文本扫描到 al 中)吗?
为了打印一个字符,您需要输入:
AH
(写入指令)AL
BH
BL
(高4位为背景,低4位为前景)CX
所以:
mov ah, 9 ; Write instruction for int 0x10
mov al, 64 ; A
mov bh, 0 ; Page number
mov bl, 4 ; Red on black (00000100 - High 0000 is black, low 0100 is red)
mov cx, 1 ; Writes one character
int 10h
Run Code Online (Sandbox Code Playgroud)
关于你的最后一个问题,是的。中断10h是BIOS视频服务。它有很多功能,全部由 的值控制AH
。每个人都有不同的论据。