为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易语言BitBlt汇编版源码

三叶资源网 2019-06-19 10:47:00 易语言例程 1893 ℃ 4 评论
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 目标位图, 整数型
.程序集变量 目标位图_hdc, 整数型
.程序集变量 目标位图_句柄, 整数型
.程序集变量 源位图, 整数型
.程序集变量 源位图_hdc, 整数型
.程序集变量 源位图_句柄, 整数型

.子程序 __启动窗口_创建完毕
.局部变量 BITMAPINFO, BITMAPINFO
.局部变量 位图句柄, 整数型
.局部变量 图形, GP图形
.局部变量 图像, GP图像
.局部变量 time, 整数型
.局部变量 位图, GP位图

Gdiplus初始化 ()
目标位图_hdc = CreateCompatibleDC (0)
BITMAPINFO.bmiHeader.biSize = 40
BITMAPINFO.bmiHeader.biBitCount = 32
BITMAPINFO.bmiHeader.biWidth = 1024
BITMAPINFO.bmiHeader.biHeight = 768
BITMAPINFO.bmiHeader.biPlanes = 1
BITMAPINFO.bmiHeader.biCompression = 0
目标位图_句柄 = CreateDIBSection (目标位图_hdc, BITMAPINFO, 0, 目标位图, 0, 0)
SelectObject (目标位图_hdc, 目标位图_句柄)
源位图_hdc = CreateCompatibleDC (0)
BITMAPINFO.bmiHeader.biSize = 40
BITMAPINFO.bmiHeader.biBitCount = 32
BITMAPINFO.bmiHeader.biWidth = 1024
BITMAPINFO.bmiHeader.biHeight = 768
BITMAPINFO.bmiHeader.biPlanes = 1
BITMAPINFO.bmiHeader.biCompression = 0
源位图_句柄 = CreateDIBSection (源位图_hdc, BITMAPINFO, 0, 源位图, 0, 0)
SelectObject (源位图_hdc, 源位图_句柄)
图像.创建自字节集 (#图片1)
图形.创建自DC (源位图_hdc)
图形.画图像缩放 (图像, 0, 0, 1024, 768)
图像.销毁 ()
图形.销毁 ()
time = 取启动时间 ()
.计次循环首 (10000, )
    BitBlt (目标位图_hdc, 0, 0, 1024, 768, 源位图_hdc, 0, 0, #光栅运算_复制)
.计次循环尾 ()
输出调试文本 (取启动时间 () - time)

time = 取启动时间 ()
.计次循环首 (10000, )
    iblit_SSE (目标位图, 4096, 源位图, 4096, 1024, 768, 4, 4096)
.计次循环尾 ()
输出调试文本 (取启动时间 () - time)


.子程序 iblit_SSE, 整数型
.参数 dst, 整数型
.参数 pitch1, 整数型, , 目标图片的宽度*4
.参数 src, 整数型
.参数 pitch2, 整数型, , 源图片的宽度*4
.参数 w, 整数型, , 图片的宽度
.参数 h, 整数型, , 图片的高度
.参数 pixelbyte, 整数型, , 每个像素占用多少字节
.参数 linesize, 整数型

' push ebp
' mov ebp , esp
置入代码 ({ 81, 139, 69, 28, 131, 125, 32, 1, 139, 77, 36, 15, 68, 77, 24, 137, 69, 28, 139, 69, 12, 41, 200, 137, 69, 252, 139, 69, 20, 41, 200, 137, 69, 20, 137, 200, 193, 248, 6, 137, 69, 36, 137, 200, 83, 193, 248, 2, 131, 225, 3, 131, 224, 15, 86, 137, 69, 32, 87, 137, 77, 12, 139, 117, 16, 139, 125, 8, 15, 24, 70, 64, 15, 24, 71, 64, 15, 24, 6, 15, 24, 7, 139, 69, 36, 193, 224, 3, 139, 93, 32, 139, 85, 12, 252, 15, 24, 6, 15, 24, 70, 64, 15, 24, 134, 128, 0, 0, 0, 15, 24, 134, 192, 0, 0, 0, 137, 193, 247, 217, 141, 52, 198, 141, 60, 199, 133, 192, 116, 99, 15, 24, 132, 206, 0, 1, 0, 0, 15, 24, 132, 206, 128, 0, 0, 0, 15, 111, 4, 206, 15, 111, 76, 206, 8, 15, 111, 84, 206, 16, 15, 111, 92, 206, 24, 15, 111, 100, 206, 32, 15, 111, 108, 206, 40, 15, 111, 116, 206, 48, 15, 111, 124, 206, 56, 15, 231, 4, 207, 15, 231, 76, 207, 8, 15, 231, 84, 207, 16, 15, 231, 92, 207, 24, 15, 231, 100, 207, 32, 15, 231, 108, 207, 40, 15, 231, 116, 207, 48, 15, 231, 124, 207, 56, 131, 193, 8, 117, 157, 15, 24, 6, 137, 217, 243, 165, 137, 209, 243, 164, 3, 125, 252, 3, 117, 20, 15, 24, 6, 255, 77, 28, 15, 133, 93, 255, 255, 255, 15, 174, 248, 15, 119, 95, 94, 49, 192, 91, 137, 236, 93, 194, 32, 0 })
返回 (0)
' push ecx
' mov eax , dword [ebp+1Ch]
' cmp dword [ebp+20h] , 00000001h
' mov ecx , dword [ebp+24h]
' cmove ecx , dword [ebp+18h]
' mov dword [ebp+1Ch] , eax
' mov eax , dword [ebp+0Ch]
' sub eax , ecx
' mov dword [ebp-04h] , eax
' mov eax , dword [ebp+14h]
' sub eax , ecx
' mov dword [ebp+14h] , eax
' mov eax , ecx
' sar eax , 00000006h
' mov dword [ebp+24h] , eax
' mov eax , ecx
' push ebx
' sar eax , 00000002h
' and ecx , 00000003h
' and eax , 0000000Fh
' push esi
' mov dword [ebp+20h] , eax
' push edi
' mov dword [ebp+0Ch] , ecx
' mov esi , dword [ebp+10h]
' mov edi , dword [ebp+08h]
' prefetchNTA byte [esi+00000040h]
' prefetchNTA byte [edi+00000040h]
' prefetchNTA byte [esi]
' prefetchNTA byte [edi]
' mov eax , dword [ebp+24h]
' shl eax , 00000003h
' mov ebx , dword [ebp+20h]
' mov edx , dword [ebp+0Ch]
' cld
' c:  prefetchNTA byte [esi]
' prefetchNTA byte [esi+00000040h]
' prefetchNTA byte [esi+00000080h]
' prefetchNTA byte [esi+000000C0h]
' mov ecx , eax
' neg ecx
' lea esi , dword [esi+eax*8]
' lea edi , dword [edi+eax*8]
' test eax , eax
' je a
' b: prefetchNTA byte [esi+ecx*8+00000100h]
' prefetchNTA byte [esi+ecx*8+00000080h]
' movq mm0 , qword [esi+ecx*8]
' movq mm1 , qword [esi+ecx*8+08h]
' movq mm2 , qword [esi+ecx*8+10h]
' movq mm3 , qword [esi+ecx*8+18h]
' movq mm4 , qword [esi+ecx*8+20h]
' movq mm5 , qword [esi+ecx*8+28h]
' movq mm6 , qword [esi+ecx*8+30h]
' movq mm7 , qword [esi+ecx*8+38h]
' movntq qword [edi+ecx*8] , mm0
' movntq qword [edi+ecx*8+08h] , mm1
' movntq qword [edi+ecx*8+10h] , mm2
' movntq qword [edi+ecx*8+18h] , mm3
' movntq qword [edi+ecx*8+20h] , mm4
' movntq qword [edi+ecx*8+28h] , mm5
' movntq qword [edi+ecx*8+30h] , mm6
' movntq qword [edi+ecx*8+38h] , mm7
' add ecx , 00000008h
' jne b
' a: prefetchNTA byte [esi]
' mov ecx , ebx
' rep movsd
' mov ecx , edx
' rep movsb
' add edi , dword [ebp-04h]
' add esi , dword [ebp+14h]
' prefetchNTA byte [esi]
' dec dword [ebp+1Ch]
' jne c
' sfence
' emms
' pop edi
' pop esi
' xor eax , eax
' pop ebx
' mov esp , ebp
' pop ebp
' retn 0020h

@1010795186

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有4位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-08-17 18:23:01]  回复

    bitblt易语言源码

  • 易语言

    易语言  评论于 [2020-08-17 18:58:26]  回复

    bitblt易语言源码

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
指针操作类DX2登录注册机本机QQ登录辅助教程AccessibleObjectFrom快手二维码命令行卸载node文本操作域名转发二维数组adb模块源码解码记牌器Java支持库多线程QQ计数器易语言做网站HTML5布局之路文件搜索标签单据编辑器
最新评论