游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1690|回复: 4

24位位图带关键色的复制MMX程序--请教

[复制链接]

4

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2006-10-30 18:09:00 | 显示全部楼层 |阅读模式
我想用mmx汇编写个24为位图的复制程序,不复制关键色。
下面的问题还没想到好点的解决方法。
我每次都是读取4个字节的数据,但是每个点只有3个字节,于是程序类似于这样:
mov esi, SrcBitmap;
mov edi, DestBitmap;

mov eax, [esi];
mov ebx, [edi];
...
add esi, 3;
add edi, 3;

特别是到了最后一个点还得特别处理,先计算2位,再计算1位。谁有更好的处理办法,
期待高人给指点一下。

4

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2006-10-30 19:23:00 | 显示全部楼层

Re: 24位位图带关键色的复制MMX程序--请教

对了 ,还有一个问题,
我怎么保证MOV EAX, [ESI]。是按照 [0] [1] [2] [3]的 顺序
读入到EAX中的呢?

4

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2006-10-31 09:04:00 | 显示全部楼层

Re: 24位位图带关键色的复制MMX程序--请教

高手指点一下啊,自己先顶了。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-10-31 13:27:00 | 显示全部楼层

Re: 24位位图带关键色的复制MMX程序--请教

你这都没用到mmx的寄存器- -;
如果是24位位图的话,用mmx倒是可以实现一次处理三个像素,不过貌似还是得每3个byte写一次运算,效率是一样的- -;建议还是用32位uint,用c++代码自己处理吧。



4

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2006-10-31 17:58:00 | 显示全部楼层

Re: 24位位图带关键色的复制MMX程序--请教

终于有人回了。

   本来想用,发现没必要啊,因为要一个点一个点的处理,如果每次读个byte的话,用汇编也没多大效率了啊。
我一次读32位/64位, 怎么取出其中的点啊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 18:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表