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