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

从F到0 - From F to 0

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

易语言MASM置入代码实现逻辑门运算:与,或,非,与非,或非,异或,同或 (返回逻辑型)

[复制链接]
发表于 2022-11-2 15:56:12 | 显示全部楼层 |阅读模式
1.png
  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

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


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

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

  8. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  9. 调试输出 (逻辑与 (假, 假), 逻辑或 (假, 假), 逻辑与非 (假, 假), 逻辑或非 (假, 假), 逻辑异或 (假, 假), 逻辑同或 (假, 假))
  10. 调试输出 (逻辑与 (假, 真), 逻辑或 (假, 真), 逻辑与非 (假, 真), 逻辑或非 (假, 真), 逻辑异或 (假, 真), 逻辑同或 (假, 真))
  11. 调试输出 (逻辑与 (真, 假), 逻辑或 (真, 假), 逻辑与非 (真, 假), 逻辑或非 (真, 假), 逻辑异或 (真, 假), 逻辑同或 (真, 假))
  12. 调试输出 (逻辑与 (真, 真), 逻辑或 (真, 真), 逻辑与非 (真, 真), 逻辑或非 (真, 真), 逻辑异或 (真, 真), 逻辑同或 (真, 真))
  13. 调试输出 (逻辑非 (假))
  14. 调试输出 (逻辑非 (真))


  15. .子程序 逻辑与, 逻辑型, 公开
  16. .参数 A, 逻辑型
  17. .参数 B, 逻辑型

  18. 置入代码 ({ 82, 139, 69, 8, 139, 85, 12, 131, 248, 1, 117, 12, 131, 250, 1, 117, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 90, 201, 194, 8, 0 })
  19. ' push edx
  20. ' mov eax,[ebp+8]
  21. ' mov edx,[ebp+12]
  22. ' .if eax == 1 && edx == 1
  23. ' mov eax,1
  24. ' .else
  25. ' xor eax,eax
  26. ' .endif
  27. ' pop edx
  28. ' leave
  29. ' retn 8
  30. 返回 (假)

  31. .子程序 逻辑或, 逻辑型, 公开
  32. .参数 A, 逻辑型
  33. .参数 B, 逻辑型

  34. 置入代码 ({ 82, 139, 69, 8, 139, 85, 12, 131, 248, 1, 116, 5, 131, 250, 1, 117, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 90, 201, 194, 8, 0 })
  35. ' push edx
  36. ' mov eax,[ebp+8]
  37. ' mov edx,[ebp+12]
  38. ' .if eax == 1 || edx == 1
  39. ' mov eax,1
  40. ' .else
  41. ' xor eax,eax
  42. ' .endif
  43. ' pop edx
  44. ' leave
  45. ' retn 8
  46. 返回 (假)

  47. .子程序 逻辑非, 逻辑型, 公开
  48. .参数 A, 逻辑型

  49. 置入代码 ({ 139, 69, 8, 131, 248, 1, 117, 4, 51, 192, 235, 5, 184, 1, 0, 0, 0, 201, 194, 4, 0 })
  50. ' mov eax,[ebp+8]
  51. ' .if eax == 1
  52. ' xor eax,eax
  53. ' .else
  54. ' mov eax,1
  55. ' .endif
  56. ' leave
  57. ' retn 4
  58. 返回 (假)

  59. .子程序 逻辑与非, 逻辑型, 公开
  60. .参数 A, 逻辑型
  61. .参数 B, 逻辑型

  62. 置入代码 ({ 82, 139, 69, 8, 139, 85, 12, 131, 248, 1, 117, 9, 131, 250, 1, 117, 4, 51, 192, 235, 5, 184, 1, 0, 0, 0, 90, 201, 194, 8, 0 })
  63. ' push edx
  64. ' mov eax,[ebp+8]
  65. ' mov edx,[ebp+12]
  66. ' .if eax == 1 && edx == 1
  67. ' xor eax,eax
  68. ' .else
  69. ' mov eax,1
  70. ' .endif
  71. ' pop edx
  72. ' leave
  73. ' retn 8
  74. 返回 (假)

  75. .子程序 逻辑或非, 逻辑型, 公开
  76. .参数 A, 逻辑型
  77. .参数 B, 逻辑型

  78. 置入代码 ({ 82, 139, 69, 8, 139, 85, 12, 131, 248, 1, 116, 5, 131, 250, 1, 117, 4, 51, 192, 235, 5, 184, 1, 0, 0, 0, 90, 201, 194, 8, 0 })
  79. ' push edx
  80. ' mov eax,[ebp+8]
  81. ' mov edx,[ebp+12]
  82. ' .if eax == 1 || edx == 1
  83. ' xor eax,eax
  84. ' .else
  85. ' mov eax,1
  86. ' .endif
  87. ' pop edx
  88. ' leave
  89. ' retn 8
  90. 返回 (假)

  91. .子程序 逻辑异或, 逻辑型, 公开
  92. .参数 A, 逻辑型
  93. .参数 B, 逻辑型

  94. 置入代码 ({ 139, 69, 8, 59, 69, 12, 116, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 201, 194, 8, 0 })
  95. ' mov eax,[ebp+8]
  96. ' .if eax != [ebp+12]
  97. ' mov eax,1
  98. ' .else
  99. ' xor eax,eax
  100. ' .endif
  101. ' leave
  102. ' retn 8
  103. 返回 (假)

  104. .子程序 逻辑同或, 逻辑型, 公开
  105. .参数 A, 逻辑型
  106. .参数 B, 逻辑型

  107. 置入代码 ({ 139, 69, 8, 59, 69, 12, 117, 7, 184, 1, 0, 0, 0, 235, 2, 51, 192, 201, 194, 8, 0 })
  108. ' mov eax,[ebp+8]
  109. ' .if eax == [ebp+12]
  110. ' mov eax,1
  111. ' .else
  112. ' xor eax,eax
  113. ' .endif
  114. ' leave
  115. ' retn 8

  116. 返回 (假)
复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-25 12:38 , Processed in 0.664038 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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