设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 2145|回复: 1
收起左侧

MASM置入代码文本型整数到整数型 不支持负数/跳过开头0/10位数以上不转换(返回整数型)

[复制链接]
发表于 2019-8-24 18:02:29 | 显示全部楼层 |阅读模式

  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

  4. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  5. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  6. 返回 (0)  ' 可以根据您的需要返回任意数值

  7. .子程序 _临时子程序

  8. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  9. 调试输出 (文本整数到整数 (“00000000001234567890”))
  10. 调试输出 (文本整数到整数 (“111222333”))
  11. 调试输出 (到整数 (“12345678901”), 文本整数到整数 (“12345678901”))
  12. 调试输出 (到整数 (“123D456”), 文本整数到整数 (“123D456”))
  13. 调试输出 (到整数 (“4294967295”), 文本整数到整数 (“4294967295”))
  14. 调试输出 (到整数 (“0”), 文本整数到整数 (“0”))
  15. 调试输出 (到整数 (“000100”), 文本整数到整数 (“000100”))


  16. .子程序 文本整数到整数, 整数型, 公开, 不支持负数,自动跳过开头的0,10位数以上的不转换
  17. .参数 文本, 文本型

  18. 置入代码 ({ 82, 139, 69, 8, 139, 0, 232, 7, 0, 0, 0, 139, 194, 90, 201, 194, 4, 0, 83, 81, 86, 51, 210, 51, 219, 51, 201, 190, 10, 0, 0, 0, 235, 48, 138, 28, 1, 128, 251, 48, 114, 5, 128, 251, 57, 118, 4, 235, 37, 235, 30, 128, 251, 48, 117, 7, 10, 255, 117, 3, 70, 235, 18, 183, 1, 128, 235, 48, 107, 210, 10, 83, 129, 227, 255, 0, 0, 0, 3, 211, 91, 65, 59, 206, 114, 204, 94, 89, 91, 195 })
  19. ' push edx
  20. ' mov eax,[ebp+8]
  21. ' mov eax,[eax]
  22. ' call TEXT2INT
  23. ' mov eax,edx
  24. ' pop edx
  25. ' leave
  26. ' retn 4
  27. ' ;文本整数转整数型(不支持负数,遇到其他字符终止转换)
  28. ' ;EAX:文本指针 EDX:整数输出
  29. ' TEXT2INT:
  30. ' push ebx
  31. ' push ecx
  32. ' push esi
  33. ' xor edx,edx
  34. ' xor ebx,ebx
  35. ' xor ecx,ecx
  36. ' mov esi,10
  37. ' .while ecx < esi
  38. ' mov bl,[eax+ecx]
  39. ' .if bl < 48 || bl > 57
  40. ' .break
  41. ' .elseif bl == 48 && !bh
  42. ' inc esi
  43. ' .else
  44. ' mov bh,1
  45. ' sub bl,48
  46. ' imul edx,10
  47. ' push ebx
  48. ' and ebx,255
  49. ' add edx,ebx
  50. ' pop ebx
  51. ' .endif
  52. ' inc ecx
  53. ' .endw
  54. ' pop esi
  55. ' pop ecx
  56. ' pop ebx
  57. ' ret

  58. 返回 (0)
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-24 16:28 , Processed in 0.618035 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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