|
- .版本 2
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 红, 整数型
- .局部变量 绿, 整数型
- .局部变量 蓝, 整数型
- .局部变量 颜色, 整数型
- .变量循环首 (0, 255, 1, 红)
- .变量循环首 (0, 255, 1, 绿)
- .变量循环首 (0, 255, 1, 蓝)
- 颜色 = 取颜色值 (红, 绿, 蓝)
- .如果真 (颜色位深度_24位到16位 (颜色) ≠ 颜色位深度_24位到16位_易源码 (颜色))
- 暂停 ()
- .如果真结束
- .变量循环尾 ()
- .变量循环尾 ()
- .变量循环尾 ()
- 输出调试文本 (“完成”)
- .子程序 颜色位深度_24位到16位, 整数型, 公开, 红5位,绿6位,蓝5位 返回值范围:0~65535 失败返回:-1
- .参数 颜色值, 整数型, , 范围:0~16777215
- 置入代码 ({ 83, 81, 82, 139, 69, 8, 61, 255, 255, 255, 0, 118, 7, 184, 255, 255, 255, 255, 235, 39, 138, 216, 138, 252, 193, 200, 16, 138, 200, 192, 235, 3, 192, 239, 2, 192, 233, 3, 15, 182, 201, 15, 182, 199, 15, 182, 219, 193, 224, 5, 193, 227, 11, 11, 200, 11, 203, 139, 193, 90, 89, 91, 201, 194, 4, 0 })
- ' push ebx
- ' push ecx
- ' push edx
- ' mov eax,[ebp+8]
- ' .if eax > 16777215
- ' mov eax,-1
- ' jmp ASM_END
- ' .endif
- ' mov bl,al
- ' mov bh,ah
- ' ror eax,16
- ' mov cl,al
- ' shr bl,3
- ' shr bh,2
- ' shr cl,3
- ' movzx ecx,cl
- ' movzx eax,bh
- ' movzx ebx,bl
- ' shl eax,5
- ' shl ebx,11
- ' or ecx,eax
- ' or ecx,ebx
- ' mov eax,ecx
- ' ASM_END:
- ' pop edx
- ' pop ecx
- ' pop ebx
- ' leave
- ' retn 4
- 返回 (0)
- .子程序 取红色值, 字节型
- .参数 颜色值, 整数型
- 返回 (位与 (颜色值, 255))
- .子程序 取绿色值, 字节型
- .参数 颜色值, 整数型
- 返回 (位与 (右移 (颜色值, 8), 255))
- .子程序 取蓝色值, 字节型
- .参数 颜色值, 整数型
- 返回 (位与 (右移 (颜色值, 16), 255))
- .子程序 颜色位深度_24位到16位_易源码, 整数型
- .参数 颜色值, 整数型
- .如果真 (颜色值 < 0 或 颜色值 > 16777215)
- 返回 (-1)
- .如果真结束
- 返回 (位或 (右移 (取蓝色值 (颜色值), 3), 左移 (右移 (取绿色值 (颜色值), 2), 5), 左移 (右移 (取红色值 (颜色值), 3), 11)))
复制代码 |
|