Donc, j'apprends l'assemblage d'Atmel AVR à partir du manuel de Huang. Il y a l'exemple suivant dans le livre:Erreur présumée dans l'exemple de manuel - Atmel Assembly
// Subtract 10 from mem(0x2000)
ldi XL, 0x00 ; Load mem(0x2000) into X
ldi XH, 0x20 ;
ld r0, X ; Load the value into r0
sbi r0, 10 ; Subtract 10 from r0.
st X, r0 ; Store the result back in mem(0x2000)
N'est-ce pas incorrect? La ligne 4 ne devrait-elle pas être subi
, et non sbi
.
La documentation sbi
lit:
Description:
Sets a specified bit in an I/O register. This instruction operates on the
lower 32 I/O registers - addresses 0-31.
Cela ne semble pas du tout lié à ce que l'exemple essaie de faire. Ai-je manqué quelque chose, ou devrais-je informer l'éditeur?
Tout à fait à droite - et XL et XH font partie de X, pas de Y (le commentaire est trompeur). Quelqu'un a mélangé les choses. –
Il était à l'origine Y dans ma solution à l'exemple, mais j'ai changé pour refléter la solution d'exemple du livre (qui a utilisé X). Je suppose que j'ai raté le commentaire. Fixer maintenant – Airhead