Instruction INR dans 8086/8088 : Incrémenter Registre/Mémoire
Correction : Le mnémonique INR appartient au 8085/Z80, pas au 8086/8088. En 8086/8088 (x86), l'instruction équivalente est INC. L'opcode 04h est ADD AL, imm8 en 8086, pas INR.
8086/8088 : Instruction INC
Opcode : FE /0 (INC r/m8) ou FF /0 (INC r/m16/32).
Opération : DEST ← DEST + 1 (signé/non-signé, même binaire).
Drapeaux affectés : AF, OF, PF, SF, ZF. CF inchangé.
Formes et exemples
| Syntaxe | Encodage | Description |
|---|---|---|
INC AL | FE C0 | Incrémente registre 8 bits AL |
INC AX | 40 | Incrémente registre 16 bits AX (forme courte, opcode+reg) |
INC EAX | 40 (avec préfixe 66h en 16 bits) / FF C0 (mode 32 bits) | Incrémente registre 32 bits EAX (386+) |
INC BYTE PTR [BX+SI] | FE 00 | Incrémente octet à DS:BX+SI |
INC WORD PTR [SI+10h] | FF 44 10 | Incrémente mot à DS:SI+10h |
INC DWORD PTR [BX] | FF 07 | Incrémente double-mot à DS:BX (386+) |
Points clés
- Pas d'opérande immédiat :
INC AL, 5est invalide. UtilisezADD AL, 5. - Taille opérande : Déterminée par registre (AL/AX/EAX) ou taille pointeur (BYTE/WORD/DWORD PTR).
- Drapeau Retenue (CF) NON affecté : Contrairement à ADD, INC ne modifie pas CF. Crucial pour boucles multi-précision où CF doit être préservé.
- OF mis si débordement signé (ex. : 7Fh → 80h en 8 bits ; 7FFFh → 8000h en 16 bits).
- Cycles (8086) : Registre : 2–3 ; Mémoire : 15–16 + EA.
8085/Z80 : Instruction INR (Pour référence)
- Mnémonique :
INR r(registre) ouINR M(mémoire en HL). - Opcode :
04(INR B),0C(INR C),14(INR D),1C(INR E),24(INR H),2C(INR L),34(INR M),3C(INR A). - Opération : r ← r + 1 ou (HL) ← (HL) + 1.
- Drapeaux : Z, S, P, AC. CY non affecté.
- Cycles : 4 (registre), 10 (mémoire).
DEC / DCR (Décrément)
Complément : DEC (8086) / DCR (8085). Même comportement drapeaux (CF inchangé).
Résumé : En 8086, utilisez INC (pas INR). Incrémente registre ou mémoire de 1, met à jour AF/OF/PF/SF/ZF, laisse CF seul. Opcode 04h = ADD AL, imm8.
