8086 汇编 位图

lpgdsxyz 2010-06-16 08:08:24
我最近在用汇编写一个显示位图的程序(16色和256色),
位图文件中, 调色板数据从0036h开始
• 1字节用于蓝色分量
• 1字节用于绿色分量
• 1字节用于红色分量
• 1字节用于填充符(设置为0)

请教一下:
1.怎样使用这些数据?
2.它们与16个调色板寄存器,256个3字节颜色寄存器有什么关系?
...全文
192 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2010-06-19
  • 打赏
  • 举报
回复
例如16色显示模式,屏幕上最多只能同时出现16种颜色,这16种颜色是可以由程序设置的,每种颜色用红、绿、蓝三个分量来表示,保存在调色板寄存器里面。屏幕上每个像素的颜色用索引值(0~15)表示,显卡在刷新屏幕时根据索引值从相应的调色板寄存器中取出具体的颜色,输出相应的信号。在显示位图时,应根据位图中的调色板信息来设置调色板寄存器,将图像数据写入显存。
lpgdsxyz 2010-06-18
  • 打赏
  • 举报
回复
我再查查,谢了
nanlingcg 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lpgdsxyz 的回复:]

3楼:
这个资料是我在网上找的,bmp文件结构就是这样;
我现在就只处理bmp文件而已;
[/Quote]
我说的也是BMP.4.8位位图在36H处出现调色表,如16位等就不是了.
只是提示您下,免得在一定的学习中出现不解!
lpgdsxyz 2010-06-18
  • 打赏
  • 举报
回复
4楼:
能不能详细点,我用的是8086汇编,调色板的设置都是使用中断的;
而这些中断与“16个调色板寄存器,256个3字节颜色寄存器”有关,
我现在就是不明白它们之间的关系;你实在懒得写的话发点资料也行....
lpgdsxyz 2010-06-18
  • 打赏
  • 举报
回复
3楼:
这个资料是我在网上找的,bmp文件结构就是这样;
我现在就只处理bmp文件而已;
lpgdsxyz 2010-06-17
  • 打赏
  • 举报
回复
我不能理解......
我查过位图文件的结构,不论多少色,都在0036h存储调色板数据;

请详解。
cnzdgs 2010-06-17
  • 打赏
  • 举报
回复
我看错你的描述了,16色和256色位图的调色板是在36h处。如果在相应的显示模式下显示,只要按照文件中的信息设置调色板,再把像素数据写入显存即可。
按我的记忆,DOS下设置调色板好像每种颜色只用6位表示,需要把8位分量转换一下,可以简单地右移两位来转换。
nanlingcg 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lpgdsxyz 的回复:]
不论多少色,都在0036h存储调色板数据;
[/Quote]
应该说的是4位图和8位图,其他高位图会有所不一样.
cnzdgs 2010-06-16
  • 打赏
  • 举报
回复
你所描述的位图文件是32位位图,如要在16色或256色模式下显示,应先将其转换为对应颜色的位图。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧