En el ensamblaje de AVR: quiero trabajar en la representación del código de máquina de lo siguiente:
ANDI r18,$10
Sé que el código de operación para ANDI es
0010 KKKK dddd KKKK
Y sé que r18
es el registro de destino (Rd), y que $10
(16) es KKKKKKKKK. Mi intuición cree que debo reemplazar dddd
con 18
, pero eso no es posible con solo 5 bits (a menos que me esté perdiendo algo aquí ...) ya que 18 en binario es 10010
.
Estoy pensando que simplemente reemplazo KKKK
KKKK
con 0001
0000
, pero simplemente no veo cómo se supone que debo abordar el registro 18 con solo 4 bits.
El resumen del conjunto de instrucciones dice que r16 ... r31 se pueden representar con dddd
, lo que creo que también significa 4 bits, así que sé que tengo algo horriblemente incorrecto.
Cualquier ayuda sería genial.
Referencia: enlace - página 20