我记得使用这些端口来设置 VGA 调色板。您连续输出 3c8 上的颜色编号和 3c9 上的 R、G、B 值,IIRC:
mov al, 1 ; set color index 0's rgb value
mov dx, 3c8h
out dx, al
inc dx ; now 3c9h
mov al, 11h
out dx, al ; set R = 11h
mov al, 22h
out dx, al ; set G = 22h
mov al, 33h
out dx, al ; set B = 33h
Run Code Online (Sandbox Code Playgroud)
因此,每当 VGA 硬件在视频内存中遇到值“1”时,它就会发出一个 RGB 值为 #112233 的像素。
由于颜色索引寄存器是由VGA 芯片自动递增的,因此您也可以使用OUTS指令。要根据内存块更改 VGA 卡的整个调色板,您只需执行以下操作:
xor al, al ; zero al register
mov dx, 3c8h
out dx, al ; start with color zero
inc dx ; dx = 3c9h
lds si, palette ; ds:si points to color palette data
mov cx, 300h ; 3 bytes rgb x 256 colors
rep outsb
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1036 次 |
| 最近记录: |