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.