本帖最后由 EAX 于 2020-2-22 09:41 编辑
运算规则(无符号):
参数:1234567(100101101011010000111)
返回:2097151(111111111111111111111)
参数:123(1111011)
返回:127(1111111) 以此类推
- .版本 2
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 掩码, 整数型
- .局部变量 值, 整数型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 值 = 1234567890
- 掩码 = 取整数掩码 (值)
- 输出调试文本 (到文本 (掩码) + “,” + 到文本 (值))
- 检查 (位与 (掩码, 值) = 值)
- .子程序 取整数掩码, 整数型, , 运算规则(无符号):参数:1234567(100101101011010000111) 返回:2097151(111111111111111111111) 参数:123(1111011) 返回:127(1111111) 以此类推
- .参数 值, 整数型
- 置入代码 ({ 139, 69, 8, 232, 4, 0, 0, 0, 201, 194, 4, 0, 61, 0, 0, 0, 128, 114, 10, 184, 255, 255, 255, 255, 233, 217, 1, 0, 0, 61, 0, 0, 0, 64, 114, 10, 184, 255, 255, 255, 127, 233, 200, 1, 0, 0, 61, 0, 0, 0, 32, 114, 10, 184, 255, 255, 255, 63, 233, 183, 1, 0, 0, 61, 0, 0, 0, 16, 114, 10, 184, 255, 255, 255, 31, 233, 166, 1, 0, 0, 61, 0, 0, 0, 8, 114, 10, 184, 255, 255, 255, 15, 233, 149, 1, 0, 0, 61, 0, 0, 0, 4, 114, 10, 184, 255, 255, 255, 7, 233, 132, 1, 0, 0, 61, 0, 0, 0, 2, 114, 10, 184, 255, 255, 255, 3, 233, 115, 1, 0, 0, 61, 0, 0, 0, 1, 114, 10, 184, 255, 255, 255, 1, 233, 98, 1, 0, 0, 61, 0, 0, 128, 0, 114, 10, 184, 255, 255, 255, 0, 233, 81, 1, 0, 0, 61, 0, 0, 64, 0, 114, 10, 184, 255, 255, 127, 0, 233, 64, 1, 0, 0, 61, 0, 0, 32, 0, 114, 10, 184, 255, 255, 63, 0, 233, 47, 1, 0, 0, 61, 0, 0, 16, 0, 114, 10, 184, 255, 255, 31, 0, 233, 30, 1, 0, 0, 61, 0, 0, 8, 0, 114, 10, 184, 255, 255, 15, 0, 233, 13, 1, 0, 0, 61, 0, 0, 4, 0, 114, 10, 184, 255, 255, 7, 0, 233, 252, 0, 0, 0, 61, 0, 0, 2, 0, 114, 10, 184, 255, 255, 3, 0, 233, 235, 0, 0, 0, 61, 0, 0, 1, 0, 114, 10, 184, 255, 255, 1, 0, 233, 218, 0, 0, 0, 61, 0, 128, 0, 0, 114, 10, 184, 255, 255, 0, 0, 233, 201, 0, 0, 0, 61, 0, 64, 0, 0, 114, 10, 184, 255, 127, 0, 0, 233, 184, 0, 0, 0, 61, 0, 32, 0, 0, 114, 10, 184, 255, 63, 0, 0, 233, 167, 0, 0, 0, 61, 0, 16, 0, 0, 114, 10, 184, 255, 31, 0, 0, 233, 150, 0, 0, 0, 61, 0, 8, 0, 0, 114, 10, 184, 255, 15, 0, 0, 233, 133, 0, 0, 0, 61, 0, 4, 0, 0, 114, 7, 184, 255, 7, 0, 0, 235, 119, 61, 0, 2, 0, 0, 114, 7, 184, 255, 3, 0, 0, 235, 105, 61, 0, 1, 0, 0, 114, 7, 184, 255, 1, 0, 0, 235, 91, 61, 128, 0, 0, 0, 114, 7, 184, 255, 0, 0, 0, 235, 77, 131, 248, 64, 114, 7, 184, 127, 0, 0, 0, 235, 65, 131, 248, 32, 114, 7, 184, 63, 0, 0, 0, 235, 53, 131, 248, 16, 114, 7, 184, 31, 0, 0, 0, 235, 41, 131, 248, 8, 114, 7, 184, 15, 0, 0, 0, 235, 29, 131, 248, 4, 114, 7, 184, 7, 0, 0, 0, 235, 17, 131, 248, 2, 114, 7, 184, 3, 0, 0, 0, 235, 5, 184, 1, 0, 0, 0, 195 })
- ' mov eax,[ebp+8]
- ' call EAX_MASK
- ' leave
- ' retn 4
- ' EAX_MASK:
- ' .if eax >=080000000H
- ' mov eax,0FFFFFFFFH
- ' .elseif eax >=040000000H
- ' mov eax,07FFFFFFFH
- ' .elseif eax >=020000000H
- ' mov eax,03FFFFFFFH
- ' .elseif eax >=010000000H
- ' mov eax,01FFFFFFFH
- ' .elseif eax >=008000000H
- ' mov eax,00FFFFFFFH
- ' .elseif eax >=004000000H
- ' mov eax,007FFFFFFH
- ' .elseif eax >=002000000H
- ' mov eax,003FFFFFFH
- ' .elseif eax >=001000000H
- ' mov eax,001FFFFFFH
- ' .elseif eax >=000800000H
- ' mov eax,000FFFFFFH
- ' .elseif eax >=000400000H
- ' mov eax,0007FFFFFH
- ' .elseif eax >=000200000H
- ' mov eax,0003FFFFFH
- ' .elseif eax >=000100000H
- ' mov eax,0001FFFFFH
- ' .elseif eax >=000080000H
- ' mov eax,0000FFFFFH
- ' .elseif eax >=000040000H
- ' mov eax,00007FFFFH
- ' .elseif eax >=000020000H
- ' mov eax,00003FFFFH
- ' .elseif eax >=000010000H
- ' mov eax,00001FFFFH
- ' .elseif eax >=000008000H
- ' mov eax,00000FFFFH
- ' .elseif eax >=000004000H
- ' mov eax,000007FFFH
- ' .elseif eax >=000002000H
- ' mov eax,000003FFFH
- ' .elseif eax >=000001000H
- ' mov eax,000001FFFH
- ' .elseif eax >=000000800H
- ' mov eax,000000FFFH
- ' .elseif eax >=000000400H
- ' mov eax,0000007FFH
- ' .elseif eax >=000000200H
- ' mov eax,0000003FFH
- ' .elseif eax >=000000100H
- ' mov eax,0000001FFH
- ' .elseif eax >=000000080H
- ' mov eax,0000000FFH
- ' .elseif eax >=000000040H
- ' mov eax,00000007FH
- ' .elseif eax >=000000020H
- ' mov eax,00000003FH
- ' .elseif eax >=000000010H
- ' mov eax,00000001FH
- ' .elseif eax >=000000008H
- ' mov eax,00000000FH
- ' .elseif eax >=000000004H
- ' mov eax,000000007H
- ' .elseif eax >=000000002H
- ' mov eax,000000003H
- ' .else
- ' mov eax,000000001H
- ' .endif
- ' ret
- 返回 (0)
复制代码
|