mirror of
https://github.com/radareorg/radare2.git
synced 2024-12-05 20:17:43 +00:00
639 lines
26 KiB
Plaintext
639 lines
26 KiB
Plaintext
aaa=ascii adjust after addition
|
|
aad=ascii adjust ax before division
|
|
aam=ascii adjust ax after multiply
|
|
aas=ascii adjust al after subtraction
|
|
adc=add with carry
|
|
add=adds src and dst, stores result on dst
|
|
addpd=add packed double-fp values
|
|
addps=add packed single-fp values
|
|
addsd=add scalar double-fp values
|
|
addss=add scalar single-fp values
|
|
addsubpd=packed double-fp add/subtract
|
|
addsubps=packed single-fp add/subtract
|
|
aesdec=perform one round of an AES decryption flow
|
|
aesdeclast=perform the last round of an AES decryption flow
|
|
aesenc=perform one round of an AES encryption flow
|
|
aesenclast=perform the last round of an AES encryption flow
|
|
aesimc=assist in aes Inverse Mix Columns
|
|
aeskeygenassist=assist in AES round key generation
|
|
and=binary and operation between src and dst, stores result on dst
|
|
andnpd=bitwise logical and not of packed double-fp values
|
|
andnps=bitwise logical and not of packed single-fp values
|
|
andpd=bitwise logical and of packed double-fp values
|
|
andps=bitwise logical and of packed single-fp values
|
|
arpl=adjust rpl field of segment selector
|
|
blendpd=blend packed double-fp values
|
|
blendps=blend packed single-fp values
|
|
blendvpd=variable blend packed double-fp values
|
|
blendvps=variable blend packed single-fp values
|
|
bound=check array index against bounds
|
|
bsf=bit scan forward
|
|
bsr=bit scan reverse
|
|
bswap=byte swap
|
|
bt=bit test
|
|
btc=bit test and complement
|
|
btr=bit test and reset
|
|
bts=bit test and set
|
|
call=calls a subroutine, push eip into the stack (esp)
|
|
callf=call procedure
|
|
cbw=convert byte to word
|
|
cdq=sign extends eax into edx (convert doubleword to quadword)
|
|
cdqe=sign extend eax into rax (added with x86-64)
|
|
clc=clear carry flag
|
|
cld=clear direction flag
|
|
clflush=flush cache line
|
|
cli=clear interrupt flag
|
|
clts=clear task-switched flag in cr0
|
|
cmc=complement carry flag
|
|
cmovb=conditional move - below/not above or equal/carry (cf=1)
|
|
cmovbe=conditional move - below or equal/not above (cf=1 and zf=1)
|
|
cmove=conditional move - if equal (zf=1)
|
|
cmovl=conditional move - less/not greater (sf!=of)
|
|
cmovle=conditional move - less or equal/not greater ((zf=1) or (sf!=of))
|
|
cmovnb=conditional move - not below/above or equal/not carry (cf=0)
|
|
cmovnbe=conditional move - not below or equal/above (cf=0 and zf=0)
|
|
cmovne=conditional move - if not equal (zf=0)
|
|
cmovnl=conditional move - not less/greater or equal (sf=of)
|
|
cmovnle=conditional move - not less nor equal/greater ((zf=0) and (sf=of))
|
|
cmovno=conditional move - not overflow (of=0)
|
|
cmovnp=conditional move - not parity/parity odd
|
|
cmovns=conditional move - not sign (sf=0)
|
|
cmovnz=conditional move - not zero/not equal (zf=1)
|
|
cmovo=conditional move - overflow (of=1)
|
|
cmovp=conditional move - parity/parity even (pf=1)
|
|
cmovs=conditional move - sign (sf=1)
|
|
cmovz=conditional move - zero/equal (zf=0)
|
|
cmp=compare two operands
|
|
cmppd=compare packed double-fp values
|
|
cmpps=compare packed single-fp values
|
|
cmps=compare string operands
|
|
cmpsb=cmp DS:[SI], ES:[edi] (esi++, edi++)
|
|
cmpsd=compare scalar double-fp values
|
|
cmpsq=compare string quadword (added with x86-64)
|
|
cmpss=compare scalar single-fp values
|
|
cmpxchg16b=compare and exchange bytes
|
|
cmpxchg8b=compare and exchange bytes
|
|
cmpxchg=compare and exchange
|
|
comisd=compare scalar ordered double-fp values and set eflags
|
|
comiss=compare scalar ordered single-fp values and set eflags
|
|
cpuid=cpu identification
|
|
crc32=accumulate crc32 value
|
|
cs=cs segment override prefix
|
|
cvtdq2pd=convert packed dw integers to double-fp values
|
|
cvtdq2ps=convert packed dw integers to single-fp values
|
|
cvtpd2dq=convert packed double-fp values to dw integers
|
|
cvtpd2pi=convert packed double-fp values to dw integers
|
|
cvtpd2ps=convert packed double-fp values to single-fp values
|
|
cvtpi2pd=convert packed dw integers to double-fp values
|
|
cvtpi2ps=convert packed dw integers to single-fp values
|
|
cvtps2dq=convert packed single-fp values to dw integers
|
|
cvtps2pd=convert packed single-fp values to double-fp values
|
|
cvtps2pi=convert packed single-fp values to dw integers
|
|
cvtsd2si=convert scalar double-fp value to dw integer
|
|
cvtsd2ss=convert scalar double-fp value to scalar single-fp value
|
|
cvtsi2sd=convert dw integer to scalar double-fp value
|
|
cvtsi2ss=convert dw integer to scalar single-fp value
|
|
cvtss2sd=convert scalar single-fp value to scalar double-fp value
|
|
cvtss2si=convert scalar single-fp value to dw integer
|
|
cvttpd2dq=convert with trunc. packed double-fp values to dw integers
|
|
cvttpd2pi=convert with trunc. packed double-fp values to dw integers
|
|
cvttps2dq=convert with trunc. packed single-fp values to dw integers
|
|
cvttps2pi=convert with trunc. packed single-fp values to dw integers
|
|
cvttsd2si=conv. with trunc. scalar double-fp value to signed dw int
|
|
cvttss2si=convert with trunc. scalar single-fp value to dw integer
|
|
cwd=convert word to doubleword
|
|
cwde=convert word to doubleword
|
|
daa=decimal adjust al after addition
|
|
das=decimal adjust al after subtraction
|
|
dec=decrement by 1
|
|
div=unsigned divide
|
|
divpd=divide packed double-fp values
|
|
divps=divide packed single-fp values
|
|
divsd=divide scalar double-fp values
|
|
divss=divide scalar single-fp values
|
|
dppd=dot product of packed double-fp values
|
|
dpps=dot product of packed single-fp values
|
|
ds=ds segment override prefix
|
|
emms=empty mmx technology state
|
|
enter=alias for push ebp; mov ebp, esp
|
|
es=es segment override prefix
|
|
extractps=extract packed single-fp value
|
|
f2xm1=compute pow(2,x) - 1
|
|
fabs=absolute value
|
|
fadd=floating point add
|
|
faddp=floating point add and pop
|
|
fbld=load binary coded decimal
|
|
fbstp=store binary coded decimal integer and pop
|
|
fchs=change sign
|
|
fclex=clear exceptions
|
|
fcmovb=fp conditional move - below (cf=1)
|
|
fcmovbe=fp conditional move - below or equal (cf=1 or zf=1)
|
|
fcmove=fp conditional move - equal (zf=1)
|
|
fcmovnb=fp conditional move - not below (cf=0)
|
|
fcmovnbe=fp conditional move - below or equal (cf=0 and zf=0)
|
|
fcmovne=fp conditional move - not equal (zf=0)
|
|
fcmovnu=fp conditional move - not unordered (pf=0)
|
|
fcmovu=fp conditional move - unordered (pf=1)
|
|
fcom=floating point compare
|
|
fcomi=compare floating point values and set eflags
|
|
fcomip=compare floating point values and set eflags and pop
|
|
fcomp=floating point compare and pop
|
|
fcompp=floating point compare and pop twice
|
|
fcos=floating point cosine
|
|
fdecstp=decrement floating point stack pointer
|
|
fdisi=disable npx (numeric coprocessor extension) interrupt
|
|
fdiv=floating point divide
|
|
fdivp=floting point divide and pop
|
|
fdivr=floating point divide reversed
|
|
fdivrp=floating point reverse divide and pop
|
|
feni=enable npx (numeric coprocessor extension) interrupt
|
|
ffree=free floating-point register
|
|
fiadd=integer add
|
|
ficom=integer compare
|
|
ficomp=integer compare and pop
|
|
fidiv=integer divide
|
|
fidivr=integer divide reserved
|
|
fild=load integer
|
|
fimul=integer multiply
|
|
fincstp=increment floating-point stack pointer
|
|
finit=initialize fpu (floating-point unit)
|
|
fist=store integer
|
|
fistp=store integer and pop
|
|
fisttp=store integer with truncation and pop
|
|
fisub=integer substract
|
|
fisubr=integer susbtract reversed
|
|
fld1=load constant onto stack +1.0f
|
|
fld=load floating point value
|
|
fldcw=load x87 fpu control word
|
|
fldenv=load x87 fpu environment
|
|
fldl2e=load constant onto stack: logarithm base 2 (e)
|
|
fldl2t=load constant onto stack: logarithm base 2 (10)
|
|
fldlg2=load constant onto stack: logarithm base 10 (2)
|
|
fldln2=load constant onto stack: natural logarithm (2)
|
|
fldpi=load constant onto stack: pi (3.141592...)
|
|
fldz=load constant onto stack 0.0f
|
|
fmul=floating point multiply
|
|
fmulp=floating point multiply and pop
|
|
fnclex=clear exceptions
|
|
fndisi=disable npx (numeric coprocessor extension) interrupts (8087 only, otherwise, FNOP)
|
|
fneni=enable npx (numeric coprocessor extension) interrupts (8087 only, otherwise, FNOP)
|
|
fninit=initialize fpu (floating-point unit)
|
|
fnop=no operation
|
|
fnsave=store x87 fpu state
|
|
fnsetpm=set protected mode (8087 only, otherwise FNOP)
|
|
fnstcw=store x87 fpu control word
|
|
fnstenv=store x87 fpu environment
|
|
fnstsw=store x87 fpu status word
|
|
fpatan=partial arctangent and pop
|
|
fprem1=ieee partial remainder
|
|
fprem=partial remainder (for compatibility with i8087 and i287)
|
|
fptan=partial tangent
|
|
frndint=round to integer
|
|
frstor=restore x87 fpu state
|
|
fs=fs segment override prefix
|
|
fsave=store x87 fpu state
|
|
fscale=scale
|
|
fsetpm=set protected mode
|
|
fsin=sine
|
|
fsincos=sine and cosine
|
|
fsqrt=square root
|
|
fst=store floating point value
|
|
fstcw=store x87 fpu control word
|
|
fstenv=store x87 fpu environment
|
|
fstp=store floating point value and pop
|
|
fstsw=store x87 fpu status word
|
|
fsub=floating point subtract
|
|
fsubp=subtract and pop
|
|
fsubr=reverse subtract
|
|
fsubrp=reverse subtract and pop
|
|
ftst=test
|
|
fucom=unordered compare floating point values
|
|
fucomi=unordered compare floating point values and set eflags
|
|
fucomip=unordered compare floating point values and set eflags and pop
|
|
fucomp=unordered compare floating point values and pop
|
|
fucompp=unordered compare floating point values and pop twice
|
|
fwait=check pending unmasked floating-point exceptions
|
|
fxam=examine
|
|
fxch=exchange register contents
|
|
fxrstor=restore x87 fpu, mmx, xmm, and mxcsr state
|
|
fxsave=save x87 fpu, mmx, xmm, and mxcsr state
|
|
fxtract=extract exponent and significand
|
|
fyl2x=compute y times log2(x) and pop
|
|
fyl2xp1=compute y times log2(x+1) and pop
|
|
getsec=getsec leaf functions
|
|
gs=gs segment override prefix
|
|
haddpd=packed double-fp horizontal add
|
|
haddps=packed single-fp horizontal add
|
|
hint_nop=hintable nop
|
|
hlt=stop process until external interrupt received
|
|
hsubpd=packed double-fp horizontal subtract
|
|
hsubps=packed single-fp horizontal subtract
|
|
icebp=Single byte single-step exception / Invoke ICE
|
|
idiv=signed divide
|
|
imul=signed multiply
|
|
in=input from port
|
|
inc=increment by 1
|
|
ins=input from port to string
|
|
insb=input from port to string
|
|
int1=call to interrupt procedure
|
|
int=call to interrupt procedure
|
|
into=call to interrupt if overflow
|
|
invd=invalidate internal caches
|
|
invept=invalidate translations derived from ept
|
|
invlpg=invalidate tlb entry
|
|
invvpid=invalidate translations based on vpid
|
|
iret=return from interrupt
|
|
iretd=interrupt return
|
|
iretq=interrupt return (64 bit)
|
|
ja=jump short if above (cf=0 and zf=0)
|
|
jae=jump short if above or equal (cf=0)
|
|
jb=jump short if below/not above or equal/carry (cf=1)
|
|
jbe=jump short if below or equal/not above (cf=1 and zf=1)
|
|
jcxz=jump short if ecx register is 0
|
|
je=jump short if equal (zf=1)
|
|
jg=jump short if greater (zf=0 and sf=of)
|
|
jge=jump short if greater or equal (sf=of)
|
|
jl=jump short if less/not greater (sf!=of)
|
|
jle=jump short if less or equal/not greater ((zf=1) or (sf!=of))
|
|
jmp=jump
|
|
jmpe=jump to ia-64 instruction set
|
|
jmpf=jump
|
|
jnb=jump short if not below/above or equal/not carry (cf=0)
|
|
jnbe=jump short if not below or equal/above (cf=0 and zf=0)
|
|
jne=jump short if not equal (zf=0)
|
|
jnl=jump short if not less/greater or equal (sf=of)
|
|
jnle=jump short if not less nor equal/greater ((zf=0) and (sf=of))
|
|
jno=jump short if not overflow (of=0)
|
|
jnp=jump short if not parity/parity odd
|
|
jns=jump short if not sign (sf=0)
|
|
jnz=jump short if not zero/not equal (zf=1)
|
|
jo=jump short if overflow (of=1)
|
|
jp=jump short if parity/parity even (pf=1)
|
|
jrcxz=jump short if rcx register is 0
|
|
js=jump short if sign (sf=1)
|
|
jz=jump short if zero/equal (zf=0)
|
|
lahf=load status flags into ah register
|
|
lar=load acces right byte
|
|
lddqu=load unaligned integer 128 bits
|
|
ldmxcsr=load mxcsr register
|
|
lds=load far pointer
|
|
lea=load effective address
|
|
leave=one byte alias for mov esp, ebp ; pop ebp
|
|
les=load far pointer
|
|
lfence=load fence
|
|
lfs=load far pointer
|
|
lgdt=load global descriptor table register
|
|
lgs=load far pointer
|
|
lidt=load interrupt descriptor table register
|
|
lldt=load local descriptor table register
|
|
lmsw=load machine status word
|
|
loadall=load all of the cpu registers
|
|
loadalld=loads All Registers from memory address es:edi
|
|
lock=instruction prefix to setup the LOCK pin
|
|
lods=load string
|
|
lodsb=Load string byte
|
|
lodsw=Load string word
|
|
lodsq=Load string quadword (added with x86-64)
|
|
loop=decrement count; jump short if ecx!=0
|
|
loopnz=decrement count; jump short if ecx!=0 and zf=0
|
|
loopz=decrement count; jump short if ecx!=0 and zf=1
|
|
lsl=load segment limit
|
|
lss=load far pointer
|
|
ltr=load task register
|
|
maskmovdqu=store selected bytes of double quadword
|
|
maskmovq=store selected bytes of quadword
|
|
maxpd=return maximum packed double-fp values
|
|
maxps=return maximum packed single-fp values
|
|
maxsd=return maximum scalar double-fp value
|
|
maxss=return maximum scalar single-fp value
|
|
mfence=memory fence
|
|
minpd=return minimum packed double-fp values
|
|
minps=return minimum packed single-fp values
|
|
minsd=return minimum scalar double-fp value
|
|
minss=return minimum scalar single-fp value
|
|
monitor=set up monitor address
|
|
mov=moves data from src to dst
|
|
movabs=absolute data moves
|
|
movapd=move aligned packed double-fp values
|
|
movaps=move aligned packed single-fp values
|
|
movbe=move data after swapping bytes
|
|
movd=move doubleword
|
|
movddup=move one double-fp and duplicate
|
|
movdq2q=move quadword from xmm to mmx technology register
|
|
movdqa=move aligned double quadword
|
|
movdqu=move unaligned double quadword
|
|
movhlps=move packed single-fp values high to low
|
|
movhpd=move high packed double-fp value
|
|
movhps=move high packed single-fp values
|
|
movlhps=move packed single-fp values low to high
|
|
movlpd=move low packed double-fp value
|
|
movlps=move low packed single-fp values
|
|
movmskpd=extract packed double-fp sign mask
|
|
movmskps=extract packed single-fp sign mask
|
|
movntdq=store double quadword using non-temporal hint
|
|
movntdqa=load double quadword non-temporal aligned hint
|
|
movnti=store doubleword using non-temporal hint
|
|
movntpd=store packed double-fp values using non-temporal hint
|
|
movntps=store packed single-fp values using non-temporal hint
|
|
movntq=store of quadword using non-temporal hint
|
|
movq2dq=move quadword from mmx technology to xmm register
|
|
movq=move doubleword/quadword
|
|
movs=move data from string to string
|
|
movsb=move byte sting
|
|
movsd=move scalar double-fp value
|
|
movshdup=move packed single-fp high and duplicate
|
|
movsldup=move packed single-fp low and duplicate
|
|
movss=move scalar single-fp values
|
|
movsw=ES:[edi] = (word)DS:[esi] (esi+=2, edi+=2)
|
|
movsx=move with sign-extension
|
|
movsxd=move with sign-extension
|
|
movupd=move unaligned packed double-fp values
|
|
movups=move unaligned packed single-fp values
|
|
movzx=move dst register size padding with zeroes
|
|
mpsadbw=compute multiple packed sums of absolute difference
|
|
mul=unsigned multiply
|
|
mulpd=multiply packed double-fp values
|
|
mulps=multiply packed single-fp values
|
|
mulsd=multiply scalar double-fp values
|
|
mulss=multiply scalar single-fp value
|
|
mwait=monitor wait
|
|
neg=two's complement negation
|
|
nop=no operation
|
|
not=one's complement negation
|
|
or=logical inclusive or
|
|
orpd=bitwise logical or of double-fp values
|
|
orps=bitwise logical or of single-fp values
|
|
out=output to port
|
|
outs=output string to port
|
|
pabsb=packed absolute value
|
|
pabsd=packed absolute value
|
|
pabsw=packed absolute value
|
|
packssdw=pack with signed saturation
|
|
packsswb=pack with signed saturation
|
|
packusdw=pack with unsigned saturation
|
|
packuswb=pack with unsigned saturation
|
|
paddb=add packed integers
|
|
paddd=add packed integers
|
|
paddq=add packed quadword integers
|
|
paddsb=add packed signed integers with signed saturation
|
|
paddsw=add packed signed integers with signed saturation
|
|
paddusb=add packed unsigned integers with unsigned saturation
|
|
paddusw=add packed unsigned integers with unsigned saturation
|
|
paddw=add packed integers
|
|
palignr=packed align right
|
|
pand=logical and
|
|
pandn=logical and not
|
|
pause=spin loop hint
|
|
pavgb=average packed integers
|
|
pavgw=average packed integers
|
|
pblendvb=variable blend packed bytes
|
|
pblendw=blend packed words
|
|
pclmulqdq=performs a carry-less multiplication of two 64-bit polynomials over the finite field GF(2).
|
|
pcmpeqb=compare packed data for equal
|
|
pcmpeqd=compare packed data for equal
|
|
pcmpeqq=compare packed qword data for equal
|
|
pcmpeqw=compare packed data for equal
|
|
pcmpestri=packed compare explicit length strings, return index
|
|
pcmpestrm=packed compare explicit length strings, return mask
|
|
pcmpgtb=compare packed signed integers for greater than
|
|
pcmpgtd=compare packed signed integers for greater than
|
|
pcmpgtw=compare packed signed integers for greater than
|
|
pcmpistri=packed compare implicit length strings, return index
|
|
pcmpistrm=packed compare implicit length strings, return mask
|
|
pextrb=extract a byte from an XMM register and insert the value into a general-purpose register or memory
|
|
pextrd=extract a dword from an XMM register and insert the value into a general-purpose register or memory
|
|
pextrq=extract a qword from an XMM register and insert the value into a general-purpose register or memory
|
|
pextrw=extract a word from an XMM register and insert the value into a general-purpose register or memory
|
|
phaddd=packed horizontal add
|
|
phaddsw=packed horizontal add and saturate
|
|
phaddw=packed horizontal add
|
|
phminposuw=packed horizontal word minimum
|
|
phsubd=packed horizontal subtract
|
|
phsubsw=packed horizontal subtract and saturate
|
|
phsubw=packed horizontal subtract
|
|
pinsrb=insert a byte value from a register or memory into an XMM register
|
|
pinsrd=insert a dword value from a register or memory into an XMM register
|
|
pinsrq=insert a qword value from a register or memory into an XMM register
|
|
pmaddubsw=multiply and add packed signed and unsigned bytes
|
|
pmaddwd=multiply and add packed integers
|
|
pmaxsb=maximum of packed signed byte integers
|
|
pmaxsd=maximum of packed signed dword integers
|
|
pmaxsw=maximum of packed signed word integers
|
|
pmaxub=maximum of packed unsigned byte integers
|
|
pmaxud=maximum of packed unsigned dword integers
|
|
pmaxuw=maximum of packed unsigned word integers
|
|
pminsb=minimum of packed signed byte integers
|
|
pminsd=minimum of packed signed dword integers
|
|
pminsw=minimum of packed signed word integers
|
|
pminub=minimum of packed unsigned byte integers
|
|
pminud=minimum of packed unsigned dword integers
|
|
pminuw=minimum of packed unsigned word integers
|
|
pmovmskb=move byte mask
|
|
pmovsxbd=sign extend the lower 8-bit integer of each packed dword element into packed signed dword integers
|
|
pmovsxbq=sign extend the lower 8-bit integer of each packed qword element into packed signed qword integers
|
|
pmovsxbw=sign extend the lower 8-bit integer of each packed word element into packed signed word integers
|
|
pmovsxdq=sign extend the lower 32-bit integer of each packed qword element into packed signed qword integers
|
|
pmovsxwd=sign extend the lower 16-bit integer of each packed dword element into packed signed dword integers
|
|
pmovsxwq=sign extend the lower 16-bit integer of each packed qword element into packed signed qword integers
|
|
pmovzxbd=zero extend the lower 8-bit integer of each packed dword element into packed signed dword integers
|
|
pmovzxbq=zero extend the lower 8-bit integer of each packed qword element into packed signed qword integers
|
|
pmovzxbw=zero extend the lower 8-bit integer of each packed word element into packed signed word integers
|
|
pmovzxdq=zero extend the lower 32-bit integer of each packed qword element into packed signed qword integers
|
|
pmovzxwd=zero extend the lower 16-bit integer of each packed dword element into packed signed dword integers
|
|
pmovzxwq=zero extend the lower 16-bit integer of each packed qword element into packed signed qword integers
|
|
pmulhrsw=packed multiply high with round and scale
|
|
pmulhuw=multiply packed unsigned integers and store high result
|
|
pmulhw=multiply packed signed integers and store high result
|
|
pmulld=multiply packed signed dword integers and store low result
|
|
pmullw=multiply packed signed integers and store low result
|
|
pmuludq=multiply packed unsigned dw integers
|
|
pop=pops last element of stack and stores the result in argument
|
|
popa=pop all general-purpose registers
|
|
popad=pop all general-purpose registers
|
|
popcnt=bit population count
|
|
popf=pop stack into flags register
|
|
popfd=pop stack into eflags register
|
|
popfq=pop stack into rflags register
|
|
por=bitwise logical or
|
|
prefetchnta=prefetch data into caches
|
|
prefetcht0=prefetch data into caches
|
|
prefetcht1=prefetch data into caches
|
|
prefetcht2=prefetch data into caches
|
|
psadbw=compute sum of absolute differences
|
|
pshufb=packed shuffle bytes
|
|
pshufd=shuffle packed doublewords
|
|
pshufhw=shuffle packed high words
|
|
pshuflw=shuffle packed low words
|
|
pshufw=shuffle packed words
|
|
psignb=packed sign
|
|
psignw=packed sign
|
|
pslld=shift packed data left logical
|
|
pslldq=shift double quadword left logical
|
|
psllq=shift packed data left logical
|
|
psllw=shift packed data left logical
|
|
psrad=shift packed data right arithmetic
|
|
psraw=shift packed data right arithmetic
|
|
psrld=shift packed data right logical
|
|
psrldq=shift double quadword right logical
|
|
psrlq=shift packed data right logical
|
|
psrlw=shift packed data right logical
|
|
psubb=subtract packed integers
|
|
psubd=subtract packed integers
|
|
psubq=subtract packed quadword integers
|
|
psubsb=subtract packed signed integers with signed saturation
|
|
psubsw=subtract packed signed integers with signed saturation
|
|
psubusb=subtract packed unsigned integers with unsigned saturation
|
|
psubusw=subtract packed unsigned integers with unsigned saturation
|
|
psubw=subtract packed integers
|
|
ptest=logical compare
|
|
punpckhbw=unpack high data
|
|
punpckhdq=unpack high data
|
|
punpckhqdq=unpack high data
|
|
punpckhwd=unpack high data
|
|
punpcklbw=unpack low data
|
|
punpckldq=unpack low data
|
|
punpcklqdq=unpack low data
|
|
punpcklwd=unpack low data
|
|
push=push word, doubleword or quadword onto the stack
|
|
pusha=push all general-purpose registers
|
|
pushad=push all general-purpose registers
|
|
pushf=push flags register onto the stack
|
|
pushfd=push eflags register onto the stack
|
|
pushfq=push rflags register onto the stack
|
|
pxor=logical exclusive or
|
|
rcl=rotate bits left (with CF)
|
|
rcpps=compute reciprocals of packed single-fp values
|
|
rcpss=compute reciprocal of scalar single-fp values
|
|
rcr=rotate bits right (with CF)
|
|
rdmsr=read from model specific register
|
|
rdpmc=read performance-monitoring counters
|
|
rdtsc=read time-stamp counter
|
|
rdtscp=read time-stamp counter and processor id
|
|
rep=repeats next instruction ECX times
|
|
repe=repeat string
|
|
repnz=repeat string operation prefix
|
|
repz=repeat string operation prefix
|
|
ret=return from subroutine. pop 4 bytes from esp and jump there.
|
|
retf=return from procedure
|
|
retn=return from procedure
|
|
rex.b=extension of r/m field, base field, or opcode reg field
|
|
rex.r=extension of modr/m reg field
|
|
rex.rb=rex.r and rex.b combination
|
|
rex.rx=rex.r and rex.x combination
|
|
rex.rxb=rex.r, rex.x and rex.b combination
|
|
rex.w=64 bit operand size
|
|
rex.wb=rex.w and rex.b combination
|
|
rex.wr=rex.w and rex.r combination
|
|
rex.wrb=rex.w, rex.r and rex.b combination
|
|
rex.wrx=rex.w, rex.r and rex.x combination
|
|
rex.wrxb=rex.w, rex.r, rex.x and rex.b combination
|
|
rex.wx=rex.w and rex.x combination
|
|
rex.wxb=rex.w, rex.x and rex.b combination
|
|
rex.x=extension of sib index field
|
|
rex.xb=rex.x and rex.b combination
|
|
rex=access to new 8-bit registers
|
|
rol=rotate bits left
|
|
ror=rotate bits right
|
|
roundpd=round packed double-fp values
|
|
roundps=round packed single-fp values
|
|
roundsd=round scalar double-fp values
|
|
roundss=round scalar single-fp values
|
|
rsm=resume from system management mode
|
|
rsqrtps=compute recipr. of square roots of packed single-fp values
|
|
rsqrtss=compute recipr. of square root of scalar single-fp value
|
|
rtdsc=read time-stamp counter into edx:eax
|
|
sahf=store ah into flags
|
|
sal=arithmetic left shift
|
|
salc=set al if carry
|
|
sar=arithmetic right shift
|
|
sbb=integer subtraction with borrow
|
|
scas=scan string
|
|
scasb=cmp al, ES:[edi++]
|
|
scasw=cmp ax, ES:[edi+=2]
|
|
setb=set byte on condition - below/not above or equal/carry (cf=1)
|
|
setbe=set byte on condition - below or equal/not above (cf=1 and zf=1)
|
|
sete=set byte if equal (zf=1)
|
|
setl=set byte on condition - less/not greater (sf!=of)
|
|
setle=set byte on condition - less or equal/not greater ((zf=1) or (sf!=of))
|
|
setnb=set byte on condition - not below/above or equal/not carry (cf=0)
|
|
setnbe=set byte on condition - not below or equal/above (cf=0 and zf=0)
|
|
setne=set byte on condition - not zero/not equal (zf=0)
|
|
setnl=set byte on condition - not less/greater or equal (sf=of)
|
|
setnle=set byte on condition - not less nor equal/greater ((zf=0) and (sf=of))
|
|
setno=set byte on condition - not overflow (of=0)
|
|
setnp=set byte on condition - not parity/parity odd
|
|
setns=set byte on condition - not sign (sf=0)
|
|
setnz=set byte on condition - not zero/not equal (zf=1)
|
|
seto=set byte on condition - overflow (of=1)
|
|
setp=set byte on condition - parity/parity even (pf=1)
|
|
sets=set byte on condition - sign (sf=1)
|
|
setz=set byte on condition - zero/equal (zf=0)
|
|
sfence=store fence
|
|
sgdt=store global descriptor table register
|
|
shl=logic left shift (0 padding)
|
|
shld=double precision shift left
|
|
shr=logic right shift (0 padding)
|
|
shrd=double precision shift right
|
|
shufpd=shuffle packed double-fp values
|
|
shufps=shuffle packed single-fp values
|
|
sidt=store interrupt descriptor table register
|
|
sldt=store local descriptor table register.
|
|
smsw=store machine status word
|
|
sqrtpd=compute square roots of packed double-fp values
|
|
sqrtps=compute square roots of packed single-fp values
|
|
sqrtsd=compute square root of scalar double-fp value
|
|
sqrtss=compute square root of scalar single-fp value
|
|
ss=ss segment override prefix
|
|
stc=set carry flag
|
|
std=set direction flag
|
|
sti=set interrupt flag
|
|
stmxcsr=store mxcsr register state
|
|
stos=store string
|
|
stosb=store string
|
|
stosq=store string quadword (added with x86_64)
|
|
str=store task register
|
|
sub=substract src and dst, stores result on dst
|
|
subpd=subtract packed double-fp values
|
|
subps=subtract packed single-fp values
|
|
subsd=subtract scalar double-fp values
|
|
subss=subtract scalar single-fp values
|
|
swapgs=swap gs base register
|
|
syscall=fast system call
|
|
sysenter=fast system call
|
|
sysexit=fast return from fast system call
|
|
sysret=return from fast system call
|
|
test=set eflags after comparing two registers (AF, CF, OF, PF, SF, ZF)
|
|
ucomisd=unordered compare scalar double-fp values and set eflags
|
|
ucomiss=unordered compare scalar single-fp values and set eflags
|
|
ud1=undefined instruction
|
|
ud2=undefined instruction
|
|
unpckhpd=unpack and interleave high packed double-fp values
|
|
unpckhps=unpack and interleave high packed single-fp values
|
|
unpcklpd=unpack and interleave low packed double-fp values
|
|
unpcklps=unpack and interleave low packed single-fp values
|
|
verr=verify a segment for reading
|
|
verw=verify a segment for writing
|
|
vmcall=call to vm monitor
|
|
vmclear=clear virtual-machine control structure
|
|
vmlaunch=launch virtual machine
|
|
vmptrld=load pointer to virtual-machine control structure
|
|
vmptrst=store pointer to virtual-machine control structure
|
|
vmread=read field from virtual-machine control structure
|
|
vmresume=resume virtual machine
|
|
vmwrite=write field to virtual-machine control structure
|
|
vmxoff=leave vmx operation
|
|
vmxon=enter vmx operation
|
|
wait=stop process execution until TEST pin activated
|
|
wbinvd=write back and invalidate cache
|
|
wrmsr=write to model specific register
|
|
xadd=exchange and add
|
|
xchg=exchange register/memory with register
|
|
xgetbv=get value of extended control register
|
|
xlat=table look-up translation
|
|
xor=logical exclusive or
|
|
xorpd=bitwise logical xor for double-fp values
|
|
xorps=bitwise logical xor for single-fp values
|
|
xrstor=restore processor extended states
|
|
xsave=save processor extended states
|
|
xsetbv=set extended control register
|