-1

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

如果我更改 ah 中的值,int 10h 会做其他事情吗(例如将文本扫描到 al 中)?

4

1 回答 1

4

为了打印一个字符,你需要输入:

  1. 9英寸AH(写指令)
  2. 中的人物AL
  3. 页码在BH
  4. 中的颜色属性BL(高4位为背景,低4位为前景)
  5. 要写入的字符数CX
  6. 调用 BIOS 中断 10h

所以:

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。每个人都有不同的论据。

于 2013-08-06T20:54:17.803 回答