EuroAssembler Index Manual Download Source Macros


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.
INCLUDEHEAD  \  ; Include headers of another modules used in this module.
ea.htm,      \
eaopt.htm,   \
exp.htm,     \
ii.htm,      \
msg.htm,     \
pgm.htm,     \
pgmopt.htm,  \
sss.htm,     \
stm.htm,     \
sym.htm,     \
syswin.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▲