# Conditionals
# LOOP
+ LOOP . # -- -- -- -- E2 FE ; RCX used as counter.
+ LOOPq . # -- -- -- -- E2 FE ; RCX used as counter.
+ LOOPl . # -- 67 -- -- E2 FD ; ECX used as counter.
# Jcc
- # 66 -- -- -- 77 FD ; A16 override: (Addr64) = ZEXT(Addr16)
- # 66 -- -- -- 0F 87 F9 FF FF FF ; A16 override: (Addr64) = ZEXT(Addr16)
+ # 66 -- -- -- 77 FD ; O16 override: (Addr64) = ZEXT(Addr16)
+ # 66 -- -- -- 0F 87 F9 FF FF FF ; O16 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)
+ JRCXZ . # -- -- -- -- E3 FE ; RCX used as counter.
+ JECXZ . # -- 67 -- -- E3 FD ; ECX used as counter.
# SLDT
# SLDT (%eax) # -- 67 -- -- 0F 00 00 ; A32 override: (Addr64) = ZEXT(Addr32 )
SLDT %eax # -- -- -- -- 0F 00 C0
+ SLDT %rax # -- -- -- 48 0F 00 C0
+ SLDT %ax # 66 -- -- -- 0F 00 C0
+ SLDT (%rax) # -- -- -- -- 0F 00 00
# SWAPGS
xchg %ax,%ax # 66 -- -- -- 90
xchg %eax,%eax # -- -- -- -- 87 C0
xchg %rax,%rax # -- -- -- -- 90
- rex64 xchg %rax,%rax # 48 -- -- -- 90
+ rex64 xchg %rax,%rax # -- -- -- 48 90
xchg %rax,%r8 # -- -- -- 49 90
-
- .p2align 4,0
+ xchg %eax,%r8d # -- -- -- 41 90
+ xchg %r8d,%eax # -- -- -- 41 90
+ xchg %eax,%r9d # -- -- -- 41 91
+ xchg %r9d,%eax # -- -- -- 41 91
+ xchg %ebx,%eax # -- -- -- 93
+ xchg %eax,%ebx # -- -- -- 93
+ xchg %ax,%r8w # -- -- -- 66 41 90
+ xchg %r8w,%ax # -- -- -- 66 41 90
+ xchg %ax,%r9w # -- -- -- 66 41 91
+ xchg %r9w,%ax # -- -- -- 66 41 91
+
+ smsw %rax # -- -- -- 48 0F 01 e0
+ smsw %eax # -- -- -- -- 0F 01 e0
+ smsw %ax # 66 -- -- -- 0F 01 e0
+ smsw (%rax) # -- -- -- -- 0F 01 20
+
+ str %rax # -- -- -- 48 0F 00 c8
+ str %eax # -- -- -- -- 0F 00 c8
+ str %ax # 66 -- -- -- 0F 00 c8
+ str (%rax) # -- -- -- -- 0F 00 08
+
+ syscall # -- -- -- -- 0F 05
+ sysret # -- -- -- -- 0F 07
+
+ swapgs # -- -- -- -- 0F 01 f8
+
+ pushw $0x2222
+
+ .byte 0xf6, 0xc9, 0x01
+ .byte 0x66, 0xf7, 0xc9, 0x02, 0x00
+ .byte 0xf7, 0xc9, 0x04, 0x00, 0x00, 0x00
+ .byte 0x48, 0xf7, 0xc9, 0x08, 0x00, 0x00, 0x00
+ .byte 0xc0, 0xf0, 0x02
+ .byte 0xc1, 0xf0, 0x01
+ .byte 0x48, 0xc1, 0xf0, 0x01
+ .byte 0xd0, 0xf0
+ .byte 0xd1, 0xf0
+ .byte 0x48, 0xd1, 0xf0
+ .byte 0xd2, 0xf0
+ .byte 0xd3, 0xf0
+ .byte 0x48, 0xd3, 0xf0