如何在C/C++使用内联汇编[英文版]
2010-01-10 09:37:23 来源:WEB开发网核心提示:RegistersThe following registers are supported. Register names are in upper or lower case. AL, AH, AX, EAX BL, BH, BX, EBX CL, CH, CX, ECX DL, DH, DX, EDX BP, E
RegistersThe following registers are supported. Register names are in upper or lower case. AL, AH, AX, EAX BL, BH, BX, EBX CL, CH, CX, ECX DL, DH, DX, EDX BP, EBP SP, ESP DI, EDI SI, ESI ES, CS, SS, DS, GS, FS CR0, CR2, CR3, CR4 DR0, DR1, DR2, DR3, DR6, DR7 TR3, TR4, TR5, TR6, TR7 ST ST(0), ST(1), ST(2), ST(3), ST(4), ST(5), ST(6), ST(7) MM0, MM1, MM2, MM3, MM4, MM5, MM6, MM7 XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7 OpcodesThe following instructions are supported. Opcode names are in upper or lower case.
| aaa | aad | aam | aas | adc |
| add | addpd | addps | addsd | addss |
| and | andnpd | andnps | andpd | andps |
| arpl | bound | bsf | bsr | bswap |
| bt | btc | btr | bts | call |
| cbw | cdq | clc | cld | clflush |
| cli | clts | cmc | cmova | cmovae |
| cmovb | cmovbe | cmovc | cmove | cmovg |
| cmovge | cmovl | cmovle | cmovna | cmovnae |
| cmovnb | cmovnbe | cmovnc | cmovne | cmovng |
| cmovnge | cmovnl | cmovnle | cmovno | cmovnp |
| cmovns | cmovnz | cmovo | cmovp | cmovpe |
| cmovpo | cmovs | cmovz | cmp | cmppd |
| cmpps | cmps | cmpsb | cmpsd | cmpss |
| cmpsw | cmpxch8b | cmpxchg | comisd | comiss |
| cpuid | cvtdq2pd | cvtdq2ps | cvtpd2dq | cvtpd2pi |
| cvtpd2ps | cvtpi2pd | cvtpi2ps | cvtps2dq | cvtps2pd |
| cvtps2pi | cvtsd2si | cvtsd2ss | cvtsi2sd | cvtsi2ss |
| cvtss2sd | cvtss2si | cvttpd2dq | cvttpd2pi | cvttps2dq |
| cvttps2pi | cvttsd2si | cvttss2si | cwd | cwde |
| da | daa | das | db | dd |
| de | dec | df | di | div |
| divpd | divps | divsd | divss | dl |
| dq | ds | dt | dw | emms |
| enter | f2xm1 | fabs | fadd | faddp |
| fbld | fbstp | fchs | fclex | fcmovb |
| fcmovbe | fcmove | fcmovnb | fcmovnbe | fcmovne |
| fcmovnu | fcmovu | fcom | fcomi | fcomip |
| fcomp | fcompp | fcos | fdecstp | fdisi |
| fdiv | fdivp | fdivr | fdivrp | feni |
| ffree | fiadd | ficom | ficomp | fidiv |
| fidivr | fild | fimul | fincstp | finit |
| fist | fistp | fisub | fisubr | fld |
| fld1 | fldcw | fldenv | fldl2e | fldl2t |
| fldlg2 | fldln2 | fldpi | fldz | fmul |
| fmulp | fnclex | fndisi | fneni | fninit |
| fnop | fnsave | fnstcw | fnstenv | fnstsw |
| fpatan | fprem | fprem1 | fptan | frndint |
| frstor | fsave | fscale | fsetpm | fsin |
| fsincos | fsqrt | fst | fstcw | fstenv |
| fstp | fstsw | fsub | fsubp | fsubr |
| fsubrp | ftst | fucom | fucomi | fucomip |
| fucomp | fucompp | fwait | fxam | fxch |
| fxrstor | fxsave | fxtract | fyl2x | fyl2xp1 |
| hlt | idiv | imul | in | inc |
| ins | insb | insd | insw | int |
| into | invd | invlpg | iret | iretd |
| ja | jae | jb | jbe | jc |
| jcxz | je | jecxz | jg | jge |
| jl | jle | jmp | jna | jnae |
| jnb | jnbe | jnc | jne | jng |
| jnge | jnl | jnle | jno | jnp |
| jns | jnz | jo | jp | jpe |
| jpo | js | jz | lahf | lar |
| ldmxcsr | lds | lea | leave | les |
| lfence | lfs | lgdt | lgs | lidt |
| lldt | lmsw | lock | lods | lodsb |
| lodsd | lodsw | loop | loope | loopne |
| loopnz | loopz | lsl | lss | ltr |
| maskmovdqu | maskmovq | maxpd | maxps | maxsd |
| maxss | mfence | minpd | minps | minsd |
| minss | mov | movapd | movaps | movd |
| movdq2q | movdqa | movdqu | movhlps | movhpd |
| movhps | movlhps | movlpd | movlps | movmskpd |
| movmskps | movntdq | movnti | movntpd | movntps |
| movntq | movq | movq2dq | movs | movsb |
| movsd | movss | movsw | movsx | movupd |
| movups | movzx | mul | mulpd | mulps |
| mulsd | mulss | neg | nop | not |
| or | orpd | orps | out | outs |
| outsb | outsd | outsw | packssdw | packsswb |
| packuswb | paddb | paddd | paddq | paddsb |
| paddsw | paddusb | paddusw | paddw | pand |
| pandn | pavgb | pavgw | pcmpeqb | pcmpeqd |
| pcmpeqw | pcmpgtb | pcmpgtd | pcmpgtw | pextrw |
| pinsrw | pmaddwd | pmaxsw | pmaxub | pminsw |
| pminub | pmovmskb | pmulhuw | pmulhw | pmullw |
| pmuludq | pop | popa | popad | popf |
| popfd | por | prefetchnta | prefetcht0 | prefetcht1 |
| prefetcht2 | psadbw | pshufd | pshufhw | pshuflw |
| pshufw | pslld | pslldq | psllq | psllw |
| psrad | psraw | psrld | psrldq | psrlq |
| psrlw | psubb | psubd | psubq | psubsb |
| psubsw | psubusb | psubusw | psubw | punpckhbw |
| punpckhdq | punpckhqdq | punpckhwd | punpcklbw | punpckldq |
| punpcklqdq | punpcklwd | push | pusha | pushad |
| pushf | pushfd | pxor | rcl | rcpps |
| rcpss | rcr | rdmsr | rdpmc | rdtsc |
| rep | repe | repne | repnz | repz |
| ret | retf | rol | ror | rsm |
| rsqrtps | rsqrtss | sahf | sal | sar |
| sbb | scas | scasb | scasd | scasw |
| seta | setae | setb | setbe | setc |
| sete | setg | setge | setl | setle |
| setna | setnae | setnb | setnbe | setnc |
| setne | setng | setnge | setnl | setnle |
| setno | setnp | setns | setnz | seto |
| setp | setpe | setpo | sets | setz |
| sfence | sgdt | shl | shld | shr |
| shrd | shufpd | shufps | sidt | sldt |
| smsw | sqrtpd | sqrtps | sqrtsd | sqrtss |
| stc | std | sti | stmxcsr | stos |
| stosb | stosd | stosw | str | sub |
| subpd | subps | subsd | subss | sysenter |
| sysexit | test | ucomisd | ucomiss | ud2 |
| unpckhpd | unpckhps | unpcklpd | unpcklps | verr |
| verw | wait | wbinvd | wrmsr | xadd |
| xchg | xlat | xlatb | xor | xorpd |
| xorps |
Pentium 4 (Prescott) Opcodes Supported
| addsubpd | addsubps | fisttp | haddpd | haddps |
| hsubpd | hsubps | lddqu | monitor | movddup |
| movshdup | movsldup | mwait |
AMD Opcodes
| pavgusb | pf2id | pfacc | pfadd | pfcmpeq |
| pfcmpge | pfcmpgt | pfmax | pfmin | pfmul |
| pfnacc | pfpnacc | pfrcp | pfrcpit1 | pfrcpit2 |
| pfrsqit1 | pfrsqrt | pfsub | pfsubr | pi2fd |
| pmulhrw | pswapd |
更多精彩
赞助商链接
