x86_defs.M1 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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_eax, 81C0
  17. DEFINE add_ebp, 81C5
  18. DEFINE add_ebx,eax 01C3
  19. DEFINE add_eax,ebp 01E8
  20. DEFINE add_eax,ebx 01D8
  21. DEFINE and_eax,ebx 21D8
  22. DEFINE call E8
  23. DEFINE call_eax FFD0
  24. DEFINE cmp 39C3
  25. DEFINE cdq 99
  26. DEFINE div_ebx F7F3
  27. DEFINE idiv_ebx F7FB
  28. DEFINE int CD
  29. DEFINE je 0F84
  30. DEFINE jne 0F85
  31. DEFINE jmp E9
  32. DEFINE lea_eax,[ebp+DWORD] 8D85
  33. DEFINE lea_eax,[esp+DWORD] 8D8424
  34. DEFINE lea_ebx,[esp+DWORD] 8D9C24
  35. DEFINE lea_ecx,[esp+DWORD] 8D8C24
  36. DEFINE lea_edx,[esp+DWORD] 8D9424
  37. DEFINE lea_esi,[esp+DWORD] 8DB424
  38. DEFINE lea_edi,[esp+DWORD] 8DBC24
  39. DEFINE mov_eax,[esp+DWORD] 8B8424
  40. DEFINE mov_eax,ebp 89E8
  41. DEFINE mov_eax,ebx 89D8
  42. DEFINE mov_eax,ebx 89D8
  43. DEFINE mov_eax,edx 89D0
  44. DEFINE mov_ebx,eax 89C3
  45. DEFINE mov_ecx,eax 89C1
  46. DEFINE mov_ecx,esp 89E1
  47. DEFINE mov_edi,esp 89E7
  48. DEFINE mov_ebp,edi 89fd
  49. DEFINE mov_ebp,esp 89E5
  50. DEFINE mov_eax, B8
  51. DEFINE mov_ebx, BB
  52. DEFINE mov_edx, BA
  53. DEFINE mov_eax,[eax] 8B00
  54. DEFINE mov_ebx,[ebx] 8B1B
  55. DEFINE mov_ecx,[ecx] 8B09
  56. DEFINE mov_edx,[edx] 8B12
  57. DEFINE mov_esi,[esi] 8B36
  58. DEFINE mov_edi,[edi] 8B3F
  59. DEFINE mov_[ebx],al 8803
  60. DEFINE mov_[ebx],ax 668903
  61. DEFINE mov_[ebx],eax 8903
  62. DEFINE movsx_eax,BYTE_PTR_[eax] 0FBE00
  63. DEFINE movsx_ebx,BYTE_PTR_[ebx] 0FBE1B
  64. DEFINE movsx_eax,WORD_PTR_[eax] 0FBF00
  65. DEFINE movzx_eax,BYTE_PTR_[eax] 0FB600
  66. DEFINE movzx_eax,WORD_PTR_[eax] 0FB700
  67. DEFINE movzx_eax,al 0FB6C0
  68. DEFINE mul_ebx F7E3
  69. DEFINE imul_ebx F7EB
  70. DEFINE NULL 00000000
  71. DEFINE not_eax F7D0
  72. DEFINE or_eax,ebx 09D8
  73. DEFINE pop_eax 58
  74. DEFINE pop_ebx 5B
  75. DEFINE pop_ebp 5D
  76. DEFINE pop_edi 5F
  77. DEFINE push_eax 50
  78. DEFINE push_ebx 53
  79. DEFINE push_ebp 55
  80. DEFINE push_edi 57
  81. DEFINE ret C3
  82. DEFINE sal_eax, C1E0
  83. DEFINE sal_eax,cl D3E0
  84. DEFINE shl_eax,cl D3E0
  85. DEFINE sar_eax,cl D3F8
  86. DEFINE shr_eax,cl D3E8
  87. DEFINE seta_al 0F97C0
  88. DEFINE setae_al 0F93C0
  89. DEFINE setb_al 0F92C0
  90. DEFINE setbe_al 0F96C0
  91. DEFINE sete_al 0F94C0
  92. DEFINE setle_al 0F9EC0
  93. DEFINE setl_al 0F9CC0
  94. DEFINE setge_al 0F9DC0
  95. DEFINE setg_al 0F9FC0
  96. DEFINE setne_al 0F95C0
  97. DEFINE sub_ebx,eax 29C3
  98. DEFINE test_eax,eax 85C0
  99. DEFINE xchg_ebx,eax 93
  100. DEFINE xor_eax,ebx 31D8