Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

481 lines
12 KiB

4 years ago
  1. /* asmindex.h -- include file for microsoft 80x86 assembler
  2. **
  3. ** microsoft (r) macro assembler
  4. ** copyright (c) microsoft corp 1986. all rights reserved
  5. **
  6. ** randy nevin
  7. */
  8. /* indices of opcodes */
  9. #define I_AAA 0
  10. #define I_AAD 1
  11. #define I_AAM 2
  12. #define I_AAS 3
  13. #define I_ADC 4
  14. #define I_ADD 5
  15. #define I_AND 6
  16. #define I_CALL 7
  17. #define I_CBW 8
  18. #define I_CLC 9
  19. #define I_CLD 10
  20. #define I_CLI 11
  21. #define I_CMC 12
  22. #define I_CMP 13
  23. #define I_CMPS 14
  24. #define I_CMPSB 15
  25. #define I_CMPSW 16
  26. #define I_CWD 17
  27. #define I_DAA 18
  28. #define I_DAS 19
  29. #define I_DEC 20
  30. #define I_DIV 21
  31. #define I_ESC 22
  32. #define I_HLT 23
  33. #define I_IDIV 24
  34. #define I_IMUL 25
  35. #define I_IN 26
  36. #define I_INC 27
  37. #define I_INT 28
  38. #define I_INTO 29
  39. #define I_IRET 30
  40. #define I_JA 31
  41. #define I_JAE 32
  42. #define I_JB 33
  43. #define I_JBE 34
  44. #define I_JC 35
  45. #define I_JCXZ 36
  46. #define I_JE 37
  47. #define I_JG 38
  48. #define I_JGE 39
  49. #define I_JL 40
  50. #define I_JLE 41
  51. #define I_JMP 42
  52. #define I_JNA 43
  53. #define I_JNAE 44
  54. #define I_JNB 45
  55. #define I_JNBE 46
  56. #define I_JNC 47
  57. #define I_JNE 48
  58. #define I_JNG 49
  59. #define I_JNGE 50
  60. #define I_JNL 51
  61. #define I_JNLE 52
  62. #define I_JNO 53
  63. #define I_JNP 54
  64. #define I_JNS 55
  65. #define I_JNZ 56
  66. #define I_JO 57
  67. #define I_JP 58
  68. #define I_JPE 59
  69. #define I_JPO 60
  70. #define I_JS 61
  71. #define I_JZ 62
  72. #define I_LAHF 63
  73. #define I_LEA 64
  74. #define I_LES 65
  75. #define I_LDS 66
  76. #define I_LOCK 67
  77. #define I_LODS 68
  78. #define I_LODSB 69
  79. #define I_LODSW 70
  80. #define I_LOOP 71
  81. #define I_LOOPE 72
  82. #define I_LOOPNE 73
  83. #define I_LOOPNZ 74
  84. #define I_LOOPZ 75
  85. #define I_MOV 76
  86. #define I_MOVS 77
  87. #define I_MOVSB 78
  88. #define I_MOVSW 79
  89. #define I_MUL 80
  90. #define I_NEG 81
  91. #define I_NOP 82
  92. #define I_NOT 83
  93. #define I_OR 84
  94. #define I_OUT 85
  95. #define I_POP 86
  96. #define I_POPF 87
  97. #define I_PUSH 88
  98. #define I_PUSHF 89
  99. #define I_RCL 90
  100. #define I_RCR 91
  101. #define I_REP 92
  102. #define I_REPE 93
  103. #define I_REPNE 94
  104. #define I_REPNZ 95
  105. #define I_REPZ 96
  106. #define I_RET 97
  107. #define I_ROL 98
  108. #define I_ROR 99
  109. #define I_SAHF 100
  110. #define I_SAL 101
  111. #define I_SAR 102
  112. #define I_SBB 103
  113. #define I_SCAS 104
  114. #define I_SCASB 105
  115. #define I_SCASW 106
  116. #define I_SHL 107
  117. #define I_SHR 108
  118. #define I_STC 109
  119. #define I_STD 110
  120. #define I_STI 111
  121. #define I_STOS 112
  122. #define I_STOSB 113
  123. #define I_STOSW 114
  124. #define I_SUB 115
  125. #define I_TEST 116
  126. #define I_WAIT 117
  127. #define I_XCHG 118
  128. #define I_XLAT 119
  129. #define I_XLATB 120
  130. #define I_XOR 121
  131. #define I_ARPL 122
  132. #define I_BOUND 123
  133. #define I_CLTS 124
  134. #define I_ENTER 125
  135. #define I_INS 126
  136. #define I_INSB 127
  137. #define I_INSW 128
  138. #define I_LAR 129
  139. #define I_LEAVE 130
  140. #define I_LGDT 131
  141. #define I_LIDT 132
  142. #define I_LLDT 133
  143. #define I_LMSW 134
  144. #define I_LSL 135
  145. #define I_LTR 136
  146. #define I_OUTS 137
  147. #define I_OUTSB 138
  148. #define I_OUTSW 139
  149. #define I_POPA 140
  150. #define I_PUSHA 141
  151. #define I_SGDT 142
  152. #define I_SIDT 143
  153. #define I_SLDT 144
  154. #define I_SMSW 145
  155. #define I_STR 146
  156. #define I_VERR 147
  157. #define I_VERW 148
  158. #define I_F2XM1 149
  159. #define I_FABS 150
  160. #define I_FADD 151
  161. #define I_FADDP 152
  162. #define I_FBLD 153
  163. #define I_FBSTP 154
  164. #define I_FCHS 155
  165. #define I_FCLEX 156
  166. #define I_FCOM 157
  167. #define I_FCOMP 158
  168. #define I_FCOMPP 159
  169. #define I_FDECSTP 160
  170. #define I_FDISI 161
  171. #define I_FDIV 162
  172. #define I_FDIVP 163
  173. #define I_FDIVR 164
  174. #define I_FDIVRP 165
  175. #define I_FENI 166
  176. #define I_FFREE 167
  177. #define I_FIADD 168
  178. #define I_FICOM 169
  179. #define I_FICOMP 170
  180. #define I_FIDIV 171
  181. #define I_FIDIVR 172
  182. #define I_FILD 173
  183. #define I_FIMUL 174
  184. #define I_FINCSTP 175
  185. #define I_FINIT 176
  186. #define I_FIST 177
  187. #define I_FISTP 178
  188. #define I_FISUB 179
  189. #define I_FISUBR 180
  190. #define I_FLD 181
  191. #define I_FLD1 182
  192. #define I_FLDCW 183
  193. #define I_FLDENV 184
  194. #define I_FLDL2E 185
  195. #define I_FLDL2T 186
  196. #define I_FLDLG2 187
  197. #define I_FLDLN2 188
  198. #define I_FLDPI 189
  199. #define I_FLDZ 190
  200. #define I_FMUL 191
  201. #define I_FMULP 192
  202. #define I_FNCLEX 193
  203. #define I_FNDISI 194
  204. #define I_FNENI 195
  205. #define I_FNINIT 196
  206. #define I_FNOP 197
  207. #define I_FNSAVE 198
  208. #define I_FNSTCW 199
  209. #define I_FNSTENV 200
  210. #define I_FNSTSW 201
  211. #define I_FPATAN 202
  212. #define I_FPREM 203
  213. #define I_FPTAN 204
  214. #define I_FRNDINT 205
  215. #define I_FRSTOR 206
  216. #define I_FSAVE 207
  217. #define I_FSCALE 208
  218. #define I_FSQRT 209
  219. #define I_FST 210
  220. #define I_FSTCW 211
  221. #define I_FSTENV 212
  222. #define I_FSTP 213
  223. #define I_FSTSW 214
  224. #define I_FSETPM 215
  225. #define I_FSUB 216
  226. #define I_FSUBP 217
  227. #define I_FSUBR 218
  228. #define I_FSUBRP 219
  229. #define I_FTST 220
  230. #define I_FWAIT 221
  231. #define I_FXAM 222
  232. #define I_FXCH 223
  233. #define I_FXTRACT 224
  234. #define I_FYL2X 225
  235. #define I_FYL2XP1 226
  236. #define I_FNRSTOR 227
  237. #ifdef V386
  238. #define I_MOVSX 228
  239. #define I_MOVZX 229
  240. #define I_CWDE 230
  241. #define I_CDQ 231
  242. #define I_LFS 232
  243. #define I_LGS 233
  244. #define I_LSS 234
  245. #define I_SHLD 235
  246. #define I_SHRD 236
  247. #define I_CMPSD 237
  248. #define I_INSD 238
  249. #define I_LODSD 239
  250. #define I_MOVSD 240
  251. #define I_OUTSD 241
  252. #define I_SCASD 242
  253. #define I_STOSD 243
  254. #define I_BSF 244
  255. #define I_BSR 245
  256. #define I_BT 246
  257. #define I_BTC 247
  258. #define I_BTR 248
  259. #define I_BTS 249
  260. #define I_IBTS 250
  261. #define I_XBTS 251
  262. #define I_JECXZ 252
  263. #define I_SETO 253
  264. #define I_SETNO 254
  265. #define I_SETB 255
  266. #define I_SETNAE 256
  267. #define I_SETNB 257
  268. #define I_SETAE 258
  269. #define I_SETE 259
  270. #define I_SETZ 260
  271. #define I_SETNE 261
  272. #define I_SETNZ 262
  273. #define I_SETBE 263
  274. #define I_SETNA 264
  275. #define I_SETNBE 265
  276. #define I_SETA 266
  277. #define I_SETS 267
  278. #define I_SETNS 268
  279. #define I_SETP 269
  280. #define I_SETPE 270
  281. #define I_SETNP 271
  282. #define I_SETPO 272
  283. #define I_SETL 273
  284. #define I_SETNGE 274
  285. #define I_SETC 275
  286. #define I_SETNC 276
  287. #define I_SETLE 277
  288. #define I_SETNG 278
  289. #define I_SETNL 279
  290. #define I_SETGE 280
  291. #define I_SETNLE 281
  292. #define I_SETG 282
  293. #define I_PUSHAD 283
  294. #define I_POPAD 284
  295. #define I_POPFD 285
  296. #define I_PUSHFD 286
  297. #define I_IRETD 287
  298. #define I_FUCOM 288
  299. #define I_FUCOMP 289
  300. #define I_FUCOMPP 290
  301. #define I_FPREM1 291
  302. #define I_FCOS 292
  303. #define I_FSIN 293
  304. #define I_FSINCOS 294
  305. #define I_RETN 295
  306. #define I_RETF 296
  307. #else
  308. #define I_RETN 228
  309. #define I_RETF 229
  310. #endif
  311. /* indices for size table */
  312. #define I_BYTE 0
  313. #define I_DWORD 1
  314. #define I_FAR 2
  315. #define I_NEAR 3
  316. #define I_QWORD 4
  317. #define I_TBYTE 5
  318. #define I_WORD 6
  319. #define I_FWORD 7
  320. #define I_PROC 8
  321. /* indices for first tokens */
  322. #define I_TASSUME 0
  323. #define I_TCOMMENT 1
  324. #define I_TDB 2
  325. #define I_TDD 3
  326. #define I_TDQ 4
  327. #define I_TDT 5
  328. #define I_TDW 6
  329. #define I_TELSE 7
  330. #define I_TEND 8
  331. #define I_TENDIF 9
  332. #define I_TENDM 10
  333. #define I_TERR 11
  334. #define I_TERR1 12
  335. #define I_TERR2 13
  336. #define I_TERRB 14
  337. #define I_TERRDEF 15
  338. #define I_TERRDIF 16
  339. #define I_TERRE 17
  340. #define I_TERRNZ 18
  341. #define I_TERRIDN 19
  342. #define I_TERRNB 20
  343. #define I_TERRNDEF 21
  344. #define I_TEVEN 22
  345. #define I_TEXITM 23
  346. #define I_TEXTRN 24
  347. #define I_TIF 25
  348. #define I_TIF1 26
  349. #define I_TIF2 27
  350. #define I_TIFB 28
  351. #define I_TIFDEF 29
  352. #define I_TIFDIF 30
  353. #define I_TIFE 31
  354. #define I_TIFIDN 32
  355. #define I_TIFNB 33
  356. #define I_TIFNDEF 34
  357. #define I_TINCLUDE 35
  358. #define I_TIRP 36
  359. #define I_TIRPC 37
  360. #define I_TLOCAL 38
  361. #define I_TNAME 39
  362. #define I_TORG 40
  363. #define I_TPAGE 41
  364. #define I_TPUBLIC 42
  365. #define I_TPURGE 43
  366. #define I_TREPT 44
  367. #define I_TSUBTTL 45
  368. #define I_TTITLE 46
  369. #define I_TCREF 47
  370. #define I_TLALL 48
  371. #define I_TLFCOND 49
  372. #define I_TLIST 50
  373. #define I_TRADIX 51
  374. #define I_TSALL 52
  375. #define I_TSFCOND 53
  376. #define I_TTFCOND 54
  377. #define I_TXALL 55
  378. #define I_TXCREF 56
  379. #define I_TXLIST 57
  380. #define I_TOUT 58
  381. #define I_TALIGN 59
  382. #define I_T8086 60
  383. #define I_T8087 61
  384. #define I_T287 62
  385. #define I_T186 63
  386. #define I_T286C 64
  387. #define I_T286P 65
  388. #define I_TINCLIB 66
  389. #define I_TMSTACK 67
  390. #define I_TDOSSEG 68
  391. #define I_TMODEL 69
  392. #define I_TCODE 70
  393. #define I_TDATA 71
  394. #define I_TDATAQ 72
  395. #define I_TCONST 73
  396. #define I_TFARDATA 74
  397. #define I_TFARDATAQ 75
  398. #define I_TSEQ 76
  399. #define I_TALPHA 77
  400. #define I_TCOMM 78
  401. #define I_TIFDIFI 79
  402. #define I_TIFIDNI 80
  403. #define I_TERRDIFI 81
  404. #define I_TERRIDNI 82
  405. #define I_TELSEIF 83
  406. #define I_TELSEIF1 84
  407. #define I_TELSEIF2 85
  408. #define I_TELSEIFB 86
  409. #define I_TELSEIFDEF 87
  410. #define I_TELSEIFDIF 88
  411. #define I_TELSEIFE 89
  412. #define I_TELSEIFIDN 90
  413. #define I_TELSEIFNB 91
  414. #define I_TELSEIFNDEF 92
  415. #define I_TELSEIFDIFI 93
  416. #define I_TELSEIFIDNI 94
  417. #define I_TFPO 99
  418. #ifdef V386
  419. #define I_T386C 95
  420. #define I_T386P 96
  421. #define I_T387 97
  422. #define I_TDF 98
  423. #endif
  424. /* indices for second tokens */
  425. #define I2_TDB 0
  426. #define I2_TDD 1
  427. #define I2_TDQ 2
  428. #define I2_TDT 3
  429. #define I2_TDW 4
  430. #define I2_TENDP 5
  431. #define I2_TENDS 6
  432. #define I2_TEQU 7
  433. #define I2_TSUBSTR 8
  434. #define I2_TCATSTR 9
  435. #define I2_TSIZESTR 10
  436. #define I2_TINSTR 11
  437. #define I2_TGROUP 12
  438. #define I2_TLABEL 13
  439. #define I2_TMACRO 14
  440. #define I2_TPROC 15
  441. #define I2_TRECORD 16
  442. #define I2_TSEGMENT 17
  443. #define I2_TSTRUC 18
  444. #ifdef V386
  445. #define I2_TDF 19
  446. #endif
  447. /* indices for segment attributes */
  448. #define IS_AT 0
  449. #define IS_BYTE 1
  450. #define IS_COMMON 2
  451. #define IS_MEMORY 3
  452. #define IS_PAGE 4
  453. #define IS_PARA 5
  454. #define IS_PUBLIC 6
  455. #define IS_STACK 7
  456. #define IS_WORD 8
  457. #define IS_DWORD 9
  458. #ifdef V386
  459. #define IS_USE32 10
  460. #define IS_USE16 11
  461. #endif