Annotation of coherent/b/bin/as/table.386, revision 1.1

1.1     ! root        1: + 0
        !             2: #
        !             3: # Operand production table. 
        !             4: # Productions starting with [.bB] are base types in actual tables
        !             5: # Productions starting with [!eE] are extra types used for test purposes
        !             6: # [be] are 16 bit productions [BE] are 32 bit and [.!] are both
        !             7: #
        !             8: # The first productions on the list are valid productions
        !             9: # Then there is a ? and invalid productions to test the assemblers
        !            10: # error conditions.
        !            11: #
        !            12: . r8 %al %cl %dl %bl %ah %ch %dh %bh ? 0xa $0xa
        !            13: b r16 %ax %cx %dx %bx %sp %bp %si %di ? %al 0xa $0xa
        !            14: B r32 %eax %ecx %edx %ebx %esp %ebp %esi %edi ? %al 0xa $0xa
        !            15: . rm8 r8 0x3e8 vv vd ? r16 r32 $0x64
        !            16: b rm16 r16 0x3e8 vv vd ? r8 r32 $0x64
        !            17: B rm32 r32 0x3e8 vv vd ? r16 r8 $0x64
        !            18: . m8  0x10 vv vd ? r8 $0x64
        !            19: b m16 0x3e8 vv vd ? r8 r32 $0x64
        !            20: B m32 0x3e8 vv vd ? r16 r8 $0x64
        !            21: B m64 0x3e8 vv vd ? r16 r8 $0x64
        !            22: B m80 0x3e8 vv vd ? r16 r8 $0x64
        !            23: . mem32 abc
        !            24: . mem16 abc
        !            25: . reli . abc ? al
        !            26: . rel8 . ? %al
        !            27: . rel16 abc
        !            28: . al %al ? %bl
        !            29: b ax %ax ? %bx
        !            30: B eax %eax ? %ebx
        !            31: . ds %ds
        !            32: . es %es
        !            33: . ss %ss
        !            34: . fs %fs
        !            35: . gs %gs
        !            36: . cs %cs
        !            37: . cl %cl
        !            38: . atdx (%dx)
        !            39: . moffs mem16
        !            40: . sreg %es %cs %ss %ds %fs %gs ? $0x64
        !            41: . st0 %st
        !            42: . dx %dx
        !            43: B ctlreg %cr0 %cr2 %cr3 ? %ss
        !            44: B dbreg %dr0 %dr1 %dr2 %dr3 %dr6 %dr7 ? %cr0
        !            45: B treg %tr6 %tr7 ? %ax %cr0
        !            46: B fpreg %st %st(0) %st(1) %st(2) %st(3) %st(4) %st(5) %st(6) %st(7) ? %eax
        !            47: B imm32 $0x186a0
        !            48: B imm32x $0 ? %bx
        !            49: . imm16 $0x3e8 ? $0x186a0
        !            50: . imm16x $0 ? %ax
        !            51: . imm8 $0x64 ? $0x3e8
        !            52: . imm8s $064 $-5 ? 128
        !            53: . con3 $3 ? 4
        !            54: . con1 $1 ? 5
        !            55: E va %eax %ecx %edx %ebx %esi %edi
        !            56: E vb %eax %ecx %edx %ebx %ebp %esi %edi
        !            57: E vd (va) 0x64(vb) 0x186a0(vb) (,vb,vs) (vb,vb,vs) 0x64(vb,vs) 0x3e8(vb,vb,vs) \
        !            58:  (vb,vs) (vb,vb) 0x4(vb,vb)
        !            59: E vs 0 1 2 4 8
        !            60: e vv (vx,vy) (vz) 0x64(vx,vy) 0x64(vw) 0x3e8(vx,vy) 0x3e8(vw)
        !            61: e vw %si %di %bp %bx
        !            62: e vx %bx %bp
        !            63: e vy %si %di
        !            64: e vz %si %di %bx
        !            65: #
        !            66: # The First Operand contains the following flags:
        !            67: # G    Generic opcode if given a name, no generic opcode otherwise.
        !            68: # w    Word moded instruction.
        !            69: # d    Double word moded instruction.
        !            70: # F    Floating point instruction.
        !            71: # f    Floating 9b prefix.
        !            72: # p    0F prefix.
        !            73: # a    Add register to opcode.
        !            74: # 0-8   Second byte of code goes into mod/rm location Set into groups for dis
        !            75: # i    Indefinate jump.
        !            76: # L    lock instruction.
        !            77: # l    Legal after lock instruction.
        !            78: # R    rep instruction.
        !            79: # r    Legal after rep instruction.
        !            80: # t    Special two operand imult.
        !            81: # P    use /r on document. no other use.
        !            82: # X    May have mixed word and double word operand.
        !            83: # A    Ambiguous length construction.
        !            84: #
        !            85: + 1    # Opcode table - type, hex value, opcode, operands
        !            86: G                              # opcodes with no general form
        !            87: -    0037 aaa                  # Adjust after addition
        !            88: -    d50a aad                  # Adjust AX before division
        !            89: -    d40a aam                  # Adjust AX after multiply
        !            90: -    003f aas                  # Adjust AL after subtraction
        !            91: P    0063 arpl r16 rm16        # Adjust RPL field of selector
        !            92: i    00e8 call reli            # Call Procedure
        !            93: w    0098 cbw                  # Sign extend AL
        !            94: w    0098 cbtw                 # Sign extend AL
        !            95: d    0098 cwde                 # Sign extend AX
        !            96: d    0098 cwtl                 # Sign extend AX
        !            97: -    00f8 clc                  # Clear carry
        !            98: -    00fc cld                  # Clear direction Flag
        !            99: -    00fa cli                  # Clear interrupt Flag
        !           100: p    0006 clts                 # Clear task-switched flag in CR0
        !           101: -    00f5 cmc                  # Complement carry flag
        !           102: r    00a6 cmpsb                        # Compare bytes
        !           103: wr   00a7 cmpsw                        # Compare words
        !           104: dr   00a7 cmpsl                        # Compare long
        !           105: w    0099 cwd                  # Word to double word
        !           106: w    0099 cwtd                 # Word to double word
        !           107: d    0099 cdq                  # Double word to quad word
        !           108: d    0099 cltd                 # Double word to quad word
        !           109: -    0027 daa                  # Decimal adjust after addition
        !           110: -    002f das                  # Decimal adjust after subtraction
        !           111: -    00c8 enter imm8 imm16     # Make stack frame for procedure
        !           112: F    d9f0 f2xm1                        # ST = 2 ** ST - 1
        !           113: F    d9e1 fabs                 # ST = abs(ST)
        !           114: 0F   df04 fbld m80             # Load Binary Coded Decimal
        !           115: 0F   df06 fbstp m80            # Store Binary Coded Decimal and Pop
        !           116: F    d9e0 fchs                 # Change Floating Sign
        !           117: F    ded9 fcompp               # Floating Compare and pop twice
        !           118: F    d9ff fcos                 # Cosine
        !           119: F    d9f6 fdecstp              # Decrement Stack Top Pointer
        !           120: aF   ddc0 ffree        fpreg           # Free Floating Point Register
        !           121: F    d9f7 fincstp              # Increment Stack Top Pointer
        !           122: 0F   d905 fldcw m32            # Load Floating Point Control Word
        !           123: 0F   d904 fldenv m32           # Load FPU Environment
        !           124: F    d9e8 fld1                 # Load Constant 1
        !           125: F    d9e9 fldl2t               # Load Constant log(10) base 2
        !           126: F    d9ea fldl2e               # Load Constant log(e) base 2
        !           127: F    d9eb fldpi                        # Load Constant pi
        !           128: F    d9ec fldlg2               # Load Constant log(2) base 10
        !           129: F    d9ed fldln2               # Load Constant log(2) base e
        !           130: F    d9ee fldz                 # Load Constant 0.0
        !           131: F    dbe2 fnclex               # Clear floating point exception flags no wait
        !           132: fF   dbe2 fclex                        # Clear floating point exception flags
        !           133: F    dbe3 fninit               # Initialize Floating Point Unit no wait
        !           134: fF   dbe3 finit                        # Initialize Floating Point Unit
        !           135: F    d9d0 fnop                 # No Operation
        !           136: F    d9f3 fpatan               # Partial Arctangent
        !           137: F    d9f8 fprem                        # Partial Remainder toward 0
        !           138: F    d9f5 fprem1               # Partial Remainder < 1/2 modulus
        !           139: F    d9f2 fptan                        # Partial Tangent
        !           140: F    dbf4 frstpm               # set 287XL real mode (nop for 387/486)
        !           141: F    d9fc frndint              # Round To Integer
        !           142: 0F   dd04 frstor m32           # Resore FPU State
        !           143: 0F   dd06 fnsave m32           # Store FPU State no wait
        !           144: 0fF  dd06 fsave m32            # Store FPU State
        !           145: F    d9fd fscale               # Scale
        !           146: F    dbe4 fsetpm               # set 287 protected mode (nop for 387/486)
        !           147: F    d9fe fsin                 # Sine
        !           148: F    d9fb fsincos              # Sine and Cosine
        !           149: F    d9fa fsqrt                        # Square Root
        !           150: 0F   d907 fnstcw m32           # Store Control Word no wait
        !           151: 0fF  d907 fstcw m32            # Store Control Word
        !           152: 0F   d906 fnstenv m32          # Store FPU Environment no wait
        !           153: 0fF  d906 fstenv m32           # Store FPU Environment
        !           154: F    d9e4 ftst                 # Test
        !           155: F    dae9 fucompp              # Unordered compare %st %st1 and pop twice
        !           156: F    009b fwait                        # Wait for coprocessor
        !           157: F    d9e5 fxam                 # Examine
        !           158: F    d9f4 fxtract              # Extract Exponent and Significand
        !           159: F    d9f1 fyl2x                        # %st1 * log(%st) base 2
        !           160: F    d9f9 fyl2xp1              # %st1 * log(%st + 1.0) base 2
        !           161: -    00f4 hlt                  # Halt
        !           162: d5   ff02 icall rm32           # Call indirect
        !           163: d5   ff04 ijmp rm32            # Jump indirect
        !           164: d5   ff03 ilcall m32           # Long call indirect
        !           165: d5   ff05 iljmp m32            # Long jump indirect
        !           166: -    00cc int  con3            # Interrupt 3
        !           167: -    00cd int  imm8            # Interrupt
        !           168: w    00ce into                 # Int 4 if overflow is 1
        !           169: r    006c insb                 # Input byte from port into ES:(E)DI
        !           170: r    006c insb  atdx           # Input byte from port into ES:(E)DI
        !           171: wr   006d insw                 # Input word from port into ES:(E)DI
        !           172: wr   006d insw atdx            # Input word from port into ES:(E)DI
        !           173: dr   006d insl                 # Input long from port into ES:(E)DI
        !           174: dr   006d insl atdx            # Input long from port into ES:(E)DI
        !           175: -    00cf iret                 # Interrupt return
        !           176: -    00cf iretd                        # Different mode different opcode ?
        !           177: i    7 ja      reli            # Jump if above
        !           178: i    3 jae     reli            # Jump if above or equal
        !           179: i    2 jb      reli            # Jump if below
        !           180: i    6 jbe     reli            # Jump if below or equal
        !           181: i    2 jc      reli            # Jump if carry
        !           182: i    4 je      reli            # Jump if equal
        !           183: i    4 jz      reli            # Jump if zero
        !           184: i    f jg      reli            # Jump if greater
        !           185: i    d jge     reli            # Jump if greater or equal
        !           186: i    c jl      reli            # Jump if less
        !           187: i    e jle     reli            # Jump if less or equal
        !           188: i    6 jna     reli            # Jump if not above
        !           189: i    2 jnae    reli            # Jump if not above or equal
        !           190: i    3 jnb     reli            # Jump if not below
        !           191: i    7 jnbe    reli            # Jump if not below or equal
        !           192: i    3 jnc     reli            # Jump if no carry
        !           193: i    5 jne     reli            # Jump if not equal
        !           194: i    e jng     reli            # Jump if not greater
        !           195: i    c jnge    reli            # Jump if not greater or equal
        !           196: i    d jnl     reli            # Jump if not less
        !           197: i    f jnle    reli            # Jump if not less or equal
        !           198: i    1 jno     reli            # Jump if not overflow
        !           199: i    b jnp     reli            # Jump if not parity
        !           200: i    9 jns     reli            # Jump if not sign
        !           201: i    5 jnz     reli            # Jump if not zero
        !           202: i    0 jo      reli            # Jump if overflow
        !           203: i    a jp      reli            # Jump if parity
        !           204: i    a jpe     reli            # Jump if parity even
        !           205: i    b jpo     reli            # Jump if parity odd
        !           206: i    8 js      reli            # Jump if sign
        !           207: i    4 jz      reli            # Jump if zero
        !           208: i    e9 jmp    reli            # Jump absolute
        !           209: #
        !           210: -    00e3 jcxz rel8            # Jump if CX is zero
        !           211: -    00e3 jecxz        rel8            # Jump if CX is zero
        !           212: #
        !           213: -    009f lahf                 # Load flags into AH register
        !           214: d    009a lcall imm16x imm32   # Long call
        !           215: d    00ea ljmp imm16x imm32    # Long jump
        !           216: -    00c9 leave                        # High level procedure exit
        !           217: p6   0002 lldt rm16            # Load local descriptor table register
        !           218: p7   0106 lmsw rm16            # Load machine status word
        !           219: L    00f0 lock                 # Assert lock signal for next instruction
        !           220: r    00ac lodsb                        # Load string operand byte
        !           221: wr   00ad lodsw                        # Load string operand word
        !           222: dr   00ad lodsl                        # Load string operand long
        !           223: -    00e2 loop rel8            # Dec count jmp if count <> 0
        !           224: -    00e1 loope        rel8            # Dec count jmp if count <> 0 and ZF = 1
        !           225: -    00e1 loopz        rel8            # Dec count jmp if count <> 0 and ZF = 1
        !           226: -    00e0 loopne rel8          # Dec count jmp if count <> 0 and ZF = 0
        !           227: -    00e0 loopnz rel8          # Dec count jmp if count <> 0 and ZF = 0
        !           228: p6   0003 ltr  rm16            # Load task register
        !           229: r    00a4 movsb                        # Move bytes
        !           230: wr   00a5 movsw                        # Move words
        !           231: dr   00a5 movsl                        # Move longs
        !           232: -    0090 nop                  # No operation
        !           233: r    006e outsb                        # Output byte to port into ES:(E)DI
        !           234: wr   006f outsw                        # Output word to port into ES:(E)DI
        !           235: dr   006f outsl                        # Output long to port into ES:(E)DI
        !           236: R    00f3 rep                  # rep following instruction CX times
        !           237: R    00f3 repe                 # repe following instruction CX times or eq
        !           238: R    00f3 repz                 # alternate name for repe
        !           239: R    00f2 repne                        # repne following instruction CX times or ne
        !           240: R    00f2 repnz                        # alternate name for repnz
        !           241: -    00c3 ret                  # Return
        !           242: -    00c2 ret  imm16           # Return pop imm16 bytes of parms
        !           243: -    00cb lret                 # Far return
        !           244: -    00ca lret imm16           # Far return pop imm16 bytes of parms
        !           245: -    009e sahf                 # Store AH into flags
        !           246: r    00ae scasb                        # Compare string bytes
        !           247: dr   00af scasl                        # Compare string longs
        !           248: wr   00af scasw                        # Compare string words
        !           249: #
        !           250: p    0097 seta rm8             # Set byte if above
        !           251: p    0093 setae        rm8             # Set byte if above or equal
        !           252: p    0092 setb rm8             # Set byte if below
        !           253: p    0096 setbe        rm8             # Set byte if below or equal
        !           254: p    0092 setc rm8             # Set byte if carry
        !           255: p    0094 sete rm8             # Set byte if equal
        !           256: p    0094 setz rm8             # Set byte if zero
        !           257: p    009f setg rm8             # Set byte if greater
        !           258: p    009d setge        rm8             # Set byte if greater or equal
        !           259: p    009c setl rm8             # Set byte if less
        !           260: p    009e setle        rm8             # Set byte if less or equal
        !           261: p    0096 setna        rm8             # Set byte if not above
        !           262: p    0092 setnae rm8           # Set byte if not above or equal
        !           263: p    0093 setnb        rm8             # Set byte if not below
        !           264: p    0097 setnbe rm8           # Set byte if not below or equal
        !           265: p    0093 setnc        rm8             # Set byte if no carry
        !           266: p    0095 setne        rm8             # Set byte if not equal
        !           267: p    009e setng        rm8             # Set byte if not greater
        !           268: p    009c setnge rm8           # Set byte if not greater or equal
        !           269: p    009d setnl        rm8             # Set byte if not less
        !           270: p    009f setnle rm8           # Set byte if not less or equal
        !           271: p    0091 setno        rm8             # Set byte if not overflow
        !           272: p    009b setnp        rm8             # Set byte if not parity
        !           273: p    0099 setns        rm8             # Set byte if not sign
        !           274: p    0095 setnz        rm8             # Set byte if not zero
        !           275: p    0090 seto rm8             # Set byte if overflow
        !           276: p    009a setp rm8             # Set byte if parity
        !           277: p    009a setpe        rm8             # Set byte if parity even
        !           278: p    009b setpo        rm8             # Set byte if parity odd
        !           279: p    0098 sets rm8             # Set byte if sign
        !           280: p    0094 setz rm8             # Set byte if zero
        !           281: #
        !           282: p7   0100 sgdt mem32           # Store gdtr
        !           283: p7   0101 sidt mem32           # Store idtr
        !           284: p6   0000 sldt rm16            # Store ldtr to EA word
        !           285: p7   0104 smsw rm16            # Store machine status to EA word
        !           286: -    00f9 stc                  # Set carry flag
        !           287: -    00fd std                  # Clear direction flag
        !           288: -    00fb sti                  # Set interrupt flag
        !           289: r    00aa stosb                        # Store string byte
        !           290: wr   00ab stosw                        # Store string word
        !           291: dr   00ab stosl                        # Store string long
        !           292: p6   0001 str                  # Store task register
        !           293: p6   0004 verr  rm16           # Verify segment for read
        !           294: p6   0005 verw rm16            # Verify segment for write
        !           295: -    009b wait                 # Wait for coprocessor
        !           296: -    00d7 xlat                 # Table lookup translation
        !           297: -    00d7 xlatb                        # Table lookup translation
        !           298: G      adc     # Add with carry
        !           299: A1l  8302 adc  imm8s m32
        !           300: d1l  8302 adcl imm8s rm32
        !           301: w1l  8302 adcw imm8s rm16
        !           302: -    0014 adcb imm8 al
        !           303: w    0015 adcw imm16 ax
        !           304: d    0015 adcl imm32 eax
        !           305: d    0015 adcl imm32 
        !           306: 1l   8002 adcb imm8 rm8
        !           307: w1l  8102 adcw imm16 rm16
        !           308: d1l  8102 adcl imm32 rm32
        !           309: lP   0012 adcb rm8 r8
        !           310: wlP  0013 adcw rm16 r16
        !           311: dlP  0013 adcl rm32 r32
        !           312: lP   0010 adcb r8 rm8
        !           313: wlP  0011 adcw r16 rm16
        !           314: dlP  0011 adcl r32 rm32
        !           315: G      add     # Add
        !           316: A1l  8300 add  imm8s m32
        !           317: d1l  8300 addl imm8s rm32
        !           318: w1l  8300 addw imm8s rm16
        !           319: l    0004 addb imm8 al
        !           320: wl   0005 addw imm16 ax
        !           321: dl   0005 addl imm32 eax
        !           322: dl   0005 addl imm32
        !           323: 1l   8000 addb imm8 rm8
        !           324: w1l  8100 addw imm16 rm16
        !           325: d1l  8100 addl imm32 rm32
        !           326: lP   0002 addb rm8 r8
        !           327: wlP  0003 addw rm16 r16
        !           328: dlP  0003 addl rm32 r32
        !           329: lP   0000 addb r8 rm8
        !           330: wlP  0001 addw r16 rm16
        !           331: dlP  0001 addl r32 rm32
        !           332: G      and     # Logical AND
        !           333: A1l  8304 and  imm8s m32
        !           334: d1l  8304 andl imm8s rm32
        !           335: w1l  8304 andw imm8s rm16
        !           336: l    0024 andb imm8 al
        !           337: wl   0025 andw imm16 ax
        !           338: dl   0025 andl imm32 eax
        !           339: dl   0025 andl imm32
        !           340: 1l   8004 andb imm8 rm8
        !           341: w1l  8104 andw imm16 rm16
        !           342: d1l  8104 andl imm32 rm32
        !           343: lP   0022 andb rm8 r8
        !           344: wlP  0023 andw rm16 r16
        !           345: dlP  0023 andl rm32 r32
        !           346: lP   0020 andb r8 rm8
        !           347: wlP  0021 andw r16 rm16
        !           348: dlP  0021 andl r32 rm32
        !           349: G      bound           # Check if register is within bounds
        !           350: wP   0062 boundw       m16 r16
        !           351: dP   0062 boundl       m32 r32
        !           352: G      bsf             # Bit scan forward
        !           353: wp   00bc bsfw rm16 r16
        !           354: dp   00bc bsfl rm32 r32
        !           355: G      bsr             # Bit scan reverse
        !           356: wp   00bd bsrw rm16 r16
        !           357: dp   00bd bsrl rm32 r32
        !           358: G      bt              # Save bit in carry flag
        !           359: wp   00a3 btw  r16 rm16
        !           360: dp   00a3 btl  r32 rm32
        !           361: wp8  ba04 btw  imm8 rm16
        !           362: dp8  ba04 btl  imm8 rm32
        !           363: G      btc             # Bit test and complement
        !           364: wpl  00bb btcw r16 rm16
        !           365: dpl  00bb btcl r32 rm32
        !           366: wp8l ba07 btcw imm8 rm16
        !           367: dp8l ba07 btcl imm8 rm32
        !           368: G      btr             # Bit test and reset
        !           369: wpl  00b3 btrw r16 rm16
        !           370: dpl  00b3 btrl r32 rm32
        !           371: wp8l ba06 btrw imm8 rm16
        !           372: dp8l ba06 btrl imm8 rm32
        !           373: G      bts             # Bit test and set
        !           374: wpl  00ab btsw r16 rm16
        !           375: dpl  00ab btsl r32 rm32
        !           376: wp8l ba05 btsw imm8 rm16
        !           377: dp8l ba05 btsl imm8 rm32
        !           378: G      cmp             # Compare
        !           379: A1   8307 cmp  imm8s m32
        !           380: d1   8307 cmpl imm8s rm32
        !           381: w1   8307 cmpw imm8s rm16
        !           382: -    003c cmpb imm8 al
        !           383: w    003d cmpw imm16 ax
        !           384: d    003d cmpl imm32 eax
        !           385: d    003d cmpl imm32
        !           386: 1    8007 cmpb imm8 rm8
        !           387: w1   8107 cmpw imm16 rm16
        !           388: d1   8107 cmpl imm32 rm32
        !           389: P    003a cmpb rm8 r8
        !           390: wP   003b cmpw rm16 r16
        !           391: dP   003b cmpl rm32 r32
        !           392: P    0038 cmpb r8 rm8
        !           393: wP   0039 cmpw r16 rm16
        !           394: dP   0039 cmpl r32 rm32
        !           395: G      dec             # Decrement by 1
        !           396: A5l  ff01 dec  m32
        !           397: wa   0048 decw r16
        !           398: da   0048 decl r32
        !           399: 4l   fe01 decb rm8
        !           400: w5l  ff01 decw rm16
        !           401: d5l  ff01 decl rm32
        !           402: G      div             # Unsigned divide
        !           403: A3   f706 div  m32
        !           404: 3    f606 divb rm8 al
        !           405: 3    f606 divb rm8
        !           406: w3   f706 divw rm16 ax
        !           407: w3   f706 divw rm16
        !           408: d3   f706 divl rm32 eax
        !           409: d3   f706 divl rm32
        !           410: G      fadd            # Floating add
        !           411: A0F  d800 fadd  m32
        !           412: 0F   d800 fadds  m32
        !           413: 0F   dc00 faddl  m64
        !           414: aF   d8c0 fadd  fpreg st0
        !           415: aF   d8c0 fadd  fpreg
        !           416: F    dec1 fadd
        !           417: aF   dcc0 fadd  st0 fpreg
        !           418: G      faddp           # Floating add and pop
        !           419: aF   dec0 faddp  st0 fpreg
        !           420: aF   dec0 faddp  fpreg
        !           421: F    dec1 faddp
        !           422: G      fcom            # Floating Compare
        !           423: A0F  d802 fcom   m32
        !           424: 0F   d802 fcoms  m32
        !           425: 0F   dc02 fcoml  m64
        !           426: aF   d8d0 fcom  fpreg st0
        !           427: aF   d8d0 fcom  fpreg
        !           428: F    d8d1 fcom
        !           429: G      fcomp           # Floating Compare and Pop
        !           430: A0F  d803 fcomp  m32
        !           431: 0F   d803 fcomps m32
        !           432: 0F   dc03 fcompl m64
        !           433: aF   d8d8 fcomp  fpreg
        !           434: F    d8d9 fcomp
        !           435: G      fdiv            # Floating divide
        !           436: A0F  d806 fdiv   m32
        !           437: 0F   d806 fdivs  m32
        !           438: 0F   dc06 fdivl  m64
        !           439: aF   d8f0 fdiv  fpreg st0
        !           440: aF   d8f0 fdiv  fpreg
        !           441: F    def1 fdiv
        !           442: aF   dcf0 fdiv  st0 fpreg
        !           443: G      fdivp           # Floating divide and pop
        !           444: aF   def0 fdivp  st0 fpreg
        !           445: aF   def0 fdivp  fpreg
        !           446: F    def1 fdivp
        !           447: G      fdivr           # Reverse floating divide
        !           448: A0F  d807 fdivr   m32
        !           449: 0F   d807 fdivrs  m32
        !           450: 0F   dc07 fdivrl  m64
        !           451: aF   d8f8 fdivr         fpreg st0
        !           452: aF   d8f8 fdivr         fpreg
        !           453: F    def9 fdivr
        !           454: aF   dcf8 fdivr         st0 fpreg
        !           455: G      fdivrp          # Reverse floating divide and pop
        !           456: aF   def8 fdivrp  st0 fpreg
        !           457: aF   def8 fdivrp  fpreg
        !           458: F    def9 fdivrp
        !           459: G      fiadd           # Add integer to float
        !           460: A0F  da00 fiadd  m32
        !           461: 0F   da00 fiaddl m32
        !           462: 0F   de00 fiadds m16
        !           463: G      ficom           # Compare float to integer
        !           464: A0F  da02 ficom  m32
        !           465: 0F   da02 ficoml m32
        !           466: 0F   de02 ficoms m16
        !           467: G      ficomp          # Compare float to integer and pop
        !           468: A0F  da03 ficomp  m32
        !           469: 0F   da03 ficompl m32
        !           470: 0F   de03 ficomps m16
        !           471: G      fidiv           # Divide float by integer
        !           472: A0F  da06 fidiv  m32
        !           473: 0F   da06 fidivl m32
        !           474: 0F   de06 fidivs m16
        !           475: G      fidivr          # Reverse divide integer by float
        !           476: A0F  da07 fidivr  m32
        !           477: 0F   da07 fidivrl m32
        !           478: 0F   de07 fidivrs m16
        !           479: G      fild            # Load integer
        !           480: A0F  db00 fild  m32
        !           481: 0F   db00 fildl  m32
        !           482: 0F   df00 filds         m16
        !           483: 0F   df05 fildll m64
        !           484: G      fimul           # Multiply integer to float
        !           485: A0F  da01 fimul  m32
        !           486: 0F   da01 fimull m32
        !           487: 0F   de01 fimuls m16
        !           488: G      fist            # Store integer
        !           489: A0F  db02 fist  m32
        !           490: 0F   db02 fistl  m32
        !           491: 0F   df02 fists         m16
        !           492: G      fistp           # Store integer and pop
        !           493: A0F  db03 fistp   m32
        !           494: 0F   db03 fistpl  m32
        !           495: 0F   df03 fistps  m16
        !           496: 0F   df07 fistpll m32
        !           497: G      fisub           # Subtract integer from float
        !           498: A0F  da04 fisub         m32
        !           499: 0F   da04 fisubl m32
        !           500: 0F   de04 fisubs m16
        !           501: G      fisubr          # Reverse subtract integer from float
        !           502: A0F  da05 fisubr  m32
        !           503: 0F   da05 fisubrl m32
        !           504: 0F   de05 fisubrs m16
        !           505: G      fld             # Load Real
        !           506: A0F  d900 fld   m32
        !           507: aF   d9c0 fld   fpreg
        !           508: 0F   d900 flds   m32
        !           509: 0F   dd00 fldl  m32
        !           510: 0F   db05 fldt   m64
        !           511: G      fmul            # Floating multiply
        !           512: A0F  d801 fmul   m32
        !           513: 0F   d801 fmuls  m32
        !           514: 0F   dc01 fmull  m64
        !           515: aF   d8c8 fmul  fpreg st0
        !           516: aF   d8c8 fmul  fpreg
        !           517: F    dec9 fmul
        !           518: aF   dcc8 fmul  st0 fpreg
        !           519: G      fmulp           # Floating multiply and pop
        !           520: aF   dec8 fmulp  st0 fpreg
        !           521: aF   dec8 fmulp  fpreg
        !           522: F    dec9 fmulp
        !           523: G      fst             # Store Real
        !           524: A0F  d902 fst    m32
        !           525: aF   ddd0 fst   fpreg
        !           526: 0F   d902 fsts   m32
        !           527: 0F   dd02 fstl  m64
        !           528: G      fstp            # Store Real and pop
        !           529: A0F  d903 fstp  m32
        !           530: aF   ddd8 fstp  fpreg
        !           531: 0F   d903 fstps  m32
        !           532: 0F   dd03 fstpl         m64
        !           533: 0F   db07 fstpt  m80
        !           534: G      fnstsw          # Store Status Word no wait
        !           535: 0F  dd07 fnstsw m16
        !           536: F   dfe0 fnstsw ax
        !           537: G      fstsw           # Store Status Word
        !           538: 0fF  dd07 fstsw m16
        !           539: fF   dfe0 fstsw ax
        !           540: G      fsub            # Floating subtract
        !           541: A0F  d804 fsub   m32
        !           542: 0F   d804 fsubs  m32
        !           543: 0F   dc04 fsubl  m64
        !           544: aF   d8e0 fsub  fpreg st0
        !           545: aF   d8e0 fsub  fpreg
        !           546: F    dee1 fsub
        !           547: aF   dce0 fsub  st0 fpreg
        !           548: G      fsubp           # Floating subtract and pop
        !           549: aF   dee0 fsubp  st0 fpreg
        !           550: aF   dee0 fsubp  fpreg
        !           551: F    dee1 fsubp
        !           552: G      fsubr           # Reverse floating subtract
        !           553: A0F  d805 fsubr          m32
        !           554: 0F   d805 fsubrs  m32
        !           555: 0F   dc05 fsubrl  m64
        !           556: aF   d8e8 fsubr         fpreg st0
        !           557: aF   d8e8 fsubr         fpreg
        !           558: F    dee9 fsubr
        !           559: aF   dce8 fsubr         st0 fpreg
        !           560: G      fsubrp          # Reverse floating subtract and pop
        !           561: aF   dee8 fsubrp  st0 fpreg
        !           562: aF   dee8 fsubrp  fpreg
        !           563: F    dee9 fsubrp
        !           564: G      fucom           # Unordered compare real
        !           565: aF   dde0 fucom        st0 fpreg
        !           566: aF   dde0 fucom fpreg
        !           567: F    dde1 fucom
        !           568: G      fucomp          # Unordered compare real and pop
        !           569: aF   dde8 fucomp st0 fpreg
        !           570: aF   dde8 fucomp fpreg
        !           571: F    dde9 fucomp
        !           572: G      fxch            # Floating exchange
        !           573: aF   d9c8 fxch  st0 fpreg
        !           574: aF   d9c8 fxch  fpreg st0
        !           575: aF   d9c8 fxch  fpreg
        !           576: F    d9c9 fxch
        !           577: G      idiv            # Signed divide
        !           578: A3   f707 idiv m32
        !           579: 3    f607 idivb        rm8 al
        !           580: 3    f607 idivb        rm8
        !           581: w3   f707 idivw        rm16 ax
        !           582: w3   f707 idivw        rm16
        !           583: d3   f707 idivl        rm32 eax
        !           584: d3   f707 idivl        rm32
        !           585: G      imul            # Signed multiply
        !           586: 3    f605 imulb        rm8
        !           587: w3   f705 imulw        rm16
        !           588: d3   f705 imull        rm32
        !           589: wpP  00af imulw        rm16 r16
        !           590: dpP  00af imull        rm32 r32
        !           591: w    006b imulw        imm8s rm16 r16
        !           592: d    006b imull        imm8s rm32 r32
        !           593: wtP  006b imulw        imm8s r16
        !           594: dtP  006b imull        imm8s r32
        !           595: w    0069 imulw        imm16 rm16 r16
        !           596: d    0069 imull        imm32 rm32 r32
        !           597: wtP  0069 imulw        imm16 r16
        !           598: dtP  0069 imull        imm32 r32
        !           599: G      in              # Input from port
        !           600: -    00ec in   dx al
        !           601: w    00ed in   dx ax
        !           602: d    00ed in   dx eax
        !           603: -    00e4 inb  imm8
        !           604: w    00e5 inw  imm8
        !           605: d    00e5 inl  imm8
        !           606: -    00ec inb  atdx
        !           607: w    00ed inw  atdx
        !           608: d    00ed inl  atdx
        !           609: G      inc             # Increment by one
        !           610: A5l  ff00 inc  m32
        !           611: wa   0040 incw r16
        !           612: da   0040 incl r32
        !           613: 4l   fe00 incb rm8
        !           614: w5l  ff00 incw rm16
        !           615: d5l  ff00 incl rm32
        !           616: G      lar             # Load access rights byte
        !           617: wpP  0002 larw rm16 r16
        !           618: dpP  0002 larl rm32 r32
        !           619: G      lea             # Load effective address
        !           620: wP   008d leaw m16 r16
        !           621: dP   008d leal m32 r32
        !           622: G      lgdt            # Load m into DGTR
        !           623: wp7  0102 lgdtw        m16
        !           624: dp7  0102 lgdtl        m32
        !           625: G      lidt            # Load m into IDTR
        !           626: wp7  0103 lidtw        m16
        !           627: dp7  0103 lidtl        m32
        !           628: G      lds             # load full pointer DS:r16
        !           629: wP   00c5 ldsw m16 r16
        !           630: dP   00c5 ldsl m32 r32
        !           631: G      lss             # Load full pointer SS:r16
        !           632: wpP  00b2 lssw m16 r16
        !           633: dpP  00b2 lssl m32 r32
        !           634: G      les             # Load full pointer ES:r16
        !           635: wP   00c4 lesw m16 r16
        !           636: dP   00c4 lesl m32 r32
        !           637: G      lfs             # Load full pointer FS:r16
        !           638: wpP  00b4 lfsw m16 r16
        !           639: dpP  00b4 lfsl m32 r32
        !           640: G      lgs             # Load full pointer GS:r16
        !           641: wpP  00b5 lgsw m16 r16
        !           642: dpP  00b5 lgsl m32 r32
        !           643: G      lsl             # Load segment limit
        !           644: wpP  0003 lslw rm16 r16
        !           645: dpP  0003 lsll rm32 r32
        !           646: G      mov             # Move data
        !           647: A    00c6 mov  imm8 m32
        !           648: -    00a0 movb moffs al
        !           649: w    00a1 movw moffs ax
        !           650: d    00a1 movl moffs eax
        !           651: -    00a2 movb al moffs
        !           652: w    00a3 movw ax moffs
        !           653: d    00a3 movl eax moffs
        !           654: P    008a movb rm8 r8
        !           655: wP   008b movw rm16 r16
        !           656: dP   008b movl rm32 r32
        !           657: P    0088 movb r8 rm8
        !           658: wP   0089 movw r16 rm16
        !           659: dP   0089 movl r32 rm32
        !           660: P    008c movw sreg rm16
        !           661: P    008e movw rm16 sreg
        !           662: a    00b0 movb imm8 r8
        !           663: wa   00b8 movw imm16 r16
        !           664: da   00b8 movl imm32 r32
        !           665: -    00c6 movb imm8 rm8
        !           666: w    00c7 movw imm16 rm16
        !           667: d    00c7 movl imm32 rm32
        !           668: dpP  0020 movl ctlreg r32
        !           669: dpP  0022 movl r32 ctlreg
        !           670: dpP  0021 movl dbreg r32
        !           671: dpP  0023 movl r32 dbreg
        !           672: dpP  0024 movl treg r32
        !           673: dpP  0026 movl r32 treg
        !           674: G      movsx                   # Move with sign extend
        !           675: AdpP 00be movsx  m8 r32
        !           676: wpP  00be movsxb rm8 r16
        !           677: dpP  00be movsxb rm8 r32
        !           678: dpXP 00bf movsxw rm16 r32
        !           679: wpP  00be movsbw rm8 r16
        !           680: dpP  00be movsbl rm8 r32
        !           681: dpXP 00bf movswl rm16 r32
        !           682: G      movzx                   # Move with zero extend
        !           683: AdpP 00b6 movzx         m8 r32
        !           684: wpP  00b6 movzxb rm8 r16
        !           685: dpP  00b6 movzxb rm8 r32
        !           686: dpXP 00b7 movzxw rm16 r32
        !           687: wpP  00b6 movzbw rm8 r16
        !           688: dpP  00b6 movzbl rm8 r32
        !           689: dpXP 00b7 movzwl rm16 r32
        !           690: G      mul                     # Unsigned multiply
        !           691: A3   f704 mul  m32
        !           692: 3    f604 mulb rm8 al
        !           693: 3    f604 mulb rm8
        !           694: w3   f704 mulw rm16 ax
        !           695: w3   f704 mulw rm16
        !           696: d3   f704 mull rm32 eax
        !           697: d3   f704 mull rm32
        !           698: G      neg             # Negate
        !           699: A3l  f703 neg  m32
        !           700: 3l   f603 negb rm8
        !           701: w3l  f703 negw rm16
        !           702: d3l  f703 negl rm32
        !           703: G      not             # Invert bits
        !           704: A3l  f702 not  m32
        !           705: 3l   f602 notb rm8
        !           706: w3l  f702 notw rm16
        !           707: d3l  f702 notl rm32
        !           708: G      or      # Logical inclusive OR
        !           709: A1l  8301 or   imm8s m32
        !           710: d1l  8301 orl  imm8s rm32
        !           711: w1l  8301 orw  imm8s rm16
        !           712: l    000c orb  imm8 al
        !           713: wl   000d orw  imm16 ax
        !           714: dl   000d orl  imm32 eax
        !           715: dl   000d orl  imm32
        !           716: 1l   8001 orb  imm8 rm8
        !           717: w1l  8101 orw  imm16 rm16
        !           718: d1l  8101 orl  imm32 rm32
        !           719: lP   000a orb  rm8 r8
        !           720: wlP  000b orw  rm16 r16
        !           721: dlP  000b orl  rm32 r32
        !           722: lP   0008 orb  r8 rm8
        !           723: wlP  0009 orw  r16 rm16
        !           724: dlP  0009 orl  r32 rm32
        !           725: G      out             # Output from port
        !           726: -    00e6 outb imm8
        !           727: w    00e7 outw imm8
        !           728: d    00e7 outl imm8
        !           729: -    00ee outb atdx
        !           730: w    00ef outw atdx
        !           731: d    00ef outl atdx
        !           732: -    00ee out  al dx
        !           733: w    00ef out  ax dx
        !           734: d    00ef out  eax dx
        !           735: G      pop             # Pop a word from the stack
        !           736: wa   0058 popw r16
        !           737: da   0058 popl r32
        !           738: -    001f popw ds
        !           739: -    0007 popw es
        !           740: -    0017 popw ss
        !           741: p    00a1 popw fs
        !           742: p    00a9 popw gs
        !           743: w8   8f00 popw m16
        !           744: d8   8f00 popl m32
        !           745: G      popa                    # Pop all
        !           746: w    0061 popaw
        !           747: d    0061 popal
        !           748: G      popf                    # Pop stack into flags
        !           749: w    009d popfw
        !           750: d    009d popfl
        !           751: G      push            # Push a word on the stack
        !           752: wa   0050 pushw        r16
        !           753: da   0050 pushl        r32
        !           754: -    006a pushb        imm8s
        !           755: w    0068 pushw        imm16
        !           756: d    0068 pushl        imm32
        !           757: -    000e pushw        cs
        !           758: -    001e pushw        ds
        !           759: -    0006 pushw        es
        !           760: -    0016 pushw        ss
        !           761: p    00a0 pushw        fs
        !           762: p    00a8 pushw        gs
        !           763: w5   ff06 pushw        m16
        !           764: d5   ff06 pushl        m32
        !           765: G      pusha           # Push all
        !           766: w    0060 pushaw
        !           767: d    0060 pushal
        !           768: G      pushf           # Push flags
        !           769: w    009c pushfw
        !           770: d    009c pushfl
        !           771: G      rcl             # Rotate carry left
        !           772: A2   d102 rcl  con1 m32
        !           773: A2   d102 rcl  m32
        !           774: A2   d302 rcl  cl m32
        !           775: A2   c102 rcl  imm8 m32
        !           776: 2    d002 rclb con1 rm8
        !           777: 2    d002 rclb rm8
        !           778: 2    d202 rclb cl rm8
        !           779: 2    c002 rclb imm8 rm8
        !           780: w2   d102 rclw con1 rm16
        !           781: w2   d102 rclw rm16
        !           782: w2   d302 rclw cl rm16
        !           783: w2   c102 rclw imm8 rm16
        !           784: d2   d102 rcll con1 rm32
        !           785: d2   d102 rcll rm32
        !           786: d2   d302 rcll cl rm32
        !           787: d2   c102 rcll imm8 rm32
        !           788: G      rcr             # Rotate carry right
        !           789: A2   d103 rcr  con1 m32
        !           790: A2   d103 rcr  m32
        !           791: A2   d303 rcr  cl m32
        !           792: A2   c103 rcr  imm8 m32
        !           793: 2    d003 rcrb con1 rm8
        !           794: 2    d003 rcrb rm8
        !           795: 2    d203 rcrb cl rm8
        !           796: 2    c003 rcrb imm8 rm8
        !           797: w2   d103 rcrw con1 rm16
        !           798: w2   d103 rcrw rm16
        !           799: w2   d303 rcrw cl rm16
        !           800: w2   c103 rcrw imm8 rm16
        !           801: d2   d103 rcrl con1 rm32
        !           802: d2   d103 rcrl rm32
        !           803: d2   d303 rcrl cl rm32
        !           804: d2   c103 rcrl imm8 rm32
        !           805: G      rol             # Rotate left
        !           806: A2   d100 rol  con1 m32
        !           807: A2   d100 rol  m32
        !           808: A2   d300 rol  cl m32
        !           809: A2   c100 rol  imm8 m32
        !           810: 2    d000 rolb con1 rm8
        !           811: 2    d000 rolb rm8
        !           812: 2    d200 rolb cl rm8
        !           813: 2    c000 rolb imm8 rm8
        !           814: w2   d100 rolw con1 rm16
        !           815: w2   d100 rolw rm16
        !           816: w2   d300 rolw cl rm16
        !           817: w2   c100 rolw imm8 rm16
        !           818: d2   d100 roll con1 rm32
        !           819: d2   d100 roll rm32
        !           820: d2   d300 roll cl rm32
        !           821: d2   c100 roll imm8 rm32
        !           822: G      ror             # Rotate right
        !           823: A2   d101 ror  con1 m32
        !           824: A2   d101 ror  m32
        !           825: A2   d301 ror  cl m32
        !           826: A2   c101 ror  imm8 m32
        !           827: 2    d001 rorb con1 rm8
        !           828: 2    d001 rorb rm8
        !           829: 2    d201 rorb cl rm8
        !           830: 2    c001 rorb imm8 rm8
        !           831: w2   d101 rorw con1 rm16
        !           832: w2   d101 rorw rm16
        !           833: w2   d301 rorw cl rm16
        !           834: w2   c101 rorw imm8 rm16
        !           835: d2   d101 rorl con1 rm32
        !           836: d2   d101 rorl rm32
        !           837: d2   d301 rorl cl rm32
        !           838: d2   c101 rorl imm8 rm32
        !           839: G      sal             # Shift arithmetic left
        !           840: A2   d104 sal  con1 m32
        !           841: A2   d104 sal  m32
        !           842: A2   d304 sal  cl m32
        !           843: A2   c104 sal  imm8 m32
        !           844: 2    d004 salb con1 rm8
        !           845: 2    d004 salb rm8
        !           846: 2    d204 salb cl rm8
        !           847: 2    c004 salb imm8 rm8
        !           848: w2   d104 salw con1 rm16
        !           849: w2   d104 salw rm16
        !           850: w2   d304 salw cl rm16
        !           851: w2   c104 salw imm8 rm16
        !           852: d2   d104 sall con1 rm32
        !           853: d2   d104 sall rm32
        !           854: d2   d304 sall cl rm32
        !           855: d2   c104 sall imm8 rm32
        !           856: G      shl             # Shift arithmetic left
        !           857: A2   d104 shl  con1 m32
        !           858: A2   d104 shl  m32
        !           859: A2   d304 shl  cl m32
        !           860: A2   c104 shl  imm8 m32
        !           861: 2    d004 shlb con1 rm8
        !           862: 2    d004 shlb rm8
        !           863: 2    d204 shlb cl rm8
        !           864: 2    c004 shlb imm8 rm8
        !           865: w2   d104 shlw con1 rm16
        !           866: w2   d104 shlw rm16
        !           867: w2   d304 shlw cl rm16
        !           868: w2   c104 shlw imm8 rm16
        !           869: d2   d104 shll con1 rm32
        !           870: d2   d104 shll rm32
        !           871: d2   d304 shll cl rm32
        !           872: d2   c104 shll imm8 rm32
        !           873: G      sar             # Shift arithmetic right
        !           874: A2   d107 sar  con1 m32
        !           875: A2   d107 sar  m32
        !           876: A2   d307 sar  cl m32
        !           877: A2   c107 sar  imm8 m32
        !           878: 2    d007 sarb con1 rm8
        !           879: 2    d007 sarb rm8
        !           880: 2    d207 sarb cl rm8
        !           881: 2    c007 sarb imm8 rm8
        !           882: w2   d107 sarw con1 rm16
        !           883: w2   d107 sarw rm16
        !           884: w2   d307 sarw cl rm16
        !           885: w2   c107 sarw imm8 rm16
        !           886: d2   d107 sarl con1 rm32
        !           887: d2   d107 sarl rm32
        !           888: d2   d307 sarl cl rm32
        !           889: d2   c107 sarl imm8 rm32
        !           890: G      shr             # Shift right
        !           891: A2   d105 shr  con1 m32
        !           892: A2   d105 shr  m32
        !           893: A2   d305 shr  cl m32
        !           894: A2   c105 shr  imm8 m32
        !           895: 2    d005 shrb con1 rm8
        !           896: 2    d005 shrb rm8
        !           897: 2    d205 shrb cl rm8
        !           898: 2    c005 shrb imm8 rm8
        !           899: w2   d105 shrw con1 rm16
        !           900: w2   d105 shrw rm16
        !           901: w2   d305 shrw cl rm16
        !           902: w2   c105 shrw imm8 rm16
        !           903: d2   d105 shrl con1 rm32
        !           904: d2   d105 shrl rm32
        !           905: d2   d305 shrl cl rm32
        !           906: d2   c105 shrl imm8 rm32
        !           907: G      sbb     # Subtract with borrow
        !           908: A1l  8303 sbb  imm8s rm32
        !           909: d1l  8303 sbbl imm8s rm32
        !           910: w1l  8303 sbbw imm8s rm16
        !           911: l    001c sbbb imm8 al
        !           912: wl   001d sbbw imm16 ax
        !           913: dl   001d sbbl imm32 eax
        !           914: dl   001d sbbl imm32
        !           915: 1l   8003 sbbb imm8 rm8
        !           916: w1l  8103 sbbw imm16 rm16
        !           917: d1l  8103 sbbl imm32 rm32
        !           918: lP   001a sbbb rm8 r8
        !           919: wlP  001b sbbw rm16 r16
        !           920: dlP  001b sbbl rm32 r32
        !           921: lP   0018 sbbb r8 rm8
        !           922: wlP  0019 sbbw r16 rm16
        !           923: dlP  0019 sbbl r32 rm32
        !           924: G      shld    # Shift double precision left
        !           925: wp   00a4 shldw        imm8 r16 rm16
        !           926: dp   00a4 shldl        imm8 r32 rm32
        !           927: wp   00a5 shldw        cl r16 rm16 
        !           928: dp   00a5 shldl        cl r32 rm32
        !           929: G      shrd    # Shift double precision right
        !           930: wp   00ac shrdw        imm8 r16 rm16
        !           931: dp   00ac shrdl        imm8 r32 rm32
        !           932: wp   00ad shrdw        cl r16 rm16
        !           933: dp   00ad shrdl        cl r32 rm32
        !           934: wp   00ad shrdw r16 rm16
        !           935: dp   00ad shrdl r32 rm32
        !           936: G      sub     # Subtract
        !           937: A1l  8305 sub  imm8s m32
        !           938: d1l  8305 subl imm8s rm32
        !           939: w1l  8305 subw imm8s rm16
        !           940: l    002c subb imm8 al
        !           941: wl   002d subw imm16 ax
        !           942: dl   002d subl imm32 eax
        !           943: dl   002d subl imm32
        !           944: 1l   8005 subb imm8 rm8
        !           945: w1l  8105 subw imm16 rm16
        !           946: d1l  8105 subl imm32 rm32
        !           947: lP   002a subb rm8 r8
        !           948: wlP  002b subw rm16 r16
        !           949: dlP  002b subl rm32 r32
        !           950: lP   0028 subb r8 rm8
        !           951: wlP  0029 subw r16 rm16
        !           952: dlP  0029 subl r32 rm32
        !           953: G      test    # Logical compare
        !           954: A3   f600 test imm8 m32
        !           955: -    00a8 testb        imm8 al
        !           956: w    00a9 testw        imm16 ax
        !           957: d    00a9 testl        imm32 eax
        !           958: d    00a9 testl        imm32
        !           959: 3    f600 testb        imm8 rm8
        !           960: w3   f700 testw        imm16 rm16
        !           961: d3   f700 testl        imm32 rm32
        !           962: P    0084 testb        r8 rm8
        !           963: wP   0085 testw        r16 rm16
        !           964: dP   0085 testl        r32 rm32
        !           965: G      xchg    # Exchange register
        !           966: wa   0090 xchgw        r16 ax
        !           967: wa   0090 xchgw        ax r16
        !           968: da   0090 xchgl        r32 eax
        !           969: da   0090 xchgl        r32
        !           970: da   0090 xchgl        eax r32
        !           971: lP   0086 xchgb        rm8 r8
        !           972: wlP  0087 xchgw        rm16 r16
        !           973: dlP  0087 xchgl        rm32 r32
        !           974: lP   0086 xchgb r8 rm8
        !           975: wlP  0087 xchgw        r16 rm16
        !           976: dlP  0087 xchgl        r32 rm32
        !           977: G      xor     # Logical exclusive OR
        !           978: A1l  8306 xor  imm8s m32
        !           979: d1l  8306 xorl imm8s rm32
        !           980: w1l  8306 xorw imm8s rm16
        !           981: l    0034 xorb imm8 al
        !           982: wl   0035 xorw imm16 ax
        !           983: dl   0035 xorl imm32 eax
        !           984: dl   0035 xorl imm32
        !           985: 1l   8006 xorb imm8 rm8
        !           986: w1l  8106 xorw imm16 rm16
        !           987: d1l  8106 xorl imm32 rm32
        !           988: lP   0032 xorb rm8 r8
        !           989: wlP  0033 xorw rm16 r16
        !           990: dlP  0033 xorl rm32 r32
        !           991: lP   0030 xorb r8 rm8
        !           992: wlP  0031 xorw r16 rm16
        !           993: dlP  0031 xorl r32 rm32
        !           994: + 2 # Preloaded symbol table
        !           995: al     REG             0 1
        !           996: ax     REG             0 2
        !           997: eax    REG             0 4
        !           998: cl     REG             1 1
        !           999: cx     REG             1 2
        !          1000: ecx    REG             1 4
        !          1001: dl     REG             2 1
        !          1002: dx     REG             2 2
        !          1003: edx    REG             2 4
        !          1004: bl     REG             3 1
        !          1005: bx     REG             3 2
        !          1006: ebx    REG             3 4
        !          1007: ah     REG             4 1
        !          1008: sp     REG             4 2
        !          1009: esp    REG             4 4
        !          1010: ch     REG             5 1
        !          1011: bp     REG             5 2
        !          1012: ebp    REG             5 4
        !          1013: dh     REG             6 1
        !          1014: si     REG             6 2
        !          1015: esi    REG             6 4
        !          1016: bh     REG             7 1
        !          1017: di     REG             7 2
        !          1018: edi    REG             7 4
        !          1019: # Segment regs
        !          1020: es     SREG            0 2
        !          1021: cs     SREG            1 2
        !          1022: ss     SREG            2 2
        !          1023: ds     SREG            3 2
        !          1024: fs     SREG            4 2
        !          1025: gs     SREG            5 2
        !          1026: # Control registers (CR1 is missing)
        !          1027: cr0    CREG            0 4     
        !          1028: cr2    CREG            2 4
        !          1029: cr3    CREG            3 4
        !          1030: # Debug registers (DR4 and DR5 missing)
        !          1031: dr0    DREG            0 4 
        !          1032: dr1    DREG            1 4 
        !          1033: dr2    DREG            2 4 
        !          1034: dr3    DREG            3 4 
        !          1035: dr6    DREG            6 4 
        !          1036: dr7    DREG            7 4 
        !          1037: # Test registers (TR0 - TR5 missing)
        !          1038: tr6    TREG            6 4
        !          1039: tr7    TREG            7 4
        !          1040: # Miscellaneous operators
        !          1041: %st    FSTACK          0 0
        !          1042: .rem   REM             0 0
        !          1043: .div   DIVIDE          0 4
        !          1044: .defined DEFINED       0 4
        !          1045: .sizeof        SIZEOF          0 4
        !          1046: .segment SEGMENT       0 4
        !          1047: .location LOCATION     0 4
        !          1048: .string TOSTRING       0 4
        !          1049: .number TONUMBER       0 4
        !          1050: .float TOFLOAT         0 4
        !          1051: .parmct PARMCT         0 4
        !          1052: + 3 # Assembler directives
        !          1053: 1      .fail   ERROR   CMD     # print message as error
        !          1054: 0      .warn   ERROR   CMD     # print message as warning
        !          1055: 0      .mexit  MEXIT   NCMD    # exit current macro
        !          1056: 0      .shift  SHIFT   ICMD    # shift macro parms
        !          1057: 0      .org    ORG     DATA    # move current location
        !          1058: 0      .if     IF      ICMD    # conditional assembly
        !          1059: 0      .else   ELSE    NCMD    # connects to if
        !          1060: 0      .endi   ENDI    NCMD    # end if
        !          1061: 0      .while  WHILE   ICMD    # conditional assembly loop
        !          1062: 0      .endw   ENDW    NCMD    # end while
        !          1063: 0      .macro  MACRO   DCMD    # declare macro
        !          1064: 0      -       MAC     CMD     # Macro expansion no opcode.
        !          1065: 0      .endm   ENDM    NCMD    # end macro declaration
        !          1066: 0      .include INCLUDE CMD    # include file
        !          1067: 0      .equ    EQU     ICMD    # newlab  .equ  expr
        !          1068: 0      .define EQUS    CMD     # newstr  .define anything
        !          1069: 0      .undef  UNDEFINE CMD    #         .undef  newstr
        !          1070: 1      .list   LIST    NCMD    # Turn on listing if -l was on
        !          1071: 0      .nolist LIST    NCMD    # Turn off listing
        !          1072: 0      .llen   LLEN    ICMD    # set print line length, default 112
        !          1073: 0      .plen   PLEN    ICMD    # page length, default 56
        !          1074: 1      .page   PAGE    NCMD    # Turn on page breaks
        !          1075: 0      .eject  EJECT   NCMD    # Force a page break
        !          1076: 0      .mlist  MLIST   CMD     # list macro expansions
        !          1077: 0      .ttl    TITLE   CMD     # Set page title
        !          1078: 0      .section SECTION CMD    # Set section
        !          1079: 0      .nopage PAGE    NCMD    # Turn off page breaks
        !          1080: 0      .byte   DATA    DATA    # .byte val [,val]
        !          1081: 1      .word   DATA    DATA    # .word val [,val]
        !          1082: 1      .2byte  UDATA   DATA    # .2byte val, val
        !          1083: 1      .value  DATA    DATA    # .value val [,val]
        !          1084: 2      .long   DATA    DATA    # .long val [,val]
        !          1085: 2      .4byte  UDATA   DATA    # .4byte val, [val]
        !          1086: 3      .float  DATA    DATA    # .float val [,val]
        !          1087: 4      .double DATA    DATA    # .double val [,val]
        !          1088: 5      .string DATA    DATA    # .string astring
        !          1089: 2      .comm   COMM    ECMDX   # .comm name expr
        !          1090: 2      .lcomm  COMM    ECMDX   # .lcomm name expr
        !          1091: 1      .alignon  ALIGNON NCMD  # align non char data objects
        !          1092: 0      .alignoff ALIGNON NCMD  # don't align non char data objects
        !          1093: 0      .align  ALIGN   DATA    # .align val [, fillChar]
        !          1094: 0      .even   EVEN    NCMD    # .even
        !          1095: 2      .bss    SEGMENT ECMD    # .bss tag, bytes
        !          1096: 2      .bssd   SEGMENT ECMD    # .bss tag, bytes
        !          1097: 0      .zero   ZERO    ICMD    # .zero value
        !          1098: 0      .blkb   BLKB    ICMD    # .blkb value
        !          1099: 1      .data   SEGMENT NCMD    # .data
        !          1100: 1      .shrd   SEGMENT NCMD    # .data
        !          1101: 1      .prvd   SEGMENT NCMD    # .data
        !          1102: 1      .strn   SEGMENT NCMD    # .data
        !          1103: 0      .text   SEGMENT NCMD    # .text
        !          1104: 10000  .previous SEGMENT NCMD  # .previous
        !          1105: 0      .shri   SEGMENT NCMD    # .text
        !          1106: 0      .prvi   SEGMENT NCMD    # .text
        !          1107: 0      .globl  GLOBL   DATA    # .globl name [,name]
        !          1108: 0      .ident  CMNT    CMD     # .ident string
        !          1109: 1      .version CMNT   CMD     # .comment string
        !          1110: 0      .set    SET     ECMD    # .set name, expr
        !          1111: 1      .32     LMODE   NCMD    # .32
        !          1112: 0      .16     LMODE   NCMD    # .16
        !          1113: 0      .errataon  ERRATA NCMD  # .errataon
        !          1114: 1      .errataoff ERRATA NCMD  # .errataon
        !          1115: 0      .warnon  WARNINGS NCMD  # .warnon
        !          1116: 1      .warnoff WARNINGS NCMD  # .warnoff
        !          1117: 0      .unixorder OPORDER NCMD # .unixorder
        !          1118: 1      .intelorder OPORDER NCMD # .intelorder
        !          1119: 0      .bracketnorm BORDER NCMD # .bracketnorm
        !          1120: 1      .bracketrev  BORDER NCMD # .bracketrev
        !          1121: 0      .size   SIZE    ICMD    # .size expr
        !          1122: 0      .type   TYPE    ICMD    # .type expr
        !          1123: 0      .val    VAL     ICMD    # .val expr
        !          1124: 0      .tag    TAG     CMD     # .tag string
        !          1125: 0      .scl    SCL     ICMD    # .scl expr
        !          1126: 0      .ln     LN      ICMD    # .ln expr
        !          1127: 0      .line   LINE    ICMD    # .line expr
        !          1128: 0      .file   FILE    CMD     # .file name
        !          1129: 0      .endef  ENDF    NCMD    # .endf
        !          1130: 0      .def    DEF     CMD     # .def name
        !          1131: 0      .dim    DIM     DATA    # .dim expr [,expr]

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.