What is a relatively quick and easy method of looking up what an arbitrary opcode means (say, 0xC8
) in x86?
The Intel Software Developer\'s manual
Another way, using a debugger (gdb, windbg, ollydbg, ...) or disassembler (IDA), and then, set byte sequences in writable memory region. Finally, disassembly at the starting address of that byte sequences.
It's seam complicated, but useful in some situations when you cracking/reversing.
Check this very complete table of x86 opcodes on x86asm.net.
Just CTRL+F
and you're done! Be sure to read the correct line tho, as C8
for example may appear in several locations.
While Intel Software Developer's Manual itself is definitely not very convenient to search through, the opcode tables in this manual could help. Take a look at the Appendix A "Opcode Map" in the volume 2B of the manual, it might be useful.
Here is a pretty nice visual. Doesn't go into much detail, but if you just need to look up a hex value really quick, this should do it-
Source: http://pnx.tf/files/x86_opcode_structure_and_instruction_overview.png
Sandpile is probably what you're looking for. Still, the best way to look at the x86 encoding is not in hex but rather in octal. Suddenly x86 doesn't look so ugly and it makes some sense.
The classic explanation of this was available at Usenet alt.lang.asm circa 1992, however, today is available in github
A fast reference for looking up opcodes is sandpile. I need two clicks to find out what 0xc8 does (it's enter
, btw).