Banderas AVR Microcontrolador

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

Banderas AVR Microcontrolador

Símbolo Nombre Significado Uso Ejemplo

C The “Carry” flag Bandera de acarreo Indica un acarreo en una Set bandera carry:
operación aritmética o ldi r16,0xFF ; Carga el valor al registro
lógica.
Es afectada en una suma ldi r17,0x01 ;
o resta superior a 8-bits add r16,r17 ; suma r16+r17->r16 pero
como 0xFF+0x01=0x100-> se coloca la
bandera carry
Z The “zero” flag Bandera de cero Indica un resultado cero en Set bandera zero:
una operación aritmética o ldi r18,0xF0 ; carga el valor al registro
lógica. r18
Si el resultado es igual a
ldi r19,0x0F ;
“0” entonces Z=1 por lo
tanto cuando no es “0” Z=0 and r18,r19 ; realiza la operación “and”
entre ambos registros, pero dado que 0XF0
and 0x0F=0x00->se coloca la bandera de
Z=1.
N The “Negative” Bandera Negativa Indica un resultado Set bandera Negative:
flag negativo en una operación ldi r20,ox60 ; Colocamos el valor al r20
aritmética o lógica.
Si el séptimo bit es igual a ldi r21,0x70 ;
“0” entonces N=0 y el Sub r20,r21 ; la instrucción sub realiza
resultado es positivo, más la sustracción sin carry lo que nos
si el séptimo bit es “1” N=1 permite poner en “set” negative flag,ya
que 0x60-0x70=-0x10
y el resultado es negativo.
V The “Overflow” Bandera de Utilizado para indicar
ldi r16, $ B1 ; r16: r17 = $ FF80, -20000
flag desbordamiento cuándo se ha producido un
desbordamiento aritmético ldi r17, $ E0 ;
en una operación, lo que
indica que el resultado del ldi r18, $ 4E ; r18: r19 = $ 0040, 20000
complemento a dos no
ldi r19, $ 20 ;
encajaría en el número de
bits utilizados para la sbc r17, r19 ;
operación.
sbc r16, r18 ; El resultado es $ 63C0
(25536), INCORRECTO, el indicador V
configurado para indicar esto

S Sign bit Bandera de signo de Utilizado para indicar si el Ejemplo set/clear Sign flag:
bit resultado de la última ldi r20, 0b10000100 ; se carga el valor
operación matemática en dec=132 sin signo,con signo dec=-124
resultó en un valor en el
ldi r21, 0b00000010 ; se asigna el valor
que se estableció el bit en el r21 dec=2 sin signo y con signo
más significativo. dec=2.
Este es resultado de una
add r20,r21 ; se realiza la operación de
or exclusiva entre N y V(N suma.
⊕ V) dicho de otro modo ;Dado que la operación es
el bit de signo se establece positivo+positivo=positivo, o
si se pone en “set” uno de negativo+positivo=negativo,entonces la
Negative flag se pone en Set,la bandera
los indicadores de bandera Overflow en Clears y la bandera Sign se
de desbordamiento o pone en Set, habilitándose esta ultima.
negativo, pero no cuando
ambos están establecidos
H “Half” carry flag Bandera de ajuste Indica cuándo se ha Set bandera half-carry:
ldi r16, 0b100001010 ; se carga el valor
decimal o auxiliar generado un acarreo o en r16
préstamo de los cuatro bits
menos significativos del ldi r17, 0b00000110 ; se asigna el valor
en el r17
registro del acumulador
después de la ejecución add r16,r17 ; se realiza la operación de
de una instrucción suma, pero como 0x0A+0x06=0x10-> se
coloca la bandera half-carry
aritmética.
T Copy Storage Copia del La instrucción BST puede Set bandera copiado de almacenamiento:
almacenamiento copiar un bit de un registro bst r1,2 ; Guarda bit 2 de r1 en la
en el archivo de registro en bandera T
T, y la instrucción BLD bld r0,4 ; Carga T en bit 4 de r0
puede copiar un bit en T
en un bit de un registro en
el archivo de registro.
I Global Interrupt Habilitación de Establecido para que se Set bandera interrupción:
sei ; set global interrupt enable
Enable interrupción global habiliten las
interrupciones.
El hardware borra el bit I
(bit 7) después de que se
haya producido una
interrupción, y la
instrucción RETI lo
establece para habilitar las
interrupciones posteriores.

También podría gustarte