Istruzione INR in 8086/8088: incremento registro/memoria
Correzione: Il mnemonico INR è 8085/Z80, non 8086/8088. In 8086/8088 (x86), l'istruzione equivalente è INC. L'opcode 04h è ADD AL, imm8 in 8086, non INR.
8086/8088: istruzione INC
Opcode: FE /0 (INC r/m8) o FF /0 (INC r/m16/32).
Operazione: DEST ← DEST + 1 (firmato/senza segno, stesso binario).
Flag influenzati: AF, OF, PF, SF, ZF. CF non modificato.
Formi ed esempi
| Sintassi | Encodifica | Descrizione |
|---|---|---|
INC AL | FE C0 | Incrementa registro AL 8-bit |
INC AX | 40 | Incrementa registro AX 16-bit (forma corta, opcode+reg) |
INC EAX | 40 (con prefisso 66h in modalità 16-bit) / FF C0 (modalità 32-bit) | Incrementa registro EAX 32-bit (386+) |
INC BYTE PTR [BX+SI] | FE 00 | Incrementa byte a DS:BX+SI |
INC WORD PTR [SI+10h] | FF 44 10 | Incrementa parola a DS:SI+10h |
INC DWORD PTR [BX] | FF 07 | Incrementa dword a DS:BX (386+) |
Punti chiave
- Nessun operando immediato:
INC AL, 5è non valido. UsaADD AL, 5. - Dimensione operando: Determinata dal registro (AL/AX/EAX) o dalla dimensione del puntatore (BYTE/WORD/DWORD PTR).
- Flag di riporto (CF) NON influenzato: A differenza di ADD, INC non modifica CF. Critico per cicli multi-precisione dove CF deve essere preservato.
- OF impostato se overflow firmato (es. 7Fh → 80h in 8-bit; 7FFFh → 8000h in 16-bit).
- Cicli (8086): Registro: 2–3; Memoria: 15–16 + EA.
8085/Z80: istruzione INR (per riferimento)
- Mnemonico:
INR r(registro) oINR M(memoria a 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). - Operazione: r ← r + 1 o (HL) ← (HL) + 1.
- Flag: Z, S, P, AC. CY non influenzato.
- Cicli: 4 (registro), 10 (memoria).
DEC / DCR (decremento)
Complemento: DEC (8086) / DCR (8085). Stesso comportamento flag (CF non modificato).
Sommario: In 8086, usa INC (non INR). Incrementa registro o memoria di 1, aggiorna AF/OF/PF/SF/ZF, lascia CF invariato. L'opcode 04h è ADD AL, imm8.