| Index | Manual | Download | Source | Macros | Embedded word Case ins.
Sitemap | Links | Forum | Tests | Projects

# iic.htm
Enumerations
IicList
Instruction handlers
BB0_RESET BB1_RESET CPU_READ CPU_WRITE DMINT PADDSIW PAVEB PDISTIB PMAGW PMACHRIW PMULHRIW PMULHRWC PMVGEZB PMVLZB PMVNZB PMVZB PSUBSIW RDM RDSHR RSDC RSLDT RSTS RSM SMINT SMINTOLD SVDC SVLDT SVTS WRSHR

↑ IicHandlers
  assemble Cyrix-specific machine instructions.
See also
  IiHandlers, [Cyrix686] [Cyrix686ap]

    iic PROGRAM FORMAT=COFF,MODEL=FLAT,WIDTH=32
         INCLUDEHEAD euroasm.htm, \  Interface (structures, symbols and macros) of other modules used in this source.
                     ea.htm,eaopt.htm,exp.htm,ii.htm,msg.htm,pgm.htm,pgmopt.htm,sss.htm,stm.htm,sym.htm

    iic HEAD ; Start of module interface.

↑ %IicList
  enumerates machine instructions of this family which €ASM can assemble.
  Each instruction declared in `%IicList` requires the corresponding handler in this file.
See also
  DictLookupIi

    %IicList %SET \
    BB0_RESET, \
    BB1_RESET, \
    CPU_READ, \
    CPU_WRITE, \
    DMINT, \
    PADDSIW, \
    PAVEB, \
    PDISTIB, \
    PMAGW, \
    PMACHRIW, \
    PMULHRIW, \
    PMULHRWC, \
    PMVGEZB, \
    PMVLZB, \
    PMVNZB, \
    PMVZB, \
    PSUBSIW, \
    RDM, \
    RDSHR, \
    RSDC, \
    RSLDT, \
    RSTS, \
    SMINT, \
    SMINTOLD, \
    SVDC, \
    SVLDT, \
    SVTS, \
    WRSHR, \

    ;

      ENDHEAD iic ; End of module interface.

↑ PDISTIB
  Packed Distance and Accumulate with Implied destination.
Category
  SSE Cyrix
Operands
  mmx, mem
Opcode
  0x0F54 /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3605

    IicPDISTIB:: PROC
        MOV CL,0x54
    .op:IiRequire 586,MMX,CYRIX
        IiEmitOpcode 0x0F,ECX
        IiOpEn RM
        IiModRM /r
        IiDispatchFormat mmx.mem
    .mmx.mem:
        RET
     ENDP IicPDISTIB::

↑ PMVZB
  Packed Conditional Move if zero.
Category
  SSE Cyrix
Operands
  mmx, mem
Opcode
  0x0F58 /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3605

    IicPMVZB:: PROC
        MOV CL,0x58
        JMP IicPDISTIB.op:
     ENDP IicPMVZB::

↑ PMVNZB
  Packed Conditional Move if not zero.
Category
  SSE Cyrix
Operands
  mmx, mem
Opcode
  0x0F5A /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3605

    IicPMVNZB:: PROC
        MOV CL,0x5A
        JMP IicPDISTIB.op:
     ENDP IicPMVNZB::

↑ PMVLZB
  Packed Conditional Move if less than zero.
Category
  SSE Cyrix
Operands
  mmx, mem
Opcode
  0x0F5B /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3605

    IicPMVLZB:: PROC
        MOV CL,0x5B
        JMP IicPDISTIB.op:
     ENDP IicPMVLZB::

↑ PMVGEZB
  Packed Conditional Move if greater than or equal to zero.
Category
  SSE Cyrix
Operands
  mmx, mem
Opcode
  0x0F5C /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3605

    IicPMVGEZB:: PROC
        MOV CL,0x5C
        JMP IicPDISTIB.op:
     ENDP IicPMVGEZB::

↑ PMACHRIW
  Packed Multiply and Accumulate with Rounding.
Category
  SSE Cyrix
Operands
  mmx, mem
Opcode
  0x0F5E /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3605

    IicPMACHRIW:: PROC
        MOV CL,0x5E
        JMP IicPDISTIB.op:
     ENDP IicPMACHRIW::

↑ PAVEB
  Packed Average Byte.
Category
  SSE Cyrix
Operands
  xxm,xxm | xxm,mem
Opcode
  0x0F50 /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3610

    IicPAVEB:: PROC
        MOV CL,0x50
    .op:IiRequire 586,MMX,CYRIX
        IiEmitOpcode 0x0F,ECX
        IiEncoding DATA=QWORD
        IiOpEn RM
        IiModRM /r
        IiDispatchFormat mmx.mem, mmx.mmx
    .mmx.mmx:
    .mmx.mem:
        RET
     ENDP IicPAVEB::

↑ PADDSIW
  Packed Add with Saturation with Implied destination.
Category
  SSE Cyrix
Operands
  xxm,xxm | xxm,mem
Opcode
  0x0F51 /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3610

    IicPADDSIW:: PROC
        MOV CL,0x51
        JMP IicPAVEB.op:
     ENDP IicPADDSIW::

↑ PMAGW
  Packed Magnitude.
Category
  SSE Cyrix
Operands
  xxm,xxm | xxm,mem
Opcode
  0x0F52 /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3610

    IicPMAGW:: PROC
        MOV CL,0x52
        JMP IicPAVEB.op:
     ENDP IicPMAGW::

↑ PSUBSIW
  Packed Subtract with Saturation with Implied destination.
Category
  SSE Cyrix
Operands
  xxm,xxm | xxm,mem
Opcode
  0x0F55 /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3610

    IicPSUBSIW:: PROC
        MOV CL,0x55
        JMP IicPAVEB.op:
     ENDP IicPSUBSIW::

↑ PMULHRWC
  Packed Multiply High with Rounding (Cyrix)
Category
  SSE Cyrix
Operands
  xxm,xxm | xxm,mem
Opcode
  0x0F59 /r
Remark
  Documented as PMULHRW `0x0F59 /r` by Cyrix, but the same mnemonic is also used by AMD 3DNow! `0x0F0F /r 0xB7` (Packed 16-bit integer multiply with rounding), so this Cyrix variant is renamed to PMULHRWC and AMD variant PMULHRW is aliased to PMULHRWA in €ASM as well as in NASM.
CPU
  586, Cyrix
Documented
  Sandpile
See also
  PMULHRW, PMULHRWA.
Tested by
  t3610

    IicPMULHRWC:: PROC
        MOV CL,0x59
        JMP IicPAVEB.op:
     ENDP IicPMULHRWC::

↑ PMULHRIW
  Packed Multiply High with Rounding with Implied destination.
Category
  SSE Cyrix
Operands
  xxm,xxm | xxm,mem
Opcode
  0x0F5D /r
CPU
  586, Cyrix
Documented
  Sandpile
Tested by
  t3610

    IicPMULHRIW:: PROC
        MOV CL,0x5D
        JMP IicPAVEB.op:
     ENDP IicPMULHRIW::

↑ RDSHR
  Read SMM Header Pointer Register
Category
  system
Operands
  r32/m32
Opcode
  0x0F36 /0
Documented
  [Cyrix686]
Tested by
  t4200

    IicRDSHR:: PROC
        IiRequire 686,CYRIX,PRIV
        IiEmitOpcode 0x0F,0x36
        IiOpEn M
        IiModRM /0
        IiEncoding DATA=DWORD
        IiDispatchFormat r32,mem
    .r32:
    .mem:RET
     ENDP IicRDSHR::

↑ WRSHR
  Write SMM Header Pointer Register
Category
  system
Operands
  r32/m32
Opcode
  0x0F37 /0
Documented
  [Cyrix686]
See also
  GETSEC (same opcode)
Tested by
  t4200

    IicWRSHR:: PROC
        IiRequire 686,CYRIX,PRIV
        IiEmitOpcode 0x0F,0x37
        IiOpEn M
        IiModRM /0
        IiEncoding DATA=DWORD
        IiDispatchFormat r32,mem
    .r32:
    .mem:RET
     ENDP IicWRSHR::

↑ SVDC
  Save Segment Register and Descriptor
Category
  system
Opcode
  0x0F78 /r
Tested by
  t4205

    IicSVDC:: PROC
        IiRequire 486,CYRIX,PRIV
        IiEmitOpcode 0x0F,0x78
        IiOpEn MR
        IiModRM /r
        IiEncoding DATA=TBYTE
        IiDispatchFormat mem.Sreg
    .mem.Sreg:
        RET
     ENDP IicSVDC::

↑ RSDC
  Restore Segment Register and Descriptor
Category
  system
Opcode
  0x0F79 /r
Tested by
  t4205

    IicRSDC:: PROC
        IiRequire  486,CYRIX,PRIV
        IiEmitOpcode 0x0F,0x79
        IiOpEn RM
        IiModRM /r
        IiEncoding DATA=TBYTE
        IiDispatchFormat Sreg.mem
    .Sreg.mem:
        RET
     ENDP IicRSDC::

↑ SVLDT
  Save LDTR and Descriptor
Category
  system
Opcode
  0xF7A /0
Tested by
  t4210

    IicSVLDT:: PROC
        MOV CL,0x7A
    .op:IiRequire 486,CYRIX,PRIV
        IiEmitOpcode 0x0F,ECX
        IiOpEn M
        IiModRM /0
        IiEncoding DATA=TBYTE
        IiDispatchFormat mem
    .mem:RET
     ENDP IicSVLDT::

↑ RSLDT
  Restore LDTR and Descriptor
Category
  system
Opcode
  0x0F7B /0
Tested by
  t4210

    IicRSLDT:: PROC
        MOV CL,0x7B
        JMP IicSVLDT.op:
     ENDP IicRSLDT::

↑ SVTS
  SVTS
Category
  system
Opcode
  0x0F7C /0
Tested by
  t4210

    IicSVTS:: PROC
        MOV CL,0x7C
        JMP IicSVLDT.op:
     ENDP IicSVTS::

↑ RSTS
  Restore TSR and Descriptor
Category
  system
Opcode
  0x0F7D /0
Tested by
  t4210

    IicRSTS:: PROC
        MOV CL,0x7D
        JMP IicSVLDT.op:
     ENDP IicRSTS::

↑ SMINT
  Software SMM Entry
Category
  system
Opcode
  0x0F38
Tested by
  t4205

    IicSMINT:: PROC
        IiRequire 486,CYRIX
        IiEmitOpcode 0x0F,0x38
        IiDispatchFormat none
    .none:RET
     ENDP IicSMINT::

↑ SMINTOLD
  Software SMM Entry (original encoding)
Category
  system
Opcode
  0x0F7E
Tested by
  t4205

    IicSMINTOLD:: PROC
        IiRequire 486,CYRIX,UNDOC
        IiEmitOpcode 0x0F,0x7E
        IiDispatchFormat none
    .none:RET
     ENDP IicSMINTOLD::

↑ DMINT
  Enter Debug Management Mode
Category
  AMD Geode
Opcode
  0x0F39
CPU
  AMD/Cyrix Geode
Documented
  [AMDGeode]
Tested by
  t4215

    IicDMINT:: PROC
        IiRequire 686,CYRIX
        IiEmitOpcode 0x0F,0x39
        IiDispatchFormat none
    .none:RET
     ENDP IicDMINT::

↑ RDM
  Leave Debug Management Mode
Category
  AMD Geode
Opcode
  0x0F3A
CPU
  AMD/Cyrix Geode
Documented
  [AMDGeode]
See also
  BB0_RESET
Tested by
  t4215

    IicRDM:: PROC
        IiRequire 686,CYRIX
        IiEmitOpcode 0x0F,0x3A
        IiDispatchFormat none
    .none:RET
     ENDP IicRDM::

↑ BB0_RESET
  BitBlt0 reset
Category
  Cyrix GX1
Operands
  -
Opcode
  0x0F3A
CPU
  CYRIX
Documented
  NASM
See also
  RDM
Tested by
  t4215

    IicBB0_RESET:: PROC
        MOV CL,0x3A
    .op:IiRequire 586,CYRIX,UNDOC
        IiEmitOpcode 0x0F,ECX
        IiDispatchFormat none
    .none:RET
     ENDP IicBB0_RESET::

↑ BB1_RESET
  BitBlt1 reset
Category
  Cyrix GX1
Operands
  -
Opcode
  0x0F3B
CPU
  CYRIX
Documented
  NASM
Tested by
  t4215

    IicBB1_RESET:: PROC
        MOV CL,0x3B
        JMP IicBB0_RESET.op:
     ENDP IicBB1_RESET::

↑ CPU_WRITE
  CPU write
Category
  Cyrix GX1
Operands
  -
Opcode
  0x0F3C
CPU
  CYRIX
Documented
  NASM
Tested by
  t4215

    IicCPU_WRITE:: PROC
        MOV CL,0x3C
        JMP IicBB0_RESET.op:
     ENDP IicCPU_WRITE::

↑ CPU_READ
  CPU read
Category
  Cyrix GX1
Operands
  -
Opcode
  0x0F3D
CPU
  CYRIX
Documented
  NASM
Tested by
  t4215

    IicCPU_READ:: PROC
        MOV CL,0x3D
        JMP IicBB0_RESET.op:
     ENDP IicCPU_READ::

      ENDPROGRAM iic

▲Back to the top▲