我正在尝试编写一个在屏幕上打印字符串的引导扇区。我正在使用 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
关于你是最后一个问题,是的。中断 10h 是 BIOS 视频服务。它有很多功能,都由 的值控制AH
。每个人都有不同的论据。