佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 639|回复: 1

C#写的Win32编译器

[复制链接]
发表于 1-6-2021 06:49 PM | 显示全部楼层 |阅读模式
本帖最后由 褐眼睛 于 1-6-2021 06:50 PM 编辑

看到吗?个人设计的程序语言:
  1. MSGBOX Hello World
复制代码
支持生成3072字节的EXE.(如图所示)

Win7.png


更多源码例子:

  1. LET b= 20
  2. b /= 2
  3. MSGBOX b
  4. b +=30
  5. b -=1
  6. MSGBOX b
  7. LET c=40
  8. c*= 22
  9. MSGBOX c   
复制代码
以上代码会被我的编译器转换成x86机器指令码:

  1. 0:  A1 04 10 40 00          MOV    EAX,DS:0X401004
  2. 5:  31 D2                   XOR    EDX,EDX
  3. 7:  BB 02 00 00 00          MOV    EBX,0X2
  4. C:  F7 FB                   IDIV   EBX
  5. E:  A3 04 10 40 00          MOV    DS:0X401004,EAX
  6. 13: A1 04 10 40 00          MOV    EAX,DS:0X401004
  7. 18: 50                      PUSH   EAX
  8. 19: 68 00 10 40 00          PUSH   0X401000
  9. 1E: 68 00 20 40 00          PUSH   0X402000
  10. 23: FF 15 88 30 40 00       CALL   DWORD PTR DS:0X403088
  11. 29: C6 05 02 20 40 00 00    MOV    BYTE PTR DS:0X402002,0X0
  12. 30: 6A 40                   PUSH   0X40
  13. 32: 68 0C 10 40 00          PUSH   0X40100C
  14. 37: 68 00 20 40 00          PUSH   0X402000
  15. 3C: 6A 00                   PUSH   0X0
  16. 3E: FF 15 84 30 40 00       CALL   DWORD PTR DS:0X403084
  17. 44: A1 04 10 40 00          MOV    EAX,DS:0X401004
  18. 49: 05 1E 00 00 00          ADD    EAX,0X1E
  19. 4E: A3 04 10 40 00          MOV    DS:0X401004,EAX
  20. 53: A1 04 10 40 00          MOV    EAX,DS:0X401004
  21. 58: 2D 01 00 00 00          SUB    EAX,0X1
  22. 5D: A3 04 10 40 00          MOV    DS:0X401004,EAX
  23. 62: A1 04 10 40 00          MOV    EAX,DS:0X401004
  24. 67: 50                      PUSH   EAX
  25. 68: 68 00 10 40 00          PUSH   0X401000
  26. 6D: 68 00 20 40 00          PUSH   0X402000
  27. 72: FF 15 88 30 40 00       CALL   DWORD PTR DS:0X403088
  28. 78: C6 05 02 20 40 00 00    MOV    BYTE PTR DS:0X402002,0X0
  29. 7F: 6A 40                   PUSH   0X40
  30. 81: 68 38 10 40 00          PUSH   0X401038
  31. 86: 68 00 20 40 00          PUSH   0X402000
  32. 8B: 6A 00                   PUSH   0X0
  33. 8D: FF 15 84 30 40 00       CALL   DWORD PTR DS:0X403084
  34. 93: A1 08 10 40 00          MOV    EAX,DS:0X401008
  35. 98: 69 C0 16 00 00 00       IMUL   EAX,0X16
  36. 9E: A3 08 10 40 00          MOV    DS:0X401008,EAX
  37. A3: A1 08 10 40 00          MOV    EAX,DS:0X401008
  38. A8: 50                      PUSH   EAX
  39. A9: 68 00 10 40 00          PUSH   0X401000
  40. AE: 68 00 20 40 00          PUSH   0X402000
  41. B3: FF 15 88 30 40 00       CALL   DWORD PTR DS:0X403088
  42. B9: C6 05 03 20 40 00 00    MOV    BYTE PTR DS:0X402003,0X0
  43. C0: 6A 40                   PUSH   0X40
  44. C2: 68 64 10 40 00          PUSH   0X401064
  45. C7: 68 00 20 40 00          PUSH   0X402000
  46. CC: 6A 00                   PUSH   0X0
  47. CE: FF 15 84 30 40 00       CALL   DWORD PTR DS:0X403084
  48. D4: 50                      PUSH   EAX
  49. D5: FF 15 60 30 40 00       CALL   DWORD PTR DS:0X403060  
复制代码
欢迎访问:http://sambalcompiler.org/



回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 26-6-2021 11:00 PM | 显示全部楼层
以下这个图片详述由Sambal Compiler所编译出的EXE文件结构:
PE.jpg

大家可以从这里下载由C#编写的Sambal Compiler: http://web.archive.org/web/20210 ... Sambal_24042021.zip


回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 20-4-2024 01:50 PM , Processed in 0.052400 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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