分辨率640X480 16色 ___算一个题目

来源:百度知道 编辑:UC知道 时间:2024/05/14 16:36:52
C语言图形编程(tc):VGA(12H)下,分辨率640X480 16色,四个位面基地址为A000H,计算屏幕上任意一点p(x,y)在VRAM中的字节位置和字内位置~~~~~~

有两个问题;
1,分辨率640X480 16色 是啥意思啊
2,位面是啥意思啊

1、显示模式为 VGA/EGA共享的 12h 模式(640 x 480 x16 色)
四个位面基地址为A000H的意思是:显存地址为0A0000h~0AFFFFH
说明:在12h 模式(640 x 480 x16 色)下 4个64k并行位面相对应的每一位组成的4位二进制数 分别表示 16种不同颜色,即4位组成一个像素点颜色 显存里共有64k个像素(640x480)而复位置位寄存器(颜色寄存器)的4~7 无定义, 0~3位分别对应0~3位面相应的一位 所以通过填充颜色寄存器就可以设置一个待写像素的颜色

2、计算屏幕上任意一点p(x,y)在VRAM中的字节位置和字内位置
坐标点在显存中字节的偏移地址与位掩码(x:屏幕x坐标(0~639),y:屏幕y坐标(0~479),对应:显存中字节的实际地址,和位掩码地址)
;字节位置的计算公式:字节位置=y*80+x/8
;位掩码计算公式=shr 80H,(x mod 8) mod为求余数 ,shr 为逻辑右移