regs.dat 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. ## --------------------------------------------------------------------------
  2. ##
  3. ## Copyright 1996-2009 The NASM Authors - All Rights Reserved
  4. ## See the file AUTHORS included with the NASM distribution for
  5. ## the specific copyright holders.
  6. ##
  7. ## Redistribution and use in source and binary forms, with or without
  8. ## modification, are permitted provided that the following
  9. ## conditions are met:
  10. ##
  11. ## * Redistributions of source code must retain the above copyright
  12. ## notice, this list of conditions and the following disclaimer.
  13. ## * Redistributions in binary form must reproduce the above
  14. ## copyright notice, this list of conditions and the following
  15. ## disclaimer in the documentation and/or other materials provided
  16. ## with the distribution.
  17. ##
  18. ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
  19. ## CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  20. ## INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  21. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  22. ## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  23. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  24. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  25. ## NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  26. ## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27. ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28. ## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  29. ## OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  30. ## EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. ##
  32. ## --------------------------------------------------------------------------
  33. #
  34. # List of registers and their classes; classes are defined in nasm.h
  35. #
  36. # The columns are:
  37. #
  38. # register name, assembler class, disassembler class(es), x86 register number[, token flag]
  39. #
  40. # If the register name ends in two numbers separated by a dash, then it is
  41. # repeated as many times as indicated, and the register number is
  42. # updated with it.
  43. #
  44. # If 'token flag' is present, this value will be assigned to tokflag field in
  45. # 'struct tokendata tokendata[]' table. Token flag can be used for specifying
  46. # special usage of corresponding register. E.g. opmask registers can be either
  47. # enclosed by curly braces or standalone operand depending on the usage.
  48. #
  49. # General-purpose registers
  50. al REG_AL reg8,reg8_rex 0
  51. ah REG_HIGH reg8 4
  52. ax REG_AX reg16 0
  53. eax REG_EAX reg32 0
  54. rax REG_RAX reg64 0
  55. bl REG8NA reg8,reg8_rex 3
  56. bh REG_HIGH reg8 7
  57. bx REG16NA reg16 3
  58. ebx REG32NA reg32 3
  59. rbx REG64NA reg64 3
  60. cl REG_CL reg8,reg8_rex 1
  61. ch REG_HIGH reg8 5
  62. cx REG_CX reg16 1
  63. ecx REG_ECX reg32 1
  64. rcx REG_RCX reg64 1
  65. dl REG_DL reg8,reg8_rex 2
  66. dh REG_HIGH reg8 6
  67. dx REG_DX reg16 2
  68. edx REG_EDX reg32 2
  69. rdx REG_RDX reg64 2
  70. spl REG8NA reg8_rex 4
  71. sp REG16NA reg16 4
  72. esp REG32NA reg32 4
  73. rsp REG64NA reg64 4
  74. bpl REG8NA reg8_rex 5
  75. bp REG16NA reg16 5
  76. ebp REG32NA reg32 5
  77. rbp REG64NA reg64 5
  78. sil REG8NA reg8_rex 6
  79. si REG16NA reg16 6
  80. esi REG32NA reg32 6
  81. rsi REG64NA reg64 6
  82. dil REG8NA reg8_rex 7
  83. di REG16NA reg16 7
  84. edi REG32NA reg32 7
  85. rdi REG64NA reg64 7
  86. r8-15b REG8NA reg8_rex 8
  87. r8-15w REG16NA reg16 8
  88. r8-15d REG32NA reg32 8
  89. r8-15 REG64NA reg64 8
  90. # Segment registers
  91. es REG_ES sreg 0
  92. cs REG_CS sreg 1
  93. ss REG_SS sreg 2
  94. ds REG_DS sreg 3
  95. fs REG_FS sreg 4
  96. gs REG_GS sreg 5
  97. segr6-7 REG_SEG67 sreg 6
  98. # Control registers
  99. cr0-15 REG_CREG creg 0
  100. # Debug registers
  101. dr0-15 REG_DREG dreg 0
  102. # Test registers
  103. tr0-7 REG_TREG treg 0
  104. # Floating-point registers
  105. st0 FPU0 fpureg 0
  106. st1-7 FPUREG fpureg 1
  107. # MMX registers
  108. mm0-7 MMXREG mmxreg 0
  109. # SSE registers
  110. xmm0 XMM0 xmmreg 0
  111. xmm1-15 XMM_L16 xmmreg 1
  112. xmm16-31 XMMREG xmmreg 16
  113. # AVX registers
  114. ymm0 YMM0 ymmreg 0
  115. ymm1-15 YMM_L16 ymmreg 1
  116. ymm16-31 YMMREG ymmreg 16
  117. # AVX512 registers
  118. zmm0 ZMM0 zmmreg 0
  119. zmm1-15 ZMM_L16 zmmreg 1
  120. zmm16-31 ZMMREG zmmreg 16
  121. # Opmask registers
  122. k0 OPMASK0 opmaskreg 0
  123. k1-7 OPMASKREG opmaskreg 1 TFLAG_BRC_OPT
  124. # Bounds registers
  125. bnd0-3 BNDREG bndreg 0