如何更改或设置8086组件中的背景色?

2 assembly operating-system kernel bootloader x86-16

我正在学习8086汇编。我需要使用8086组件更改屏幕的背景色。我看了一些教程,他们只能设置屏幕的一部分。我不想通过DOS中断来执行此操作,而所有教程都在DOS中断中进行。如果有人向我展示使用BIOS中断设置整个屏幕(背景色)的代码,那将是很好的。

Fif*_*nik 5

您可以使用BIOS功能06h更改所有屏幕的背景色和前景色

MOV AH, 06h    ; Scroll up function
XOR AL, AL     ; Clear entire screen
XOR CX, CX     ; Upper left corner CH=row, CL=column
MOV DX, 184FH  ; lower right corner DH=row, DL=column 
MOV BH, 1Eh    ; YellowOnBlue
INT 10H
Run Code Online (Sandbox Code Playgroud)

这些数字适合80x25的文本视频模式。

Ralf Brown的“中断列表”是IBM PC上有关BIOS和DOS中断的最佳信息来源之一。INT 10h是视频例程的常规BIOS中断。INT 10h例程的完整列表可在此处找到。我使用了BIOS例程INT 10h / AH = 06,其记录为:

视频-向上滚动窗口

AH = 06h
AL = number of lines by which to scroll up (00h = clear entire window)
BH = attribute used to write blank lines at bottom of window
CH,CL = row,column of window's upper left corner
DH,DL = row,column of window's lower right corner

Return:
Nothing
Run Code Online (Sandbox Code Playgroud)