| .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-byte immediate |
| try 0x68, 0x01, 0x02, 0x03, 0x04 |
| |
| # 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 |