I'm looking at the ADD instruction, and there are so many things I don't have an idea what they mean.
The gaps I have are.
- In the Opcode column what is
/0
and/r
?
I understand the number is the opcode in hex. The ib/iw/id is byte/word/doubleword. I understand that REX.W is the 64 bit prefix flag.
- How do I set the REX.W prefix flag?
- What is the REX flag? how is it different than the REX.W flag?
- What is the Op/En column portraying? I / MI/ MR / RM
I know that r/m8 in the instruction column is specifying that you can provide an an 8 bit address, and it will add the immediate to it. It looks like r8 means just read from that address.
- what is the compat/leg mode mean when it says valid vs n.e? Is it typical to switch back and forth in normal higher level language code? Seems on 64 bit systems, you will almost always be in 64 bit mode?