/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ #define RCSID3 "$Id$" /* * INTEL 8086 keywords */ { 0, R16, 0, "ax" }, { 0, R16, 1, "cx" }, { 0, R16, 2, "dx" }, { 0, R16, 3, "bx" }, { 0, R16, 4, "sp" }, { 0, R16, 5, "bp" }, { 0, R16, 6, "si" }, { 0, R16, 7, "di" }, { 0, R8, 0, "al" }, { 0, R8, 1, "cl" }, { 0, R8, 2, "dl" }, { 0, R8, 3, "bl" }, { 0, R8, 4, "ah" }, { 0, R8, 5, "ch" }, { 0, R8, 6, "dh" }, { 0, R8, 7, "bh" }, { 0, RSEG, 0, "es" }, { 0, RSEG, 1, "cs" }, { 0, RSEG, 2, "ss" }, { 0, RSEG, 3, "ds" }, { 0, PREFIX, 046, "eseg" }, { 0, PREFIX, 056, "cseg" }, { 0, PREFIX, 066, "sseg" }, { 0, PREFIX, 076, "dseg" }, { 0, PREFIX, 0360, "lock" }, { 0, PREFIX, 0363, "rep" }, { 0, PREFIX, 0362, "repne" }, { 0, PREFIX, 0362, "repnz" }, { 0, PREFIX, 0363, "repe" }, { 0, PREFIX, 0363, "repz" }, { 0, NOOP_1, 047, "daa" }, { 0, NOOP_1, 057, "das" }, { 0, NOOP_1, 067, "aaa" }, { 0, NOOP_1, 077, "aas" }, { 0, NOOP_1, 0220, "nop" }, { 0, NOOP_1, 0230, "cbw" }, { 0, NOOP_1, 0231, "cwd" }, { 0, NOOP_1, 0233, "wait" }, { 0, NOOP_1, 0234, "pushf" }, { 0, NOOP_1, 0235, "popf" }, { 0, NOOP_1, 0236, "sahf" }, { 0, NOOP_1, 0237, "lahf" }, { 0, NOOP_1, 0244, "movsb" }, { 0, NOOP_1, 0245, "movs" }, { 0, NOOP_1, 0245, "movsw" }, { 0, NOOP_1, 0246, "cmpsb" }, { 0, NOOP_1, 0247, "cmps" }, { 0, NOOP_1, 0247, "cmpsw" }, { 0, NOOP_1, 0252, "stosb" }, { 0, NOOP_1, 0253, "stos" }, { 0, NOOP_1, 0253, "stosw" }, { 0, NOOP_1, 0254, "lodsb" }, { 0, NOOP_1, 0255, "lods" }, { 0, NOOP_1, 0255, "lodsw" }, { 0, NOOP_1, 0256, "scasb" }, { 0, NOOP_1, 0257, "scas" }, { 0, NOOP_1, 0257, "scasw" }, { 0, NOOP_1, 0316, "into" }, { 0, NOOP_1, 0317, "iret" }, { 0, NOOP_1, 0327, "xlat" }, { 0, NOOP_1, 0364, "hlt" }, { 0, NOOP_1, 0365, "cmc" }, { 0, NOOP_1, 0370, "clc" }, { 0, NOOP_1, 0371, "stc" }, { 0, NOOP_1, 0372, "cli" }, { 0, NOOP_1, 0373, "sti" }, { 0, NOOP_1, 0374, "cld" }, { 0, NOOP_1, 0375, "std" }, { 0, NOOP_2, 0324+012<<8, "aam" }, { 0, NOOP_2, 0325+012<<8, "aad" }, { 0, JOP, 0340, "loopne" }, { 0, JOP, 0340, "loopnz" }, { 0, JOP, 0341, "loope" }, { 0, JOP, 0341, "loopz" }, { 0, JOP, 0342, "loop" }, { 0, JOP, 0343, "jcxz" }, { 0, JOP, 0160, "jo" }, { 0, JOP, 0161, "jno" }, { 0, JOP, 0162, "jb" }, { 0, JOP, 0162, "jc" }, { 0, JOP, 0162, "jnae" }, { 0, JOP, 0163, "jae" }, { 0, JOP, 0163, "jnb" }, { 0, JOP, 0163, "jnc" }, { 0, JOP, 0164, "je" }, { 0, JOP, 0164, "jz" }, { 0, JOP, 0165, "jne" }, { 0, JOP, 0165, "jnz" }, { 0, JOP, 0166, "jbe" }, { 0, JOP, 0166, "jna" }, { 0, JOP, 0167, "ja" }, { 0, JOP, 0167, "jnbe" }, { 0, JOP, 0170, "js" }, { 0, JOP, 0171, "jns" }, { 0, JOP, 0172, "jp" }, { 0, JOP, 0172, "jpe" }, { 0, JOP, 0173, "jnp" }, { 0, JOP, 0173, "jpo" }, { 0, JOP, 0174, "jl" }, { 0, JOP, 0174, "jnge" }, { 0, JOP, 0175, "jge" }, { 0, JOP, 0175, "jnl" }, { 0, JOP, 0176, "jle" }, { 0, JOP, 0176, "jng" }, { 0, JOP, 0177, "jg" }, { 0, JOP, 0177, "jnle" }, { 0, PUSHOP, 0, "push" }, { 0, PUSHOP, 1, "pop" }, { 0, IOOP, 0344, "inb" }, { 0, IOOP, 0345, "in" }, { 0, IOOP, 0345, "inw" }, { 0, IOOP, 0346, "outb" }, { 0, IOOP, 0347, "out" }, { 0, IOOP, 0347, "outw" }, { 0, ADDOP, 000, "addb" }, { 0, ADDOP, 001, "add" }, { 0, ADDOP, 010, "orb" }, { 0, ADDOP, 011, "or" }, { 0, ADDOP, 020, "adcb" }, { 0, ADDOP, 021, "adc" }, { 0, ADDOP, 030, "sbbb" }, { 0, ADDOP, 031, "sbb" }, { 0, ADDOP, 040, "andb" }, { 0, ADDOP, 041, "and" }, { 0, ADDOP, 050, "subb" }, { 0, ADDOP, 051, "sub" }, { 0, ADDOP, 060, "xorb" }, { 0, ADDOP, 061, "xor" }, { 0, ADDOP, 070, "cmpb" }, { 0, ADDOP, 071, "cmp" }, { 0, ROLOP, 000, "rolb" }, { 0, ROLOP, 001, "rol" }, { 0, ROLOP, 010, "rorb" }, { 0, ROLOP, 011, "ror" }, { 0, ROLOP, 020, "rclb" }, { 0, ROLOP, 021, "rcl" }, { 0, ROLOP, 030, "rcrb" }, { 0, ROLOP, 031, "rcr" }, { 0, ROLOP, 040, "salb" }, { 0, ROLOP, 040, "shlb" }, { 0, ROLOP, 041, "sal" }, { 0, ROLOP, 041, "shl" }, { 0, ROLOP, 050, "shrb" }, { 0, ROLOP, 051, "shr" }, { 0, ROLOP, 070, "sarb" }, { 0, ROLOP, 071, "sar" }, { 0, INCOP, 000, "incb" }, { 0, INCOP, 001, "inc" }, { 0, INCOP, 010, "decb" }, { 0, INCOP, 011, "dec" }, { 0, NOTOP, 020, "notb" }, { 0, NOTOP, 021, "not" }, { 0, NOTOP, 030, "negb" }, { 0, NOTOP, 031, "neg" }, { 0, NOTOP, 040, "mulb" }, { 0, NOTOP, 041, "mul" }, { 0, NOTOP, 050, "imulb" }, { 0, IMUL, 051, "imul" }, /* for 80286 */ { 0, NOTOP, 060, "divb" }, { 0, NOTOP, 061, "div" }, { 0, NOTOP, 070, "idivb" }, { 0, NOTOP, 071, "idiv" }, { 0, CALLOP, 020+(0350<<8), "call" }, { 0, CALLOP, 040+(0351<<8), "jmp" }, { 0, CALFOP, 030+(0232<<8), "callf" }, { 0, CALFOP, 050+(0352<<8), "jmpf" }, { 0, LEAOP, 0215, "lea" }, { 0, LEAOP, 0304, "les" }, { 0, LEAOP, 0305, "lds" }, { 0, ESC, 0, "esc" }, { 0, INT, 0, "int" }, { 0, RET, 0303, "ret" }, { 0, RET, 0313, "retf" }, { 0, XCHG, 0, "xchgb" }, { 0, XCHG, 1, "xchg" }, { 0, TEST, 0, "testb" }, { 0, TEST, 1, "test" }, { 0, MOV, 0, "movb" }, { 0, MOV, 1, "mov" }, { 0, MOV, 1, "movw" }, /* Intel 8087 coprocessor keywords */ { 0, ST, 0, "st" }, { 0, FNOOP, FESC+1+(0xF0<<8), "f2xm1" }, { 0, FNOOP, FESC+1+(0xE1<<8), "fabs" }, { 0, FNOOP, FESC+1+(0xE0<<8), "fchs" }, { 0, FNOOP, FESC+3+(0xE2<<8), "fclex" }, { 0, FNOOP, FESC+6+(0xD9<<8), "fcompp" }, { 0, FNOOP, FESC+1+(0xF6<<8), "fdecstp" }, { 0, FNOOP, FESC+3+(0xE1<<8), "fdisi" }, { 0, FNOOP, FESC+3+(0xE0<<8), "feni" }, { 0, FNOOP, FESC+1+(0xF7<<8), "fincstp" }, { 0, FNOOP, FESC+3+(0xE3<<8), "finit" }, { 0, FNOOP, FESC+1+(0xE8<<8), "fld1" }, { 0, FNOOP, FESC+1+(0xEA<<8), "fldl2e" }, { 0, FNOOP, FESC+1+(0xE9<<8), "fldl2t" }, { 0, FNOOP, FESC+1+(0xEC<<8), "fldlg2" }, { 0, FNOOP, FESC+1+(0xED<<8), "fldln2" }, { 0, FNOOP, FESC+1+(0xEB<<8), "fldpi" }, { 0, FNOOP, FESC+1+(0xEE<<8), "fldz" }, { 0, FNOOP, FESC+1+(0xD0<<8), "fnop" }, { 0, FNOOP, FESC+1+(0xF3<<8), "fpatan" }, { 0, FNOOP, FESC+1+(0xF8<<8), "fprem" }, { 0, FNOOP, FESC+1+(0xF2<<8), "fptan" }, { 0, FNOOP, FESC+1+(0xFC<<8), "frndint" }, { 0, FNOOP, FESC+1+(0xFD<<8), "fscale" }, { 0, FNOOP, FESC+1+(0xFA<<8), "fsqrt" }, { 0, FNOOP, FESC+7+(0xE0<<8), "fstswax" }, /* 80287 */ { 0, FNOOP, FESC+1+(0xE4<<8), "ftst" }, { 0, FNOOP, FESC+1+(0xE5<<8), "fxam" }, { 0, FNOOP, FESC+1+(0xF4<<8), "fxtract" }, { 0, FNOOP, FESC+1+(0xF1<<8), "fyl2x" }, { 0, FNOOP, FESC+1+(0xF9<<8), "fyl2pi" }, { 0, FMEM, FESC+6+(0<<11), "fiadds" }, { 0, FMEM, FESC+2+(0<<11), "fiaddl" }, { 0, FMEM, FESC+0+(0<<11), "fadds" }, { 0, FMEM, FESC+4+(0<<11), "faddd" }, { 0, FMEM, FESC+7+(4<<11), "fbld" }, { 0, FMEM, FESC+7+(6<<11), "fbstp" }, { 0, FMEM, FESC+6+(2<<11), "ficoms" }, { 0, FMEM, FESC+2+(2<<11), "ficoml" }, { 0, FMEM, FESC+0+(2<<11), "fcoms" }, { 0, FMEM, FESC+4+(2<<11), "fcomd" }, { 0, FMEM, FESC+6+(3<<11), "ficomps" }, { 0, FMEM, FESC+2+(3<<11), "ficompl" }, { 0, FMEM, FESC+0+(3<<11), "fcomps" }, { 0, FMEM, FESC+4+(3<<11), "fcompd" }, { 0, FMEM, FESC+6+(6<<11), "fidivs" }, { 0, FMEM, FESC+2+(6<<11), "fidivl" }, { 0, FMEM, FESC+0+(6<<11), "fdivs" }, { 0, FMEM, FESC+4+(6<<11), "fdivd" }, { 0, FMEM, FESC+6+(7<<11), "fidivrs" }, { 0, FMEM, FESC+2+(7<<11), "fidivrl" }, { 0, FMEM, FESC+0+(7<<11), "fdivrs" }, { 0, FMEM, FESC+4+(7<<11), "fdivrd" }, { 0, FMEM, FESC+7+(5<<11), "fildq" }, { 0, FMEM, FESC+7+(0<<11), "filds" }, { 0, FMEM, FESC+3+(0<<11), "fildl" }, { 0, FMEM, FESC+1+(0<<11), "flds" }, { 0, FMEM, FESC+5+(0<<11), "fldd" }, { 0, FMEM, FESC+3+(5<<11), "fldx" }, { 0, FMEM, FESC+1+(5<<11), "fldcw" }, { 0, FMEM, FESC+1+(4<<11), "fldenv" }, { 0, FMEM, FESC+6+(1<<11), "fimuls" }, { 0, FMEM, FESC+2+(1<<11), "fimull" }, { 0, FMEM, FESC+0+(1<<11), "fmuls" }, { 0, FMEM, FESC+4+(1<<11), "fmuld" }, { 0, FMEM, FESC+5+(4<<11), "frstor" }, { 0, FMEM, FESC+5+(6<<11), "fsave" }, { 0, FMEM, FESC+7+(2<<11), "fists" }, { 0, FMEM, FESC+3+(2<<11), "fistl" }, { 0, FMEM, FESC+1+(2<<11), "fsts" }, { 0, FMEM, FESC+5+(2<<11), "fstd" }, { 0, FMEM, FESC+7+(7<<11), "fistpq" }, { 0, FMEM, FESC+7+(3<<11), "fistps" }, { 0, FMEM, FESC+3+(3<<11), "fistpl" }, { 0, FMEM, FESC+1+(3<<11), "fstps" }, { 0, FMEM, FESC+5+(3<<11), "fstpd" }, { 0, FMEM, FESC+3+(7<<11), "fstpx" }, { 0, FMEM, FESC+1+(7<<11), "fstcw" }, { 0, FMEM, FESC+1+(6<<11), "fstenv" }, { 0, FMEM, FESC+5+(7<<11), "fstsw" }, { 0, FMEM, FESC+6+(4<<11), "fisubs" }, { 0, FMEM, FESC+2+(4<<11), "fisubl" }, { 0, FMEM, FESC+0+(4<<11), "fsubs" }, { 0, FMEM, FESC+4+(4<<11), "fsubd" }, { 0, FMEM, FESC+6+(5<<11), "fisubrs" }, { 0, FMEM, FESC+2+(5<<11), "fisubrl" }, { 0, FMEM, FESC+0+(5<<11), "fsubrs" }, { 0, FMEM, FESC+4+(5<<11), "fsubrd" }, { 0, FST_I, FESC+1+(0xC0<<8), "fld" }, { 0, FST_I, FESC+5+(0xD0<<8), "fst" }, { 0, FST_I, FESC+5+(0xC8<<8), "fstp" }, { 0, FST_I, FESC+1+(0xC8<<8), "fxch" }, { 0, FST_I, FESC+0+(0xD0<<8), "fcom" }, { 0, FST_I, FESC+0+(0xD8<<8), "fcomp" }, { 0, FST_I, FESC+5+(0xC0<<8), "ffree" }, { 0, FST_ST, FESC+0+(0xC0<<8), "fadd" }, { 0, FST_ST, FESC+2+(0xC0<<8), "faddp" }, { 0, FST_ST2, FESC+0+(0xF0<<8), "fdiv" }, { 0, FST_ST2, FESC+2+(0xF0<<8), "fdivp" }, { 0, FST_ST2, FESC+0+(0xF8<<8), "fdivr" }, { 0, FST_ST2, FESC+2+(0xF8<<8), "fdivrp" }, { 0, FST_ST, FESC+0+(0xC8<<8), "fmul" }, { 0, FST_ST, FESC+2+(0xC8<<8), "fmulp" }, { 0, FST_ST2, FESC+0+(0xE0<<8), "fsub" }, { 0, FST_ST2, FESC+2+(0xE0<<8), "fsubp" }, { 0, FST_ST2, FESC+0+(0xE8<<8), "fsubr" }, { 0, FST_ST2, FESC+2+(0xE8<<8), "fsubrp" }, /* 80286 keywords */ { 0, NOOP_1, 0140, "pusha" }, { 0, NOOP_1, 0141, "popa" }, { 0, NOOP_1, 0154, "insb" }, { 0, NOOP_1, 0155, "ins" }, { 0, NOOP_1, 0155, "insw" }, { 0, NOOP_1, 0156, "outsb" }, { 0, NOOP_1, 0157, "outs" }, { 0, NOOP_1, 0157, "outsw" }, { 0, ARPLOP, 0143, "arpl" }, { 0, ENTER, 0310, "enter" }, { 0, NOOP_1, 0311, "leave" }, { 0, LEAOP, 0142, "bound" }, { 0, NOOP_2, 017+06<<8, "clts" }, { 0, EXTOP, 0002, "lar" }, { 0, EXTOP, 0003, "lsl" }, { 0, EXTOP1, 0021, "lgdt" }, { 0, EXTOP1, 0001, "sgdt" }, { 0, EXTOP1, 0031, "lidt" }, { 0, EXTOP1, 0011, "sidt" }, { 0, EXTOP1, 0020, "lldt" }, { 0, EXTOP1, 0000, "sldt" }, { 0, EXTOP1, 0030, "ltr" }, { 0, EXTOP1, 0010, "str" }, { 0, EXTOP1, 0061, "lmsw" }, { 0, EXTOP1, 0041, "smsw" }, { 0, EXTOP1, 0050, "verw" }, { 0, EXTOP1, 0040, "verr" },