汇聚知识碎片,解决技术难题,专注提供易语言源码资源,视频教程,等在线学习交流论坛
 
发新帖
楼主: 天启
查看: 1206|回复: 0

[源码] 易语言汇编基础命令源码

[复制链接]
天启VIP6 发表于 2020-6-1 15:45:05 | 显示全部楼层
汇编版的基础命令
  1. .版本 2

  2. .子程序 取随机数, 整数型, 公开, 汇编代码。成功返回随机数,失败返回 0 。[基础核心程序集]
  3. .参数 最小数值, 整数型
  4. .参数 最大数值, 整数型

  5. 置入代码 ({ 81 })  ' 00401046      51            push ecx
  6. 置入代码 ({ 82 })  ' 00401047      52            push edx
  7. 置入代码 ({ 15, 49 })  ' 00401048      0F31          rdtsc
  8. 置入代码 ({ 185, 23, 0, 0, 0 })  ' 0040104A      B9 17000000   mov ecx,0x17
  9. 置入代码 ({ 247, 225 })  ' 0040104F      F7E1          mul ecx
  10. 置入代码 ({ 131, 192, 7 })  ' 00401051      83C0 07       add eax,0x7
  11. 置入代码 ({ 139, 77, 12 })  ' 00401054      8B4D 0C       mov ecx,dword ptr ss:[ebp+0xC]
  12. 置入代码 ({ 43, 77, 8 })  ' 00401057      2B4D 08       sub ecx,dword ptr ss:[ebp+0x8]
  13. 置入代码 ({ 65 })  ' 0040105A      41            inc ecx
  14. 置入代码 ({ 49, 210 })  ' 0040105B      31D2          xor edx,edx
  15. 置入代码 ({ 247, 241 })  ' 0040105D      F7F1          div ecx
  16. 置入代码 ({ 3, 85, 8 })  ' 0040105F      0355 08       add edx,dword ptr ss:[ebp+0x8]
  17. 置入代码 ({ 137, 208 })  ' 00401062      89D0          mov eax,edx
  18. 置入代码 ({ 90 })  ' 00401064      5A            pop edx
  19. 置入代码 ({ 89 })  ' 00401065      59            pop ecx
  20. 置入代码 ({ 201 })  ' 00401066      C9            leave
  21. 置入代码 ({ 194, 8, 0 })  ' 00401067      C2 0800       retn 0x8
  22. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 是否运算正确, 逻辑型, 公开, 对乘、除、“求次方”、“求平方根”、“求正弦值”、“求余弦值”、“求正切值”、“求反正切值”、“求自然对数”、“求反对数”等等数学运算命令所计算出来的双精度结果数值进行校验,如果该数值正确有效,返回真。如果该数值是运算错误或运算溢出后的结果,返回假。[基础核心程序集]
  3. .参数 欲校验的计算结果, 双精度小数型, , 参数<1>的名称为“欲校验的计算结果”,类型为“双精度小数型(double)”。

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 0040101D      81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 139, 69, 12 })  ' 00401042    8B45 0C         mov eax,dword ptr ss:[ebp+0xC]
  6. 置入代码 ({ 51, 201 })  ' 00446474      33C9          xor ecx,ecx
  7. 置入代码 ({ 37, 0, 0, 240, 255 })  ' 00401045      25 0000F0FF   and eax,0xFFF00000
  8. 置入代码 ({ 61, 0, 0, 240, 255 })  ' 0040104A      3D 0000F0FF   cmp eax,0xFFF00000
  9. 置入代码 ({ 15, 149, 193 })  ' 0044646E      0F95C1        setne cl
  10. 置入代码 ({ 139, 193 })  ' 00446471      8BC1          mov eax,ecx
  11. 置入代码 ({ 201 })  ' C9              leave
  12. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  13. 返回 (假)
复制代码
  1. .版本 2

  2. .子程序 求反对数, 双精度小数型, 公开, 返回 e(自然对数的底)的某次方。 [基础核心程序集]
  3. .参数 欲求其反对数的数值, 双精度小数型, , 参数<1>的名称为“欲求其反对数的数值”,类型为“双精度小数型(double)”。如果参数值超过 709.782712893,将导致计算溢出。

  4. 置入代码 ({ 217, 234 })  ' D9EA          fldl2e
  5. 置入代码 ({ 62, 220, 77, 8 })  ' 3E:DC4D 08    fmul qword ptr ds:[ebp+0x8]
  6. 置入代码 ({ 217, 192 })  ' D9C0          fld st
  7. 置入代码 ({ 217, 252 })  ' D9FC          frndint
  8. 置入代码 ({ 217, 201 })  ' D9C9          fxch st(1)
  9. 置入代码 ({ 216, 225 })  ' D8E1          fsub st,st(1)
  10. 置入代码 ({ 217, 240 })  ' D9F0          f2xm1
  11. 置入代码 ({ 217, 232 })  ' D9E8          fld1
  12. 置入代码 ({ 222, 193 })  ' DEC1          faddp st(1),st
  13. 置入代码 ({ 217, 253 })  ' D9FD          fscale
  14. 置入代码 ({ 221, 217 })  ' DDD9          fstp st(1)
  15. 置入代码 ({ 62, 221, 93, 248 })  ' 3E:DD5D F8    fstp qword ptr ds:[ebp-0x8]
  16. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  17. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  18. 置入代码 ({ 201 })  ' C9              leave
  19. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  20. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求自然对数, 双精度小数型, 公开, 返回指定参数的自然对数值。自然对数是以 e 为底的对数。常量 #e 的值大约是 2.718282。 [基础核心程序集]
  3. .参数 欲求其自然对数的数值, 双精度小数型, , 参数<1>的名称为“欲求其自然对数的数值”,类型为“双精度小数型(double)”。

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 217, 237 })  ' D9ED            fldln2
  6. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  7. 置入代码 ({ 217, 241 })  ' D9F1            fyl2x
  8. 置入代码 ({ 221, 93, 248 })  ' DD5D F8         fstp qword ptr ss:[ebp-0x8]
  9. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  10. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  11. 置入代码 ({ 201 })  ' C9              leave
  12. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  13. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求反正切, 双精度小数型, 公开, 返回指定数的反正切值。 [基础核心程序集]
  3. .参数 欲求其反正切值的数值, 双精度小数型, , 参数<1>的名称为“欲求其反正切值的数值”,类型为“双精度小数型(double)”。

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  6. 置入代码 ({ 217, 232 })  ' 004010CA      D9E8          fld1
  7. 置入代码 ({ 217, 243 })  ' D9F3            fpatan
  8. 置入代码 ({ 221, 93, 248 })  ' DD5D F8         fstp qword ptr ss:[ebp-0x8]
  9. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  10. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  11. 置入代码 ({ 201 })  ' C9              leave
  12. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  13. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求正切, 双精度小数型, 公开, 返回指定角的正切值。 [基础核心程序集]
  3. .参数 欲进行计算的角, 双精度小数型, , 参数<1>的名称为“欲进行计算的角”,类型为“双精度小数型(double)”。所使用单位为弧度。为了将角度转换成弧度,请将角度乘以 #pi / 180。为了将弧度转换成角度,请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方,或者小于等于 -2 的 63 次方,将导致计算溢出。

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  6. 置入代码 ({ 217, 242 })  ' D9F2            fptan
  7. 置入代码 ({ 221, 216 })  ' 004010CC       DDD8          fstp st
  8. 置入代码 ({ 221, 93, 248 })  ' DD5D F8         fstp qword ptr ss:[ebp-0x8]
  9. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  10. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  11. 置入代码 ({ 201 })  ' C9              leave
  12. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  13. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求余弦, 双精度小数型, 公开, 返回指定角的余弦值。 [基础核心程序集]
  3. .参数 欲进行计算的角, 双精度小数型, , 参数<1>的名称为“欲进行计算的角”,类型为“双精度小数型(double)”。所使用单位为弧度。为了将角度转换成弧度,请将角度乘以 #pi / 180。为了将弧度转换成角度,请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方,或者小于等于 -2 的 63 次方,将导致计算溢出。

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  6. 置入代码 ({ 217, 255 })  ' 00401049    D9FF            fcos
  7. 置入代码 ({ 221, 93, 248 })  ' DD5D F8         fstp qword ptr ss:[ebp-0x8]
  8. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  9. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  10. 置入代码 ({ 201 })  ' C9              leave
  11. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  12. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求正弦, 双精度小数型, 公开, 返回指定角的正弦值。 [基础核心程序集]
  3. .参数 欲进行计算的角, 双精度小数型, , 参数<1>的名称为“欲进行计算的角”,类型为“双精度小数型(double)”。所使用单位为弧度。为了将角度转换成弧度,请将角度乘以 #pi / 180。为了将弧度转换成角度,请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方,或者小于等于 -2 的 63 次方,将导致计算溢出。

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  6. 置入代码 ({ 217, 254 })  ' D9FE            fsin
  7. 置入代码 ({ 221, 93, 248 })  ' DD5D F8         fstp qword ptr ss:[ebp-0x8]
  8. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  9. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  10. 置入代码 ({ 201 })  ' C9              leave
  11. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  12. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求平方根, 双精度小数型, 公开, 返回指定参数的平方根。[基础核心程序集]
  3. .参数 欲求其平方根的数值, 双精度小数型, , 参数<1>的名称为“欲求其平方根的数值”,类型为“双精度小数型(double)”。参数值如果小于零将导致计算错误。

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  6. 置入代码 ({ 217, 250 })  ' D9FA            fsqrt
  7. 置入代码 ({ 221, 93, 248 })  ' DD5D F8         fstp qword ptr ss:[ebp-0x8]
  8. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  9. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  10. 置入代码 ({ 201 })  ' C9              leave
  11. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  12. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 负, 双精度小数型, 公开, 反转一个数值的正负符号并返回反转后的值,运算符号为“-”(放在表达式首)。[基础核心程序集]
  3. .参数 数值, 双精度小数型

  4. 置入代码 ({ 129, 236, 8, 0, 0, 0 })  ' 81EC 08000000   sub esp,0x8
  5. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  6. 置入代码 ({ 217, 224 })  ' D9E0            fchs
  7. 置入代码 ({ 221, 93, 248 })  ' DD5D F8         fstp qword ptr ss:[ebp-0x8]
  8. 置入代码 ({ 139, 85, 252 })  ' 8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
  9. 置入代码 ({ 139, 69, 248 })  ' 8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  10. 置入代码 ({ 201 })  ' C9              leave
  11. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  12. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求余数, 双精度小数型, 公开, 求出两个数值的商,并返回余数部分,运算符号为“%”或“Mod”。[基础核心程序集]
  3. .参数 原数, 双精度小数型
  4. .参数 除数, 双精度小数型

  5. 置入代码 ({ 129, 236, 16, 0, 0, 0 })  ' 81EC 10000000   sub esp,0x10
  6. 置入代码 ({ 184, 0, 0, 0, 0 })  ' B8 00000000     mov eax,0x0
  7. 置入代码 ({ 137, 69, 248 })  ' 8945 F8         mov dword ptr ss:[ebp-0x8],eax
  8. 置入代码 ({ 137, 69, 252 })  ' 8945 FC         mov dword ptr ss:[ebp-0x4],eax
  9. 置入代码 ({ 221, 69, 16 })  ' DD45 10       fld qword ptr ss:[ebp+0x10]
  10. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  11. 置入代码 ({ 217, 248 })  ' D9F8          fprem
  12. 置入代码 ({ 221, 93, 240 })  ' DD5D F0         fstp qword ptr ss:[ebp-0x10]
  13. 置入代码 ({ 139, 85, 244 })  ' 8B55 F4         mov edx,dword ptr ss:[ebp-0xC]
  14. 置入代码 ({ 139, 69, 240 })  ' 8B45 F0         mov eax,dword ptr ss:[ebp-0x10]
  15. 置入代码 ({ 137, 69, 248 })  ' 8945 F8         mov dword ptr ss:[ebp-0x8],eax
  16. 置入代码 ({ 137, 85, 252 })  ' 8955 FC         mov dword ptr ss:[ebp-0x4],edx
  17. 置入代码 ({ 201 })  ' C9              leave
  18. 置入代码 ({ 194, 16, 0 })  ' C2 1000         retn 0x10
  19. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 整除, 双精度小数型, 公开, 求出两个数值的商,并返回其整数部分,运算符号为“\”。[基础核心程序集]
  3. .参数 原数, 双精度小数型
  4. .参数 除数, 双精度小数型

  5. 置入代码 ({ 129, 236, 16, 0, 0, 0 })  ' 81EC 10000000   sub esp,0x10
  6. 置入代码 ({ 184, 0, 0, 0, 0 })  ' B8 00000000     mov eax,0x0
  7. 置入代码 ({ 137, 69, 248 })  ' 8945 F8         mov dword ptr ss:[ebp-0x8],eax
  8. 置入代码 ({ 137, 69, 252 })  ' 8945 FC         mov dword ptr ss:[ebp-0x4],eax
  9. 置入代码 ({ 221, 69, 8 })  ' DD45 08         fld qword ptr ss:[ebp+0x8]
  10. 置入代码 ({ 220, 117, 16 })  ' DC75 10         fdiv qword ptr ss:[ebp+0x10]
  11. 置入代码 ({ 217, 252 })  ' D9FC          frndint
  12. 置入代码 ({ 221, 93, 240 })  ' DD5D F0         fstp qword ptr ss:[ebp-0x10]
  13. 置入代码 ({ 139, 85, 244 })  ' 8B55 F4         mov edx,dword ptr ss:[ebp-0xC]
  14. 置入代码 ({ 139, 69, 240 })  ' 8B45 F0         mov eax,dword ptr ss:[ebp-0x10]
  15. 置入代码 ({ 137, 69, 248 })  ' 8945 F8         mov dword ptr ss:[ebp-0x8],eax
  16. 置入代码 ({ 137, 85, 252 })  ' 8955 FC         mov dword ptr ss:[ebp-0x4],edx
  17. 置入代码 ({ 201 })  ' C9              leave
  18. 置入代码 ({ 194, 16, 0 })  ' C2 1000         retn 0x10
  19. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 求次方, 双精度小数型, 公开, 返回指定数值的指定次方。[基础核心程序集]
  3. .参数 欲求次方数值, 双精度小数型, , 参数<1>的名称为“欲求次方数值”,类型为“双精度小数型(double)”。参数值指定欲求其某次方的数值。
  4. .参数 次方数, 双精度小数型, , 参数<2>的名称为“次方数”,类型为“双精度小数型(double)”。参数值指定对欲求次方数值的运算指数。

  5. 置入代码 ({ 62, 221, 69, 16 })  ' 3E:DD45 10      fld qword ptr ds:[ebp+0x10]  ;次方数
  6. 置入代码 ({ 62, 221, 69, 8 })  ' 3E:DD45 08      fld qword ptr ds:[ebp+0x8]    ;欲求次方数值
  7. 置入代码 ({ 217, 241 })  ' D9F1            fyl2x                 ; st(0) * log2( st(1) )的值
  8. 置入代码 ({ 217, 192 })  ' D9C0            fld st
  9. 置入代码 ({ 217, 252 })  ' D9FC            frndint               ;取整(四舍五入)
  10. 置入代码 ({ 220, 225 })  ' DCE1            fsubr st(1),st        ;用一个实数来减 st(0) <- st(i) - st(0)
  11. 置入代码 ({ 217, 201 })  ' D9C9            fxch st(1)             ;交换指令,交换st(0)和st(1)的值
  12. 置入代码 ({ 217, 224 })  ' D9E0            fchs                   ;改变符号位(求负数)st(0) <-st(0)
  13. 置入代码 ({ 217, 240 })  ' D9F0            f2xm1                  ;计算(2 ^ x)-1 st(0) <- (2 ^ st(0)) - 1
  14. 置入代码 ({ 217, 232 })  ' D9E8            fld1                   ;将1.0装入st(0)
  15. 置入代码 ({ 222, 193 })  ' DEC1            faddp st(1),st         ;st(i) <- st(i) + st(0);然后执行一次出栈操作
  16. 置入代码 ({ 217, 253 })  ' D9FD            fscale                 ;2的st(0)次方
  17. 置入代码 ({ 221, 217 })  ' DDD9            fstp st(1)             ;dest <- st(0);然后再执行一次出栈操作
  18. 置入代码 ({ 62, 221, 93, 8 })  ' 0040103F      3E:DD5D 08    fstp qword ptr ds:[ebp+0x8]
  19. 置入代码 ({ 139, 69, 8 })  ' 8B45 08       mov eax,dword ptr ss:[ebp+0x8]
  20. 置入代码 ({ 139, 85, 12 })  ' 8B55 0C       mov edx,dword ptr ss:[ebp+0xC]
  21. 置入代码 ({ 201 })  ' C9              leave
  22. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  23. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 取整, 整数型, 公开, 返回一个小数的整数部分。本命令与“绝对取整”命令不相同之处为:如果给定小数为负数,则本命令返回小于或等于该小数的第一个负整数,而“绝对取整”命令则会返回大于或等于该小数的第一个负整数。例如,本命令将 -7.8 转换成 -8,而“绝对取整”命令将 -7.8 转换成 -7。[基础核心程序集]
  3. .参数 欲取整的小数, 双精度小数型, , 参数<1>的名称为“欲取整的小数”,类型为“双精度小数型(double)”。

  4. 置入代码 ({ 51, 192 })  ' 33C0            xor eax,eax
  5. 置入代码 ({ 137, 68, 36, 248 })  ' 894424 F8       mov dword ptr ss:[esp-0x8],eax
  6. 置入代码 ({ 137, 68, 36, 244 })  ' 894424 F4       mov dword ptr ss:[esp-0xC],eax
  7. 置入代码 ({ 199, 69, 240, 127, 23, 0, 0 })  ' C745 F0 7F170000    mov dword ptr ss:[ebp-0x10],0x177F
  8. 置入代码 ({ 217, 109, 240 })  ' D96D F0             fldcw word ptr ss:[ebp-0x10]
  9. 置入代码 ({ 221, 69, 8 })  ' DD45 08       fld qword ptr ss:[ebp+0x8]
  10. 置入代码 ({ 217, 252 })  ' D9FC          frndint
  11. 置入代码 ({ 223, 125, 244 })  ' DF7D F4       fistp qword ptr ss:[ebp-0xC]
  12. 置入代码 ({ 139, 69, 244 })  ' 8B45 F4       mov eax,dword ptr ss:[ebp-0xC]
  13. 置入代码 ({ 139, 85, 248 })  ' 8B55 F8       mov edx,dword ptr ss:[ebp-0x8]
  14. 置入代码 ({ 201 })  ' C9              leave
  15. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  16. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 取绝对值, 双精度小数型, 公开, 如果所提供数值为字节型,则将直接返回该数值。[基础核心程序集]
  3. .参数 欲取其绝对值的数值, 双精度小数型, , 参数<1>的名称为“欲取其绝对值的数值”,类型为“双精度小数型(double)”。

  4. 置入代码 ({ 62, 221, 69, 8 })  ' 3E:DD45 08      fld qword ptr ds:[ebp+0x8]
  5. 置入代码 ({ 217, 225 })  ' D9E1            fabs
  6. 置入代码 ({ 62, 221, 93, 244 })  ' 00401031      3E:DD5D F4    fstp qword ptr ds:[ebp-0xC]
  7. 置入代码 ({ 139, 69, 244 })  ' 00401035      8B45 F4       mov eax,dword ptr ss:[ebp-0xC]
  8. 置入代码 ({ 139, 85, 248 })  ' 00401038      8B55 F8       mov edx,dword ptr ss:[ebp-0x8]
  9. 置入代码 ({ 201 })  ' C9              leave
  10. 置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
  11. 返回 (0)
复制代码
  1. .版本 2

  2. .子程序 取整数绝对值, 整数型, 公开, 返回整数绝对值。[基础核心程序集]
  3. .参数 欲取其绝对值的整数, 整数型

  4. 置入代码 ({ 81 })  ' push ecx
  5. 置入代码 ({ 139, 77, 8 })  ' mov ecx,dword ptr ss:[ebp+0x8]
  6. 置入代码 ({ 139, 69, 8 })  ' mov eax,dword ptr ss:[ebp+0x8]
  7. 置入代码 ({ 193, 249, 49 })  ' sar ecx,0x31 带符号右移31位
  8. 置入代码 ({ 51, 193 })  ' xor eax,ecx
  9. 置入代码 ({ 131, 249, 0 })  ' cmp ecx,0x0
  10. 置入代码 ({ 116, 1 })  ' je 00401038
  11. 置入代码 ({ 64 })  ' inc eax
  12. 置入代码 ({ 89 })  ' pop ecx
  13. 置入代码 ({ 201 })  ' 00401038   leave
  14. 置入代码 ({ 194, 4, 0 })  ' retn 0x4
  15. 返回 (0)
复制代码


快速回复 返回顶部 返回列表