|
发表于 2019-10-12 20:00:00
|阅读模式
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 整数型数组, 整数型, , "0"
- 整数型数组 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
- 整数型数组_位与_常数 (整数型数组, 3)
- 调试输出 (整数型数组)
- 整数型数组 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
- 整数型数组_位或_常数 (整数型数组, 128)
- 调试输出 (整数型数组)
- 整数型数组 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
- 整数型数组_位异或_常数 (整数型数组, 1)
- 调试输出 (整数型数组)
- .子程序 整数型数组_位与_常数, , 公开, 数组所有成员与一个整数位运算,结果送回数组
- .参数 位运算数组, 整数型, 参考 数组, 位运算结果将通过数组变量传出
- .参数 位运算常数, 整数型, , 数组所有成员与该值参与位运算
- 置入代码 ({ 80, 81, 86, 87, 139, 69, 12, 131, 248, 255, 117, 2, 235, 35, 139, 117, 8, 11, 246, 117, 2, 235, 26, 139, 54, 11, 246, 117, 2, 235, 18, 139, 126, 4, 131, 198, 8, 51, 201, 235, 4, 33, 4, 142, 65, 59, 207, 114, 248, 95, 94, 89, 88 })
- ' push eax
- ' push ecx
- ' push esi
- ' push edi
- ' mov eax,[ebp+12]
- ' .if eax == -1
- ' jmp ASM_END
- ' .endif
- ' mov esi,[ebp+8]
- ' .if esi == 0
- ' jmp ASM_END
- ' .endif
- ' mov esi,[esi]
- ' .if esi == 0
- ' jmp ASM_END
- ' .endif
- ' mov edi,[esi+4]
- ' add esi,8
- ' xor ecx,ecx
- ' .while ecx < edi
- ' and [esi+ecx*4],eax
- ' inc ecx
- ' .endw
- ' ASM_END:
- ' pop edi
- ' pop esi
- ' pop ecx
- ' pop eax
- .子程序 整数型数组_位或_常数, , 公开, 数组所有成员与一个整数位运算,结果送回数组
- .参数 位运算数组, 整数型, 参考 数组, 位运算结果将通过数组变量传出
- .参数 位运算常数, 整数型, , 数组所有成员与该值参与位运算
- 置入代码 ({ 80, 81, 86, 87, 139, 69, 12, 11, 192, 117, 2, 235, 35, 139, 117, 8, 11, 246, 117, 2, 235, 26, 139, 54, 11, 246, 117, 2, 235, 18, 139, 126, 4, 131, 198, 8, 51, 201, 235, 4, 9, 4, 142, 65, 59, 207, 114, 248, 95, 94, 89, 88 })
- ' push eax
- ' push ecx
- ' push esi
- ' push edi
- ' mov eax,[ebp+12]
- ' .if eax == 0
- ' jmp ASM_END
- ' .endif
- ' mov esi,[ebp+8]
- ' .if esi == 0
- ' jmp ASM_END
- ' .endif
- ' mov esi,[esi]
- ' .if esi == 0
- ' jmp ASM_END
- ' .endif
- ' mov edi,[esi+4]
- ' add esi,8
- ' xor ecx,ecx
- ' .while ecx < edi
- ' or [esi+ecx*4],eax
- ' inc ecx
- ' .endw
- ' ASM_END:
- ' pop edi
- ' pop esi
- ' pop ecx
- ' pop eax
- .子程序 整数型数组_位异或_常数, , 公开, 数组所有成员与一个整数位运算,结果送回数组
- .参数 位运算数组, 整数型, 参考 数组, 位运算结果将通过数组变量传出
- .参数 位运算常数, 整数型, , 数组所有成员与该值参与位运算
- 置入代码 ({ 80, 81, 86, 87, 139, 69, 12, 11, 192, 117, 2, 235, 35, 139, 117, 8, 11, 246, 117, 2, 235, 26, 139, 54, 11, 246, 117, 2, 235, 18, 139, 126, 4, 131, 198, 8, 51, 201, 235, 4, 49, 4, 142, 65, 59, 207, 114, 248, 95, 94, 89, 88 })
- ' push eax
- ' push ecx
- ' push esi
- ' push edi
- ' mov eax,[ebp+12]
- ' .if eax == 0
- ' jmp ASM_END
- ' .endif
- ' mov esi,[ebp+8]
- ' .if esi == 0
- ' jmp ASM_END
- ' .endif
- ' mov esi,[esi]
- ' .if esi == 0
- ' jmp ASM_END
- ' .endif
- ' mov edi,[esi+4]
- ' add esi,8
- ' xor ecx,ecx
- ' .while ecx < edi
- ' xor [esi+ecx*4],eax
- ' inc ecx
- ' .endw
- ' ASM_END:
- ' pop edi
- ' pop esi
- ' pop ecx
- ' pop eax
复制代码 |
|