x86_defs.M1 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. ## Copyright (C) 2017 Jeremiah Orians
  2. ## This file is part of M2-Planet.
  3. ##
  4. ## M2-Planet is free software: you can redistribute it and/or modify
  5. ## it under the terms of the GNU General Public License as published by
  6. ## the Free Software Foundation, either version 3 of the License, or
  7. ## (at your option) any later version.
  8. ##
  9. ## M2-Planet is distributed in the hope that it will be useful,
  10. ## but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. ## GNU General Public License for more details.
  13. ##
  14. ## You should have received a copy of the GNU General Public License
  15. ## along with M2-Planet. If not, see <http://www.gnu.org/licenses/>.
  16. DEFINE ADD_IMMEDIATE_to_eax 81C0
  17. DEFINE ADD_IMMEDIATE_to_ebp 81C5
  18. DEFINE ADD_eax_to_ebx 01C3
  19. DEFINE ADD_ebp_to_eax 01E8
  20. DEFINE ADD_ebx_to_eax 01D8
  21. DEFINE AND_eax_ebx 21D8
  22. DEFINE CALL_IMMEDIATE E8
  23. DEFINE CALL_eax FFD0
  24. DEFINE CMP 39C3
  25. DEFINE COPY_eax_to_ebx 89C3
  26. DEFINE COPY_eax_to_ecx 89C1
  27. DEFINE COPY_ebp_to_eax 89E8
  28. DEFINE COPY_ebx_to_eax 89D8
  29. DEFINE COPY_ebx_to_edx 89DA
  30. DEFINE COPY_ecx_to_ebp 89CD
  31. DEFINE COPY_edi_to_ebp 89fd
  32. DEFINE COPY_esp_to_ebp 89E5
  33. DEFINE COPY_esp_to_ecx 89E1
  34. DEFINE COPY_esp_to_edi 89E7
  35. DEFINE CDTQ 99
  36. DEFINE DIVIDE_eax_by_ebx_into_eax F7F3
  37. DEFINE DIVIDES_eax_by_ebx_into_eax F7FB
  38. DEFINE INT_80 CD80
  39. DEFINE JUMP E9
  40. DEFINE JUMP_EQ 0F84
  41. DEFINE JUMP_NE 0F85
  42. DEFINE JUMP_EQ8 74
  43. DEFINE JUMP_NE8 75
  44. DEFINE LOAD_BASE_ADDRESS_eax 8D85
  45. DEFINE LOAD_BYTE 0FBE00
  46. DEFINE LOAD_EFFECTIVE_ADDRESS 8D8424
  47. DEFINE LOAD_EFFECTIVE_ADDRESS_ebx 8D9C24
  48. DEFINE LOAD_EFFECTIVE_ADDRESS_ecx 8D8C24
  49. DEFINE LOAD_EFFECTIVE_ADDRESS_edx 8D9424
  50. DEFINE LOAD_ESP_IMMEDIATE_into_eax 8B8424
  51. DEFINE LOAD_IMMEDIATE_eax B8
  52. DEFINE LOAD_IMMEDIATE_ebx BB
  53. DEFINE LOAD_IMMEDIATE_ecx B9
  54. DEFINE LOAD_IMMEDIATE_edx BA
  55. DEFINE LOAD_INTEGER 8B00
  56. DEFINE LOAD_INTEGER_ebx 8B1B
  57. DEFINE LOAD_INTEGER_ecx 8B09
  58. DEFINE LOAD_INTEGER_edx 8B12
  59. DEFINE MODULUS_eax_from_ebx_into_ebx F7F3
  60. DEFINE MODULUSS_eax_from_ebx_into_ebx F7FB
  61. DEFINE MOVEZBL 0FB6C0
  62. DEFINE MOVE_ebx_to_eax 89D8
  63. DEFINE MOVE_ecx_to_eax 89C8
  64. DEFINE MOVE_edx_to_eax 89D0
  65. DEFINE MULTIPLY_eax_by_ebx_into_eax F7EB
  66. DEFINE MULTIPLYS_eax_by_ebx_into_eax F7E3
  67. DEFINE NULL 00000000
  68. DEFINE NOT_eax F7D0
  69. DEFINE OR_eax_ebx 09D8
  70. DEFINE POP_eax 58
  71. DEFINE POP_ebx 5B
  72. DEFINE POP_ebp 5D
  73. DEFINE POP_edi 5F
  74. DEFINE PUSH_eax 50
  75. DEFINE PUSH_ebx 53
  76. DEFINE PUSH_ebp 55
  77. DEFINE PUSH_edi 57
  78. DEFINE RETURN C3
  79. DEFINE SAL_eax_Immediate8 C1E0
  80. DEFINE SHL_eax_cl D3E0
  81. DEFINE SAL_eax_cl D3F0
  82. DEFINE SHR_eax_cl D3E8
  83. DEFINE SAR_eax_cl D3F8
  84. DEFINE SETA 0F97C0
  85. DEFINE SETAE 0F93C0
  86. DEFINE SETB 0F92C0
  87. DEFINE SETBE 0F96C0
  88. DEFINE SETE 0F94C0
  89. DEFINE SETLE 0F9EC0
  90. DEFINE SETL 0F9CC0
  91. DEFINE SETGE 0F9DC0
  92. DEFINE SETG 0F9FC0
  93. DEFINE SETNE 0F95C0
  94. DEFINE STORE_CHAR 8803
  95. DEFINE STORE_INTEGER 8903
  96. DEFINE SUBTRACT_eax_from_ebx_into_ebx 29C3
  97. DEFINE TEST 85C0
  98. DEFINE XCHG_eax_ebx 93
  99. DEFINE XOR_ebx_eax_into_eax 31D8