|
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 Array, 整数型, , "0"
- .局部变量 min, 整数型
- .局部变量 max, 整数型
- .局部变量 min2, 整数型
- .局部变量 max2, 整数型
- .局部变量 计数, 整数型
- .局部变量 字节集, 字节集
- .局部变量 计数2, 整数型
- .局部变量 成员数, 整数型
- 置随机数种子 ()
- .判断循环首 (真)
- 重定义数组 (Array, 假, 取随机数 (1, 1000))
- 字节集 = 取空白字节集 (4)
- 成员数 = 取数组成员数 (Array)
- .计次循环首 (成员数, 计数)
- .计次循环首 (4, 计数2)
- 字节集 [计数2] = 取随机数 (, )
- .计次循环尾 ()
- Array [计数] = 取字节集数据 (字节集, #整数型, )
- .计次循环尾 ()
- 检查 (置入代码_整数型数组_取最小值与最大值 (Array, min, max))
- 检查 (易源码_整数型数组_取最小值与最大值 (Array, min2, max2))
- .如果真 (min ≠ min2 或 max ≠ max2)
- 暂停 ()
- .如果真结束
- .如果真 (取随机数 (0, 100) = 0)
- 调试输出 (成员数, min, max)
- .如果真结束
- .判断循环尾 ()
- .子程序 置入代码_整数型数组_取最小值与最大值, 逻辑型, 公开
- .参数 数组, 整数型, 数组
- .参数 最小值, 整数型, 参考
- .参数 最大值, 整数型, 参考
- 置入代码 ({ 83, 81, 82, 86, 82, 139, 69, 8, 185, 255, 255, 255, 127, 139, 117, 12, 137, 14, 185, 0, 0, 0, 128, 139, 125, 16, 137, 15, 11, 192, 116, 8, 11, 246, 116, 4, 11, 255, 117, 4, 51, 192, 235, 93, 139, 0, 11, 192, 117, 2, 235, 85, 139, 88, 4, 131, 192, 8, 11, 219, 117, 6, 51, 192, 235, 71, 235, 18, 131, 251, 1, 117, 13, 139, 24, 137, 30, 137, 31, 184, 1, 0, 0, 0, 235, 51, 51, 201, 235, 38, 139, 20, 136, 59, 22, 125, 4, 137, 22, 235, 6, 59, 23, 126, 2, 137, 23, 186, 0, 0, 0, 128, 57, 22, 117, 11, 186, 255, 255, 255, 127, 57, 23, 117, 2, 235, 5, 65, 59, 203, 114, 214, 184, 1, 0, 0, 0, 95, 94, 90, 89, 91, 201, 194, 12, 0 })
- ' push ebx
- ' push ecx
- ' push edx
- ' push esi
- ' push edx
- ' mov eax,[ebp+8]
- ' mov ecx,2147483647
- ' mov esi,[ebp+12]
- ' mov [esi],ecx
- ' mov ecx,-2147483648
- ' mov edi,[ebp+16]
- ' mov [edi],ecx
- ' .if !eax || !esi || !edi
- ' xor eax,eax
- ' jmp ASM_END
- ' .endif
- ' mov eax,[eax]
- ' .if !eax
- ' jmp ASM_END
- ' .endif
- ' mov ebx,[eax+4]
- ' add eax,8
- ' .if !ebx
- ' xor eax,eax
- ' jmp ASM_END
- ' .elseif ebx == 1
- ' mov ebx,[eax]
- ' mov [esi],ebx
- ' mov [edi],ebx
- ' mov eax,1
- ' jmp ASM_END
- ' .endif
- ' xor ecx,ecx
- ' .while ecx < ebx
- ' mov edx,[eax+ecx*4]
- ' .if sdword ptr edx < [esi]
- ' mov [esi],edx
- ' .elseif sdword ptr edx > [edi]
- ' mov [edi],edx
- ' .endif
- ' mov edx,-2147483648
- ' .if [esi] == edx
- ' mov edx,2147483647
- ' .if [edi] == edx
- ' .break
- ' .endif
- ' .endif
- ' inc ecx
- ' .endw
- ' mov eax,1
- ' ASM_END:
- ' pop edi
- ' pop esi
- ' pop edx
- ' pop ecx
- ' pop ebx
- ' leave
- ' retn 12
- 返回 (假)
- .子程序 易源码_整数型数组_取最小值与最大值, 逻辑型
- .参数 数组, 整数型, 数组
- .参数 最小值, 整数型, 参考
- .参数 最大值, 整数型, 参考
- .局部变量 成员数, 整数型
- .局部变量 计数, 整数型
- 成员数 = 取数组成员数 (数组)
- .判断开始 (成员数 = 0)
- 返回 (假)
- .判断 (成员数 = 1)
- 最小值 = 数组 [1]
- 最大值 = 数组 [1]
- 返回 (真)
- .默认
- .判断结束
- 最小值 = 2147483647
- 最大值 = -2147483648
- .计次循环首 (成员数, 计数)
- .判断开始 (数组 [计数] < 最小值)
- 最小值 = 数组 [计数]
- .判断 (数组 [计数] > 最大值)
- 最大值 = 数组 [计数]
- .默认
- .判断结束
- .如果真 (最小值 = -2147483648 且 最大值 = 2147483647)
- 跳出循环 ()
- .如果真结束
- .计次循环尾 ()
- 返回 (真)
复制代码 |
|