调用int 10h时bl的值

Isa*_*hen -1 x86 assembly

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

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

Mac*_*ade 5

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

  1. 9 in 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
Run Code Online (Sandbox Code Playgroud)

关于你的最后一个问题,是的。中断10h是BIOS视频服务。它有很多功能,全部由 的值控制AH。每个人都有不同的论据。