Secciones.

miércoles, 15 de junio de 2011

Decremento e incremento en assembler, para at 89s52.

En esta publicación hablaremos de como realizar un incremento y decremento en un microcontrolador de la familia ATMEL, AT89C51/52, 89S51/52, etc.


Incremento:
Nomenclatura: INC.

Descripción:
Incrementa el byte en 1. Si éste se encuentra inicialmente en 0FFH pasará a 00H. Las banderas no son afectadas. Cuatro modos de direccionamiento son permitidos: Acumulador, registro, directo, ó registro-indirecto.

Nota :
Cuando esta instrucción es usada para modificar un puerto de salida, el valor usado como el dato original del puerto será leído del latch de salida, no de la terminal de entrada.

Ejemplo :
El registro 0 contiene 7EH(011111110B). Las localidades de la RAM interna 7EH y 7FH contienen 0FFH y 40H, respectivamente.
La instrucción secuencia,

INC @R0
INC R0
INC @R0

dejará el registro 0 colocado a 7FH y las localidades de la RAM interna 7EH y 7FH conteniendo (respectivamente) 00H y 41H.

INC A

Bytes: 1
Ciclos: 1

Código de operación:


Operación: INC


Nota:
En esta instrucción de INC la bandera de paridad se ve afectada.

INC Rn

Bytes: 1
Ciclos: 1

Código de operación:



Operación: INC


INC directo

Bytes: 2
Ciclos: 1

Código de operación:



Operación: INC


INC @Ri

Bytes: 1
Ciclos: 1

Código de operación:



Operación: INC


INC DPTR:
Incrementa el valor del apuntador de datos en 1. El incremento en un registro de 16 bits es optimizado; un sobre flujo del byte de bajo orden del apuntador de datos (D L) de 0FFH a 00H incrementará el byte de alto orden (D H). Las banderas no son afectadas.

Este es el único registro de 16 bits que puede ser incrementado.

Ejemplo:
Los registros DPH y DPL contienen 12H y 0FEH, respectivamente. La secuencia de instrucciones,

INC DPTR
INC DPTR
INC DPTR

cambiará DPH y DPL a 13H y 01H respectivamente.

INC

Bytes: 1
Ciclos: 2

Código de operación:


Operación: INC


Decremento:
Nomenclatura: DEC.

Descripción:
La variable indicada es decrementada en 1. Cuando el valor original del BYTE es 00H al decrementarse pasará a 0FFFH y existirá un sobre flujo. Ninguna otra bandera es afectada. Cuatro operandos de modos de direccionamiento son permitidos: acumulador, registro, directo ó registro indirecto.

Nota:
Cuando ésta instrucción es usada para modificar un puerto de salida, el valor usado como el dato original del puerto será leído del latch de salida, no de la terminal de entrada.

Ejemplo:
El registro 0 contiene 7FH (01111111B). Las localidades 7EH y 7FH de la RAM interna contienen 00H y 40H, respectivamente. La secuencia de instrucciones,

DEC @R0
DEC R0
DEC @R0

Dejará el registro 0 colocado a 7EH y la localidad de la RAM interna 7EH y 7FH colocada a 0FFH y 3FH. Se indicará además que hubo un sobre flujo, OV = 1.

DEC A

Bytes: 1
Ciclos: 1

Código de operación:


Operación: DEC


DEC Rn

Bytes: 1
Ciclos: 1

Código de operación:

Operación: DEC


DEC directo

Bytes: 2
Ciclos: 1

Código de operación:


Operación: DEC


DEC @Ri

Bytes: 1
Ciclos: 1

Código de operación:

Operación:


Fuente:
Manual del microcontrolador 8051.