|
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 A, 逻辑型, , "0"
- .局部变量 B, 逻辑型
- ' 易语言中1个逻辑型占4字节,在内存中只有0和1,出现其他值则有问题,使用其他置入代码或内存指针写入程序可能会造成逻辑型变量、数组在内存中的数据出现异常,从而造成赋值,逻辑比较结果出错,最后造成程序出现崩溃等未知BUG,如果你的程序存在问题则使用此模块检查。
- A = { 假, 真, 假, 真 }
- 调试输出 (A, 逻辑型数组_数据是否正确 (A))
- A [1] = 整数型强制到逻辑型 (-1)
- A [2] = 整数型强制到逻辑型 (12345)
- 调试输出 (A, A [1] = A [2], 逻辑型数组_数据是否正确 (A))
- 逻辑型数组_数据修复 (A)
- 调试输出 (A, A [1] = A [2], 逻辑型数组_数据是否正确 (A))
- 调试输出 (逻辑型变量_数据是否正确 (真))
- 调试输出 (逻辑型变量_数据是否正确 (假))
- 调试输出 (逻辑型变量_数据是否正确 (B))
- B = 整数型强制到逻辑型 (-1)
- 调试输出 (B, 逻辑型变量_数据是否正确 (B))
- B = 逻辑型变量_数据修复 (B)
- 调试输出 (B, 逻辑型变量_数据是否正确 (B))
- .子程序 逻辑型数组_数据是否正确, 逻辑型, , 检测一个逻辑型数组在内存中是否存在异常数据,一但存在异常将会造成逻辑比较、赋值出错
- .参数 逻辑型数组, 逻辑型, 数组
- 置入代码 ({ 83, 81, 82, 139, 69, 8, 139, 0, 139, 80, 4, 131, 192, 8, 187, 0, 0, 0, 0, 235, 20, 139, 12, 152, 11, 201, 116, 12, 131, 249, 1, 116, 7, 184, 0, 0, 0, 0, 235, 10, 67, 59, 218, 114, 232, 184, 1, 0, 0, 0, 90, 89, 91, 201, 194, 4, 0 })
- ' push ebx
- ' push ecx
- ' push edx
- ' mov eax,[ebp+8]
- ' mov eax,[eax]
- ' mov edx,[eax+4]
- ' add eax,8
- ' mov ebx,0
- ' .while ebx < edx
- ' mov ecx,[eax+ebx*4]
- ' .if ecx != 0 && ecx !=1
- ' mov eax,0
- ' jmp ASM_END
- ' .endif
- ' inc ebx
- ' .endw
- ' mov eax,1
- ' ASM_END:
- ' pop edx
- ' pop ecx
- ' pop ebx
- ' leave
- ' retn 4
- 返回 (假)
- .子程序 逻辑型数组_数据修复, , , 修复逻辑型数组中的异常数据 (谨慎使用)
- .参数 逻辑型数组, 逻辑型, 参考 数组, 在内存中1为真,其他值为假,必须为数组变量
- 置入代码 ({ 96, 139, 69, 8, 139, 0, 139, 80, 4, 131, 192, 8, 187, 0, 0, 0, 0, 235, 21, 139, 12, 152, 131, 249, 1, 116, 12, 11, 201, 116, 8, 185, 0, 0, 0, 0, 137, 12, 152, 67, 59, 218, 114, 231, 97, 201, 194, 4, 0 })
- ' pusha
- ' mov eax,[ebp+8]
- ' mov eax,[eax]
- ' mov edx,[eax+4]
- ' add eax,8
- ' mov ebx,0
- ' .while ebx < edx
- ' mov ecx,[eax+ebx*4]
- ' .if ecx != 1 && ecx != 0
- ' mov ecx,0
- ' mov [eax+ebx*4],ecx
- ' .endif
- ' inc ebx
- ' .endw
- ' popa
- ' leave
- ' retn 4
- .子程序 整数型强制到逻辑型, 逻辑型, , 使用此程序可将任意整数转换成数据异常的逻辑型
- .参数 变量, 整数型
- 置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' leave
- ' retn 4
- 返回 (假)
- .子程序 逻辑型强制到整数型, 整数型, , 使用此程序可将数据异常逻辑型还原成整数型
- .参数 变量, 逻辑型
- 置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' leave
- ' retn 4
- 返回 (0)
- .子程序 逻辑型变量_数据是否正确, 逻辑型
- .参数 变量, 逻辑型
- 置入代码 ({ 139, 69, 8, 11, 192, 116, 12, 131, 248, 1, 116, 7, 184, 0, 0, 0, 0, 235, 5, 184, 1, 0, 0, 0, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' .if eax != 0 && eax != 1
- ' mov eax,0
- ' .elseif
- ' mov eax,1
- ' .endif
- ' leave
- ' retn 4
- 返回 (假)
- .子程序 逻辑型变量_数据修复, 逻辑型
- .参数 变量, 逻辑型, , 在内存中0为假,其他值为真
- 置入代码 ({ 139, 69, 8, 11, 192, 116, 5, 184, 1, 0, 0, 0, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' .if eax != 0
- ' mov eax,1
- ' .endif
- ' leave
- ' retn 4
- 返回 (假)
复制代码 |
|