39 lines
598 B
ArmAsm
39 lines
598 B
ArmAsm
.macro try bytes:vararg
|
|
.byte \bytes
|
|
.byte 0x66, \bytes
|
|
.byte 0x48, \bytes
|
|
.byte 0x66, 0x48, \bytes
|
|
.endm
|
|
|
|
.text
|
|
|
|
_start:
|
|
try 0x50
|
|
try 0x58
|
|
|
|
try 0x8f, 0xc0
|
|
try 0x8f, 0x00
|
|
|
|
try 0xff, 0xd0
|
|
try 0xff, 0x10
|
|
|
|
try 0xff, 0xe0
|
|
try 0xff, 0x20
|
|
|
|
try 0xff, 0xf0
|
|
try 0xff, 0x30
|
|
|
|
# push with a 1-byte immediate
|
|
try 0x6a, 0xff
|
|
|
|
# push with a 4-(or 2-)byte immediate
|
|
try 0x68, 0x02, 0x03, 0x04, 0x05
|
|
|
|
# push a segment register
|
|
try 0x0f, 0xa8
|
|
# with extraneous rex.B
|
|
try 0x41, 0x0f, 0xa8
|
|
|
|
# This is just to synchronize the disassembly.
|
|
# Any new cases must come before this line!
|
|
nop
|