I am looking at asmdb and the intel docs to try and find out what some of these mean from asmdb:
add | x:r8/m8, ib/ub | 80 /0 ib
add | X:r64/m64, id | REX.W 81 /0 id
add | x:~r16/m16,~r16 | 66 01 /r
and | x:al, ib/ub | 24 ib
btc | x:r16/m16, ib/ub | 66 0F BA /7 ib
What do the /0
and /r
and /7
mean? I assume there might be more "slash x" values, what do they mean, how do I find them in the Intel docs?
Then what does the ib
and id
stuff mean, those aren't hex values and hard to search for in the Intel docs. 66
and 80
are hex values as far as I can tell, but the ib
, iw
, etc. aren't.
I want to eventually build a machine code generator, so need to be able to understand what these basic components of the machine code opcodes are.