Assembly 使用int 0x10和ax=0x07在16位实模式程序集中更改文本颜色/颜色

Assembly 使用int 0x10和ax=0x07在16位实模式程序集中更改文本颜色/颜色,assembly,operating-system,bios,16-bit,real-mode,Assembly,Operating System,Bios,16 Bit,Real Mode,我注意到在0x07中使用0x07(滚动/清除屏幕)功能时,屏幕颜色有一个属性(在bh中)。我注意到help color列出了所有这些颜色,因此我将原来的0x07(黑上白)更改为0x0a(黑上绿),但它没有像我预期的那样工作,屏幕保持黑上白。我有一种感觉,我需要改变显示模式,但我不确定如何做到这一点 clearScreen: pusha mov ax, 0x07 ; function to scroll window mov bh, 0x0a ; Does n

我注意到在0x07中使用0x07(滚动/清除屏幕)功能时,屏幕颜色有一个属性(在bh中)。我注意到
help color
列出了所有这些颜色,因此我将原来的0x07(黑上白)更改为0x0a(黑上绿),但它没有像我预期的那样工作,屏幕保持黑上白。我有一种感觉,我需要改变显示模式,但我不确定如何做到这一点

clearScreen:
    pusha

    mov ax, 0x07    ; function to scroll window
    mov bh, 0x0a    ; Does not work
    mov cx, 0x0000  ; row = 0, column = 0
    mov dx, 0x184f  ; row = 24 (0x18), column = 79 (0x4f)
    int 0x10        ; call the BIOS interrupt

    popa
    ret

谢谢。

mov ax,0x07
应该是
mov ax,0x0700
,因为函数号属于
AH
,而行数属于
AL
。还请注意,屏幕当然会保持黑色,因为黑色上有绿色的空间仍然是黑色的。不过,光标将变为绿色。你可以试着用黑色加绿色来达到某种效果,例如:mov-bh,0xa0