📄 x86-64-opcode.s
字号:
.text # Prefixes # O16 A32 OV REX OPCODE ; NOTES # CALL CALLq *(%r8) # -- -- -- 41 FF 10 ; REX to access upper reg. CALLq *(%rax) # -- -- -- -- FF 10 CALLq *(%r8) # -- -- -- 41 FF 10 ; REX to access upper reg. CALLq *(%rax) # -- -- -- -- FF 10 # RET lret # -- -- -- -- CB retq # -- -- -- -- C3 # IRET IRET # -- -- -- -- CF ; 32-bit operand size IRETW # 66 -- -- -- CF ; O16 for 16-bit operand size IRETQ # -- -- -- 48 CF ; REX for 64-bit operand size # CMP # MOV MOVw %cs,(%r8) # 66 -- -- 41 8C 08 ; REX to access upper reg. O16 for 16-bit operand size MOVw %cs,(%rax) # 66 -- -- -- 8C 08 ; O16 for 16-bit operand size MOVw %ss,(%r8) # 66 -- -- 41 8C 10 ; REX to access upper reg. O16 for 16-bit operand size MOVw %ss,(%rax) # 66 -- -- -- 8C 10 ; O16 for 16-bit operand size MOVw %fs,(%r8) # 66 -- -- 41 8C 20 ; REX to access upper reg. O16 for 16-bit operand size MOVw %fs,(%rax) # 66 -- -- -- 8C 20 ; O16 for 16-bit operand size MOVl %cs,(%r8) # -- -- -- 41 8C 08 ; REX to access upper reg. MOVl %cs,(%rax) # -- -- -- -- 8C 08 MOVl %ss,(%r8) # -- -- -- 41 8C 10 ; REX to access upper reg. MOVl %ss,(%rax) # -- -- -- -- 8C 10 MOVl %fs,(%r8) # -- -- -- 41 8C 20 ; REX to access upper reg. MOVl %fs,(%rax) # -- -- -- -- 8C 20 MOVl (%r8),%ss # -- -- -- 41 8E 10 ; REX to access upper reg. MOVl (%rax),%ss # -- -- -- -- 8E 10 MOVl (%r8),%fs # -- -- -- 41 8E 20 ; REX to access upper reg. MOVl (%rax),%fs # -- -- -- -- 8E 20 MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg. MOVb $0,(%rax) # -- -- -- -- C6 00 00 MOVw $0x7000,(%r8) # 66 -- -- 41 C7 00 00 70 ; REX to access upper reg. O16 for 16-bit operand size MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size MOVl $0x70000000,(%r8) # -- -- -- 41 C7 00 00 00 00 70 ; REX to access upper reg. MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70 MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg. MOVb $0,(%rax) # -- -- -- -- C6 00 00 MOVw $0x7000,(%r8) # 66 -- -- -- 41 C7 00 00 70 ; O16 for 16-bit operand size MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70 MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg. MOVb $0,(%rax) # -- -- -- -- C6 00 00 MOVw $0x7000,(%r8) # 66 -- -- 41 C7 00 00 70 ; REX to access upper reg. O16 for 16-bit operand size MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size MOVl $0x70000000,(%r8) # -- -- -- 41 C7 00 00 00 00 70 ; REX to access upper reg. MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70 MOVq $0x70000000,(%r8) # -- -- -- 49 C7 00 00 00 00 70 ; REX for 64-bit operand size. REX to access upper reg. MOVq $0x70000000,(%rax) # -- -- -- 48 C7 00 00 00 00 70 ; REX for 64-bit operand size # MOVNTI MOVNTI %eax,(%r8) # -- -- -- 41 0f c3 00 ; REX to access upper reg. MOVNTI %eax,(%rax) # -- -- -- -- 0f c3 00 MOVNTI %rax,(%r8) # -- -- -- 49 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size MOVNTI %rax,(%rax) # -- -- -- 48 0F C3 00 ; REX for 64-bit operand size. REX to access upper reg. MOVNTI %r8,(%r8) # -- -- -- 4D 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size MOVNTI %r8,(%rax) # -- -- -- 4C 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size # Conditionals # LOOP # Jcc # 66 -- -- -- 77 FD ; A16 override: (Addr64) = ZEXT(Addr16) # 66 -- -- -- 0F 87 F9 FF FF FF ; A16 override: (Addr64) = ZEXT(Addr16) # J*CXZ # 66 67 -- -- E3 FC ; ECX used as counter. A16 override: (Addr64) = ZEXT(Addr16) # 66 -- -- -- E3 FD ; A16 override: (Addr64) = ZEXT(Addr16) # Integer # IDIV IDIVb (%r8) # -- -- -- 41 F6 38 ; Sign extended result. REX to access upper reg. IDIVb (%rax) # -- -- -- -- F6 38 ; Sign extended result IDIVw (%r8) # 66 -- -- 41 F7 38 ; Sign extended result. REX to access upper reg. O16 for 16-bit IDIVw (%rax) # 66 -- -- -- F7 38 ; Sign extended result. O16 for 16-bit operand size IDIVl (%r8) # -- -- -- 41 F7 38 ; Sign extended result. REX to access upper reg IDIVl (%rax) # -- -- -- -- F7 38 ; Sign extended result IDIVq (%r8) # -- -- -- 49 F7 38 ; Sign extended result. REX for 64-bit operand size. REX to access u IDIVq (%rax) # -- -- -- 48 F7 38 ; Sign extended result. REX for 64-bit operand size # IMUL IMULb (%r8) # -- -- -- 41 F6 28 ; Sign extended result. REX to access upper reg IMULb (%rax) # -- -- -- -- F6 28 ; Sign extended result IMULw (%r8) # 66 -- -- 41 F7 28 ; Sign extended result. O16 for 16-bit operand size. REX to access IMULw (%rax) # 66 -- -- -- F7 28 ; Sign extended result. O16 for 16-bit operand size IMULl (%r8) # -- -- -- 41 F7 28 ; Sign extended result. REX to access upper reg IMULl (%rax) # -- -- -- -- F7 28 ; Sign extended result IMULq (%r8) # -- -- -- 49 F7 28 ; Sign extended result. REX for 64-bit operand size. REX to access u IMULq (%rax) # -- -- -- 48 F7 28 ; Sign extended result. REX for 64-bit operand size # SIMD/SSE # ADDPD ADDPD (%r8),%xmm0 # -- -- 66 41 0F 58 00 ; REX to access upper reg. OVR 128bit MMinstr. ADDPD (%rax),%xmm0 # -- -- 66 -- 0F 58 00 ; OVR 128bit MMinstr. ADDPD (%r8),%xmm15 # -- -- 66 45 0F 58 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. ADDPD (%rax),%xmm15 # -- -- 66 44 0F 58 38 ; REX to access upper XMM reg. OVR 128bit MMinstr. ADDPD (%r8),%xmm8 # -- -- 66 45 0F 58 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. ADDPD (%rax),%xmm8 # -- -- 66 44 0F 58 00 ; REX to access upper XMM reg. OVR 128bit MMinstr. ADDPD (%r8),%xmm7 # -- -- 66 41 0F 58 38 ; REX to access upper reg. OVR 128bit MMinstr. ADDPD (%rax),%xmm7 # -- -- 66 -- 0F 58 38 ; OVR 128bit MMinstr. ADDPD %xmm0,%xmm0 # -- -- 66 -- 0F 58 C0 ; OVR 128bit MMinstr. ADDPD %xmm15,%xmm15 # -- -- 66 45 0F 58 FF ; REX to access upper XMM reg. OVR 128bit MMinstr. ADDPD %xmm15,%xmm8 # -- -- 66 45 0F 58 C7 ; REX to access upper XMM reg. OVR 128bit MMinstr. # CMPPD # CVTSD2SI CVTSD2SIq (%r8),%rax # -- -- F2 49 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg. CVTSD2SIq (%rax),%rax # -- -- F2 48 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size CVTSD2SIq (%r8),%r8 # -- -- F2 4D 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg. CVTSD2SIq (%rax),%r8 # -- -- F2 4C 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg. CVTSD2SIq %xmm0,%rax # -- -- F2 48 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size CVTSD2SIq %xmm15,%r8 # -- -- F2 4D 0f 2d c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg. CVTSD2SIq %xmm15,%rax # -- -- F2 49 0f 2d c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg CVTSD2SIq %xmm8,%r8 # -- -- F2 4D 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg. CVTSD2SIq %xmm8,%rax # -- -- F2 49 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -