|
本帖最后由 QAQ 于 2019-7-29 10:54 编辑
- .版本 2
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 A, 文本型
- .局部变量 B, 字节集
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- A = “Hello World!中文测试”
- B = 到字节集 (“Hello World!中文测试”)
- 输出调试文本 (文本型与字节集_等于 (A, B))
- A = “1234567890”
- B = 到字节集 (A)
- 输出调试文本 (文本型与字节集_等于 (A, B))
- A = “”
- B = 到字节集 (A)
- 输出调试文本 (文本型与字节集_等于 (A, B))
- A = “111”
- B = { }
- 输出调试文本 (文本型与字节集_等于 (A, B))
- A = “111”
- B = { 111 }
- 输出调试文本 (文本型与字节集_等于 (A, B))
- A = “12345”
- B = 到字节集 (“123456”)
- 输出调试文本 (文本型与字节集_等于 (A, B))
- A = “123456”
- B = 到字节集 (“12345”)
- 输出调试文本 (文本型与字节集_等于 (A, B))
- 输出调试文本 (文本型与字节集_等于 (“”, { }))
- A = “123456”
- B = 到字节集 (“123456”) + { 0 }
- 输出调试文本 (文本型与字节集_等于 (A, B))
- .子程序 文本型与字节集_等于, 逻辑型, 公开, 比较文本型与字节集数据是否一致
- .参数 文本型, 文本型, , 文本型与字节集数据、长度必须一致才返回真,否则返回假。
- .参数 字节集, 字节集, , 即使字节集尾部包含0字符,长度与文本型不一致也返回假。
- 置入代码 ({ 83, 81, 82, 86, 139, 69, 8, 139, 93, 12, 232, 89, 0, 0, 0, 128, 249, 1, 117, 21, 232, 105, 0, 0, 0, 128, 249, 1, 117, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 235, 55, 139, 0, 139, 27, 139, 75, 4, 131, 195, 8, 51, 246, 235, 17, 138, 20, 30, 58, 20, 6, 117, 4, 10, 210, 117, 4, 51, 192, 235, 25, 70, 59, 241, 114, 235, 138, 20, 6, 10, 210, 117, 11, 59, 241, 117, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 94, 90, 89, 91, 201, 194, 8, 0, 83, 139, 27, 11, 219, 117, 4, 177, 1, 235, 13, 139, 91, 4, 11, 219, 117, 4, 177, 1, 235, 2, 50, 201, 91, 195, 80, 139, 0, 11, 192, 117, 4, 177, 1, 235, 12, 138, 0, 10, 192, 117, 4, 177, 1, 235, 2, 50, 201, 88, 195 })
- ' push ebx
- ' push ecx
- ' push edx
- ' push esi
- ' mov eax,[ebp+8]
- ' mov ebx,[ebp+12]
- ' call IS_DATA_NULL_EBX
- ' .if cl == 1
- ' call IS_TEXT_NULL
- ' .if cl == 1
- ' mov eax,1
- ' .elseif
- ' xor eax,eax
- ' .endif
- ' jmp ASM_END
- ' .endif
- ' mov eax,[eax]
- ' mov ebx,[ebx]
- ' mov ecx,[ebx+4]
- ' add ebx,8
- ' xor esi,esi
- ' .while esi < ecx
- ' mov dl,[ebx+esi]
- ' .if dl != [eax+esi] || dl == 0
- ' xor eax,eax
- ' jmp ASM_END
- ' .endif
- ' inc esi
- ' .endw
- ' mov dl,[eax+esi]
- ' .if dl == 0 && esi == ecx
- ' mov eax,1
- ' .elseif
- ' xor eax,eax
- ' .endif
- ' ASM_END:
- ' pop esi
- ' pop edx
- ' pop ecx
- ' pop ebx
- ' leave
- ' retn 8
- ' IS_DATA_NULL_EBX:
- ' push ebx
- ' mov ebx,[ebx]
- ' .if ebx == 0
- ' mov cl,1
- ' jmp IS_DATA_NULL_EBX_END
- ' .endif
- ' mov ebx,[ebx+4]
- ' .if ebx == 0
- ' mov cl,1
- ' jmp IS_DATA_NULL_EBX_END
- ' .endif
- ' xor cl,cl
- ' IS_DATA_NULL_EBX_END:
- ' pop ebx
- ' ret
- ' IS_TEXT_NULL:
- ' push eax
- ' mov eax,[eax]
- ' .if eax == 0
- ' mov cl,1
- ' jmp IS_TEXT_NULL_END
- ' .endif
- ' mov al,[eax]
- ' .if al == 0
- ' mov cl,1
- ' jmp IS_TEXT_NULL_END
- ' .endif
- ' xor cl,cl
- ' IS_TEXT_NULL_END:
- ' pop eax
- ' ret
- 返回 (假)
复制代码 |
|