图像处理和矩阵计算源码

图像处理和矩阵计算源码

.版本 2 .程序集 程序集1, , , ' 本源码来自三叶资源网(www.sanye.cx) .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码 _临时子程序 () ' 在初始化代码执行完毕后调用测试代码 返回 (0) ' 可以根据您的需要返回任意数值 .子程序 _临时子程序 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。 .子程序 数值_右移_ASM, 整数型, , 将某整数的数据位右移指定位数,返回移动后的结果。本命令为中级命令。 .参数 欲移动的整数, 整数型 .参数 欲移动的位数, 整数型 置入代码 ({ 139, 69, 8 }) ' 8B45 08 mov eax,dword ptr ss:[ebp+0x8] 置入代码 ({ 139, 77, 12 }) ' 8B4D 0C mov ecx,dword ptr ss:[ebp+0xC] 置入代码 ({ 211, 232 }) ' D3E8 shr eax,cl 置入代码 ({ 201 }) ' C9 leave 置入代码 ({ 194, 8, 0 }) ' C2 0800 retn 0x8 返回 (0) .子程序 GdipRotateAtMatrix, 整数型 .参数 matrix, 整数型 .参数 angle, 小数型 .参数 center_x, 小数型 .参数 center_y, 小数型, , ' 本源码来自三叶资源网(www.sanye.cx) .参数 order, 整数型 .局部变量 返回值, 整数型 .如果 (order = 0) 返回值 = GdipTranslateMatrix (matrix, center_x, center_y, order) 返回值 = GdipRotateMatrix (matrix, angle, order) 返回值 = GdipTranslateMatrix (matrix, -center_x, -center_y, order) .否则 返回值 = GdipTranslateMatrix (matrix, -center_x, -center_y, order) 返回值 = GdipRotateMatrix (matrix, angle, order) 返回值 = GdipTranslateMatrix (matrix, center_x, center_y, order) .如果结束 返回 (返回值) .子程序 数值_位异或_ASM, 整数型, , 如两个数值对应比特位的值不相等,则返回值的对应位就为1,否则为0 .参数 _参数1, 整数型 .参数 _参数2, 整数型 置入代码 ({ 139, 69, 8, 139, 77, 12, 51, 193, 201, 194, 8, 0 }) 返回 (0) .子程序 数组中间值, 整数型 .参数 参数1, 整数型, 数组 最快排序_整数 (参数1, 真) 返回 (参数1 [(取数组成员数 (参数1) + 1) \ 2]) .子程序 数值_位与_ASM, 整数型, , 如两个数值有某共同比特位为1,则返回值的对应位也为1,否则为0。返回计算后的结果。本命令为中级命令。 .参数 位运算数值一, 整数型 .参数 位运算数值二, 整数型 置入代码 ({ 139, 69, 8 }) ' 8B45 08 mov eax,dword ptr ss:[ebp+0x8] 置入代码 ({ 139, 77, 12 }) ' 8B4D 0C mov ecx,dword ptr ss:[ebp+0xC] 置入代码 ({ 33, 200 }) ' 21C8 and eax,ecx 置入代码 ({ 201 }) ' C9 leave 置入代码 ({ 194, 8, 0 }) ' C2 0800 retn 0x8 返回 (0) .子程序 最快排序_整数 .参数 排序的数组, 整数型, 参考 数组 .参数 从小到大排序, 逻辑型, 可空, 默认从小到大 .局部变量 基数, 整数型 .局部变量 i, 整数型 .局部变量 j, 整数型 .局部变量 新基索引, 整数型 .局部变量 栈起始点, 整数型, , "0" .局部变量 栈结束点, 整数型, , "0" .局部变量 栈指针, 整数型 .局部变量 起始点, 整数型 .局部变量 结束点, 整数型 .局部变量 数组总数, 整数型 .局部变量 随机种子, 整数型 数组总数 = 取数组成员数 (排序的数组) .如果真 (数组总数 = 0) 返回 () .如果真结束 从小到大排序 = 选择 (是否为空 (从小到大排序), 真, 从小到大排序) 随机种子 = 31 置随机数种子 (随机种子) 重定义数组 (栈起始点, 假, 数组总数) 重定义数组 (栈结束点, 假, 数组总数) 栈指针 = 1 起始点 = 1 结束点 = 数组总数 栈起始点 [1] = 起始点 栈结束点 [1] = 结束点 .判断循环首 (栈指针 > 0) 起始点 = 栈起始点 [栈指针] 结束点 = 栈结束点 [栈指针] 栈指针 = 栈指针 - 1 .如果真 (起始点 = 结束点) 到循环尾 () .如果真结束 i = 起始点 j = 结束点 变量交换_ASM (排序的数组 [起始点], 排序的数组 [取随机数 (起始点, 结束点)]) 基数 = 排序的数组 [起始点] .判断循环首 (真) .变量循环首 (j, i, -1, j) .判断开始 (从小到大排序 = 真) .如果真 (排序的数组 [j] < 基数) ' 从大到小 > ,从小到大 < 跳出循环 () .如果真结束 .默认 .如果真 (排序的数组 [j] > 基数) ' 从大到小 > ,从小到大 < 跳出循环 () .如果真结束 .判断结束 .变量循环尾 () .如果真 (j ≤ i) ' i 新基索引 = i 跳出循环 () .如果真结束 .变量循环首 (i, j, 1, i) .判断开始 (从小到大排序 = 真) .如果真 (排序的数组 [i] > 基数) ' 从大到小 < ,从小到大 > 跳出循环 () .如果真结束 .默认 .如果真 (排序的数组 [i] < 基数) ' 从大到小 < ,从小到大 > 跳出循环 () .如果真结束 .判断结束 .变量循环尾 () .如果真 (i ≥ j) ' j 新基索引 = j 跳出循环 () .如果真结束 变量交换_ASM (排序的数组 [j], 排序的数组 [i]) .判断循环尾 () 变量交换_ASM (排序的数组 [起始点], 排序的数组 [新基索引]) .如果真 (新基索引 > 起始点) 栈指针 = 栈指针 + 1 栈起始点 [栈指针] = 起始点 栈结束点 [栈指针] = 新基索引 .如果真结束 .如果真 (新基索引 < 结束点 - 1) 栈指针 = 栈指针 + 1 栈起始点 [栈指针] = 新基索引 + 1 栈结束点 [栈指针] = 结束点 .如果真结束 .判断循环尾 () .子程序 变量交换_ASM, , , 以变量和变量的交换方式,来交换两个变量数据,注意两变量要是相同类型的 .参数 变量1, 通用型, 参考, 变量;在某种情况下可以是数据 .参数 变量2, 通用型, 参考, 变量;在某种情况下可以是数据 置入代码 ({ 139, 69, 8, 139, 77, 12, 139, 16, 135, 17, 137, 16 }) .子程序 数组最大值, 整数型 .参数 参数1, 整数型, 数组 最快排序_整数 (参数1, 真) 返回 (参数1 [取数组成员数 (参数1)]) .子程序 数组最小值, 整数型 .参数 参数1, 整数型, 数组 最快排序_整数 (参数1, 真) 返回 (参数1 [1]) .子程序 取颜色值_ASM, 整数型, , RGB颜色 .参数 红色, 整数型 .参数 绿色, 整数型 .参数 蓝色, 整数型 .局部变量 ret, 整数型 置入代码 ({ 139, 69, 8, 139, 93, 12, 139, 77, 16, 193, 225, 16, 193, 227, 8, 11, 216, 11, 203, 137, 77, 252 }) ' mov eax,[ebp+8];R ' mov ebx,[ebp+12];G ' mov ecx,[ebp+16];B ' shl ecx,16 ' shl ebx,8 ' or ebx,eax ' or ecx,ebx ' mov [ebp-4],ecx 返回 (ret) .子程序 GetRGB_ASM .参数 rgb, 整数型 .参数 r, 整数型, 参考 可空 .参数 g, 整数型, 参考 可空 .参数 b, 整数型, 参考 可空 r = 数值_位与_ASM (rgb, 255) g = 数值_位与_ASM (数值_右移_ASM (rgb, 8), 255) b = 数值_位与_ASM (数值_右移_ASM (rgb, 16), 255) .子程序 COM_GUIDtoString2, 文本型, , StringFromGUID2 .参数 clsid, 字节集 .局部变量 str, 字节集 str = 取空白字节集 (78) StringFromGUID2_ (clsid, str, 78) 返回 (Encoder.W2A (str)) .子程序 COM_StringToGUID2, 字节集, , CLSIDFromString .参数 text, 文本型 .局部变量 clsid, 字节集 clsid = 取空白字节集 (16) CLSIDFromString2 (Encoder.A2W (text), clsid) 返回 (clsid) .子程序 ARGB2RGB_ASM, 整数型 .参数 ARGB颜色, 整数型 .参数 透明度, 整数型, 参考 可空 .局部变量 c, 整数型 .局部变量 a, 整数型 c = 0 a = 0 置入代码 ({ 139, 69, 8, 102, 139, 216, 193, 232, 16, 134, 195, 134, 101, 248, 193, 224, 16, 102, 139, 195, 137, 69, 252 }) ' add byte ptr [ebp+08h], al ' mov bx, ax ' shr eax, 10h ' xchg bl, al ' xchg byte ptr [ebp-08h], ah ' shl eax, 10h ' mov ax, bx ' mov dword ptr [ebp-04h], eax .如果真 (是否为空 (透明度) = 假) 透明度 = a .如果真结束 返回 (c) .子程序 RGB2ARGB_ASM, 整数型, , 汇编_RGB2ARGB .参数 color, 整数型 .参数 alpha, 整数型 .局部变量 r, 整数型 置入代码 ({ 139, 69, 8, 139, 93, 8, 139, 77, 8, 139, 85, 12, 193, 232, 16, 37, 255, 0, 0, 0, 193, 235, 8, 129, 227, 255, 0, 0, 0, 129, 225, 255, 0, 0, 0, 193, 226, 24, 193, 225, 16, 193, 227, 8, 11, 216, 11, 203, 11, 209, 137, 85, 252 }) ' mov eax,[ebp+8];R ' mov ebx,[ebp+8];G ' mov ecx,[ebp+8];B ' mov edx,[ebp+12];A ' shr eax,16 ' and eax,255 ' shr ebx,8 ' and ebx,255 ' and ecx,255 ' shl edx,24 ' shl ecx,16 ' shl ebx,8 ' or ebx,eax ' or ecx,ebx ' or edx,ecx ' mov dword ptr [ebp-4],edx 返回 (r)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

图像处理和矩阵计算源码》有0个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注