Assembly 调用int 10h时bl的值

Assembly 调用int 10h时bl的值,assembly,x86,Assembly,X86,我试图编写一个引导扇区,将字符串打印到屏幕上。我正在使用nasm。我的教程说,当调用int 10h时,您已经将值07h放入bl。这是文本的颜色。我尝试将bl的值更改为08h,但它没有打印任何内容!所以我试着把它改成06h,但还是一无所获!是否可以使用bl中的值更改颜色? 如果是,什么值与什么颜色匹配 如果我更改ah int 10h中的值,则需要执行其他操作,例如将文本扫描为al?为了打印字符,您需要输入: 9英寸AH写入指令 艾尔的性格 BH中的页码 BL中的颜色属性高4位为背景,低4位为前景

我试图编写一个引导扇区,将字符串打印到屏幕上。我正在使用nasm。我的教程说,当调用int 10h时,您已经将值07h放入bl。这是文本的颜色。我尝试将bl的值更改为08h,但它没有打印任何内容!所以我试着把它改成06h,但还是一无所获!是否可以使用bl中的值更改颜色? 如果是,什么值与什么颜色匹配


如果我更改ah int 10h中的值,则需要执行其他操作,例如将文本扫描为al?

为了打印字符,您需要输入:

9英寸AH写入指令 艾尔的性格 BH中的页码 BL中的颜色属性高4位为背景,低4位为前景 要在CX中写入的字符数 调用BIOS中断10h 因此:


关于你的最后一个问题,是的。中断10h是BIOS视频服务。它有,都是由价值啊控制的。每一个都有不同的论点。

我尝试了你所说的,它打印了一个,但黑底是白底,黑底不是红底。你在哪个硬件/VM上测试这个?我只是注意到我做错了什么。我的教程说把0Eh放进啊。现在我像你说的那样试了9次,效果很好。。。我想知道为什么.0Eh是一个不同的BIOS视频服务功能。请参阅我答案中的链接。它还在当前光标位置写入字符,但使用当前属性。颜色属性没有参数0Eh。如果要在打印字符时更改颜色属性,则需要使用09h。
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