Instrucción INC en 8086/8088: Incrementar Registro/Memoria

Corrección: El mnemotécnico INR es 8085/Z80, no 8086/8088. En 8086/8088 (x86), la instrucción equivalente es INC. El opcode 04h es ADD AL, imm8 en 8086, no INR.

8086/8088: Instrucción INC

Opcode: FE /0 (INC r/m8) o FF /0 (INC r/m16/32).
Operación: DEST ← DEST + 1 (con signo/sin signo, mismo binario).
Banderas Afectadas: AF, OF, PF, SF, ZF. CF sin cambios.

Formas y Ejemplos

SintaxisCodificaciónDescripción
INC ALFE C0Incrementar registro AL de 8 bits
INC AX40Incrementar registro AX de 16 bits (forma corta, opcode+reg)
INC EAX40 (con prefijo 66h en modo 16-bit) / FF C0 (modo 32-bit)Incrementar registro EAX de 32 bits (386+)
INC BYTE PTR [BX+SI]FE 00Incrementar byte en DS:BX+SI
INC WORD PTR [SI+10h]FF 44 10Incrementar palabra en DS:SI+10h
INC DWORD PTR [BX]FF 07Incrementar dword en DS:BX (386+)

Puntos Clave

  • Sin operando inmediato: INC AL, 5 es inválido. Usar ADD AL, 5.
  • Tamaño del operando: Determinado por el registro (AL/AX/EAX) o el tamaño del puntero (BYTE/WORD/DWORD PTR).
  • Bandera de Acarreo (CF) NO afectada: A diferencia de ADD, INC no modifica CF. Crítico para bucles de multi-precisión donde CF debe preservarse.
  • OF se establece si hay desbordamiento con signo (por ejemplo, 7Fh → 80h en 8-bit; 7FFFh → 8000h en 16-bit).
  • Ciclos (8086): Registro: 2–3; Memoria: 15–16 + EA.

8085/Z80: Instrucción INR (Para Referencia)

  • Mnemotécnico: INR r (registro) o INR M (memoria 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).
  • Operación: r ← r + 1 o (HL) ← (HL) + 1.
  • Banderas: Z, S, P, AC. CY no afectada.
  • Ciclos: 4 (registro), 10 (memoria).

DEC / DCR (Decrementar)

Complemento: DEC (8086) / DCR (8085). Mismo comportamiento de banderas (CF sin cambios).

Resumen: En 8086, usar INC (no INR). Incrementa registro o memoria en 1, actualiza AF/OF/PF/SF/ZF, deja CF intacto. El opcode 04h es ADD AL, imm8.