• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1923
  • Last Modified:

Whats the HEX value for each opcode? (example: "$A1" = "MOV EAX")

Is there any place where I can see the hex value for each or almost all Opcodes?

For example:

$A1  =  MOV EAX

Please, I need it kinda fast....
Thank you!!!
  • 2
  • 2
  • 2
  • +2
2 Solutions
It has much to do with which processor the opcodes are for...

You could go to www.microchip.com for example, and grab the data and programming sheets for a particular device and you'll be a few steps closer.

The instruction set summary usually shows the mneumonic and the actual bit structure.
teste123Author Commented:
What I wanted I've found here:

Intel's official processor guides give you nice opcode maps, too.
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

teste123Author Commented:
What I really want now is something that shows me the size of each Opcode... Do you have any?
If you do, I'll increase to 450 and accept it.
Check out the 2nd part of the 2nd volume of the Pentium 4 Software Developer's Manual:
http://www.intel.com/design/pentium4/manuals/index_new.htm#sdm_vol2b (P4 Manuals index)
ftp://download.intel.com/design/Pentium4/manuals/25366714.pdf (Direct link)

The Appendices A and B would give you all the information you would need.
The size of opcodes can vary depending on prefixes. Intel 32-bit processors really have three operand sizes for data, and two operand sizes for addresses.

For example, if this code runs in 16-bit mode:

mov eax,0x01234567

It will have an "opsize" prefix. This tells the cpu to expect a 32-bit operand. The opposite is true in 32-bit mode:

mov ax,0x1234

...is encoded with a prefix.

The address size can also affect the size of the opcode. If this runs in 16 bit mode:

mov ax,[eax]

...it will have an addrsize prefix.  The opposite is true in 32-bit mode:

mov ax,[bp]

...will have an addrsize prefix.

16-bit addressing modes are [bx], [si], [di], [bp], [bx+si], [bx+di], [bp+si], [bp+di], or any of those with a constant offset.

32-bit addressing modes are [reg], [reg+reg], [reg+reg*2], [reg+reg*4], [reg+reg*8], or any of those with a constant offset (example: [eax+ebx+128])

The x86 instruction format is quite complex.
just type in the codes you want, assemble the program and go look at it with turbo debugger. on the left side of each instruction it has the exact opcode that the proccessor runs.
like mov ax,1 would look something like  0B80100 or something like that.
See http://www.sandpile.org/ia32/index.htm

It has charts for opcodes.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now