设为首页收藏本站帮助中心
查看: 186|回复: 0
收起左侧

易语言MASM置入代码实现将八个逻辑型数值 按高位或低位合并成一个字节值 (返回字节型)

[复制链接]
发表于 2022-6-8 20:42:29 | 显示全部楼层 |阅读模式
1.png
  1. .版本 2

  2. .程序集 程序集1

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


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

  6. .子程序 _临时子程序

  7. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  8. 输出调试文本 (八位逻辑型_到字节_高位 (真, 真, 真, 真, 真, 真, 真, 真))
  9. 输出调试文本 (八位逻辑型_到字节_高位 (假, 真, 真, 真, 真, 真, 真, 真))
  10. 输出调试文本 (八位逻辑型_到字节_高位 (真, 假, 真, 真, 真, 真, 真, 真))
  11. 输出调试文本 (八位逻辑型_到字节_高位 (真, 真, 假, 真, 真, 真, 真, 真))
  12. 输出调试文本 (八位逻辑型_到字节_高位 (真, 真, 真, 假, 真, 真, 真, 真))
  13. 输出调试文本 (八位逻辑型_到字节_高位 (真, 真, 真, 真, 假, 真, 真, 真))
  14. 输出调试文本 (八位逻辑型_到字节_高位 (真, 真, 真, 真, 真, 假, 真, 真))
  15. 输出调试文本 (八位逻辑型_到字节_高位 (真, 真, 真, 真, 真, 真, 假, 真))
  16. 输出调试文本 (八位逻辑型_到字节_高位 (真, 真, 真, 真, 真, 真, 真, 假))
  17. 输出调试文本 (八位逻辑型_到字节_高位 (假, 假, 假, 假, 假, 假, 假, 假))
  18. 输出调试文本 (八位逻辑型_到字节_高位 (假, 假, 假, 假, 假, 假, 假, 真))
  19. 输出调试文本 (八位逻辑型_到字节_高位 (假, 假, 假, 假, 假, 假, 真, 假))
  20. 输出调试文本 (八位逻辑型_到字节_高位 (假, 假, 假, 假, 假, 真, 假, 假))
  21. 输出调试文本 (八位逻辑型_到字节_高位 (假, 假, 假, 假, 真, 假, 假, 假))
  22. 输出调试文本 (八位逻辑型_到字节_高位 (假, 假, 假, 真, 假, 假, 假, 假))
  23. 输出调试文本 (八位逻辑型_到字节_高位 (假, 假, 真, 假, 假, 假, 假, 假))
  24. 输出调试文本 (八位逻辑型_到字节_高位 (假, 真, 假, 假, 假, 假, 假, 假))
  25. 输出调试文本 (八位逻辑型_到字节_高位 (真, 假, 假, 假, 假, 假, 假, 假))
  26. 输出调试文本 (八位逻辑型_到字节_高位 (真, 假, 真, 假, 真, 假, 真, 假))
  27. 输出调试文本 (八位逻辑型_到字节_高位 (假, 真, 假, 真, 假, 真, 假, 真))
  28. 输出调试文本 (“--------”)
  29. 输出调试文本 (八位逻辑型_到字节_低位 (真, 真, 真, 真, 真, 真, 真, 真))
  30. 输出调试文本 (八位逻辑型_到字节_低位 (假, 真, 真, 真, 真, 真, 真, 真))
  31. 输出调试文本 (八位逻辑型_到字节_低位 (真, 假, 真, 真, 真, 真, 真, 真))
  32. 输出调试文本 (八位逻辑型_到字节_低位 (真, 真, 假, 真, 真, 真, 真, 真))
  33. 输出调试文本 (八位逻辑型_到字节_低位 (真, 真, 真, 假, 真, 真, 真, 真))
  34. 输出调试文本 (八位逻辑型_到字节_低位 (真, 真, 真, 真, 假, 真, 真, 真))
  35. 输出调试文本 (八位逻辑型_到字节_低位 (真, 真, 真, 真, 真, 假, 真, 真))
  36. 输出调试文本 (八位逻辑型_到字节_低位 (真, 真, 真, 真, 真, 真, 假, 真))
  37. 输出调试文本 (八位逻辑型_到字节_低位 (真, 真, 真, 真, 真, 真, 真, 假))
  38. 输出调试文本 (八位逻辑型_到字节_低位 (假, 假, 假, 假, 假, 假, 假, 假))
  39. 输出调试文本 (八位逻辑型_到字节_低位 (假, 假, 假, 假, 假, 假, 假, 真))
  40. 输出调试文本 (八位逻辑型_到字节_低位 (假, 假, 假, 假, 假, 假, 真, 假))
  41. 输出调试文本 (八位逻辑型_到字节_低位 (假, 假, 假, 假, 假, 真, 假, 假))
  42. 输出调试文本 (八位逻辑型_到字节_低位 (假, 假, 假, 假, 真, 假, 假, 假))
  43. 输出调试文本 (八位逻辑型_到字节_低位 (假, 假, 假, 真, 假, 假, 假, 假))
  44. 输出调试文本 (八位逻辑型_到字节_低位 (假, 假, 真, 假, 假, 假, 假, 假))
  45. 输出调试文本 (八位逻辑型_到字节_低位 (假, 真, 假, 假, 假, 假, 假, 假))
  46. 输出调试文本 (八位逻辑型_到字节_低位 (真, 假, 假, 假, 假, 假, 假, 假))
  47. 输出调试文本 (八位逻辑型_到字节_低位 (真, 假, 真, 假, 真, 假, 真, 假))
  48. 输出调试文本 (八位逻辑型_到字节_低位 (假, 真, 假, 真, 假, 真, 假, 真))


  49. .子程序 八位逻辑型_到字节_高位, 字节型, 公开
  50. .参数 Bit7, 逻辑型
  51. .参数 Bit6, 逻辑型
  52. .参数 Bit5, 逻辑型
  53. .参数 Bit4, 逻辑型
  54. .参数 Bit3, 逻辑型
  55. .参数 Bit2, 逻辑型
  56. .参数 Bit1, 逻辑型
  57. .参数 Bit0, 逻辑型

  58. 置入代码 ({ 83, 81, 50, 192, 180, 128, 51, 201, 235, 16, 139, 92, 141, 8, 131, 227, 1, 11, 219, 116, 2, 10, 196, 208, 236, 65, 131, 249, 8, 114, 235, 89, 91, 15, 182, 192, 201, 194, 32, 0 })
  59. ' push ebx
  60. ' push ecx
  61. ' xor al,al
  62. ' mov ah,128
  63. ' xor ecx,ecx
  64. ' .while ecx < 8
  65. ' mov ebx,[ebp+8+ecx*4]
  66. ' and ebx,1
  67. ' .if ebx
  68. ' or al,ah
  69. ' .endif
  70. ' shr ah,1
  71. ' inc ecx
  72. ' .endw
  73. ' pop ecx
  74. ' pop ebx
  75. ' movzx eax,al
  76. ' leave
  77. ' retn 32
  78. 返回 (0)

  79. .子程序 八位逻辑型_到字节_低位, 字节型, 公开
  80. .参数 Bit0, 逻辑型
  81. .参数 Bit1, 逻辑型
  82. .参数 Bit2, 逻辑型
  83. .参数 Bit3, 逻辑型
  84. .参数 Bit4, 逻辑型
  85. .参数 Bit5, 逻辑型
  86. .参数 Bit6, 逻辑型
  87. .参数 Bit7, 逻辑型

  88. 置入代码 ({ 83, 81, 50, 192, 180, 1, 51, 201, 235, 16, 139, 92, 141, 8, 131, 227, 1, 11, 219, 116, 2, 10, 196, 208, 228, 65, 131, 249, 8, 114, 235, 89, 91, 15, 182, 192, 201, 194, 32, 0 })
  89. ' push ebx
  90. ' push ecx
  91. ' xor al,al
  92. ' mov ah,1
  93. ' xor ecx,ecx
  94. ' .while ecx < 8
  95. ' mov ebx,[ebp+8+ecx*4]
  96. ' and ebx,1
  97. ' .if ebx
  98. ' or al,ah
  99. ' .endif
  100. ' shl ah,1
  101. ' inc ecx
  102. ' .endw
  103. ' pop ecx
  104. ' pop ebx
  105. ' movzx eax,al
  106. ' leave
  107. ' retn 32
  108. 返回 (0)
复制代码

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则