13 Instrucciones de manejo de bits

19
[email protected] .ec 1 INSTRUCCIONES DE MANEJO DE BITS EN LOS MICROCONTOLADORES ATmega Elaborado por: Ing. Jaime E. Velarde

description

Descripción de las instrucciones que operan sobre bits en los ATmega

Transcript of 13 Instrucciones de manejo de bits

Page 1: 13  Instrucciones de manejo de bits

[email protected]

INSTRUCCIONES DE MANEJO DE BITS EN LOS MICROCONTOLADORES

ATmega

Elaborado por: Ing. Jaime E. Velarde

Page 2: 13  Instrucciones de manejo de bits

[email protected]

TIENEN COMO OPERANDOS A BITS DE LOS REGISTROS

LA CARACTERÍSTICA PRINCIPAL ES LA DE ACTUAR SOBRE UN BIT DEL REGISTRO SIN ALTERAR A LOS DEMÁS.LOS BITS SE NUMERAN DESDE CERO (0) HASTA SIETE (7), DE ACUERDO A LA POSICIÓN QUE TIENEN DENTRO DEL BYTE: 0 EL MENOS SIGNIFICATIVO (EXTREMO DERECHO). 7 EL MÁS SIGNIFICATIVO (EXTREMO IZQUIERDO).

Page 3: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, UN BIT DEL REGISTRO DE E/S

BORRAR EL BIT b DEL REGISTRO DE E/S QUE TIENE LA DIRECCIÓN PMNEMÓNICO: CBI A,b [2]OPERACIÓN: I/O(A,b) ← 0CÓDIGO: 1001 1000 AAAA Abbb PONE EN UNO EL BIT b DEL REGISTRO DE E/S QUE TIENE LA DIRECCIÓN PMNEMÓNICO: SBI A,b [2]OPERACIÓN: I/O(A,b) ← 1CÓDIGO: 1001 1010 AAAA Abbb

Page 4: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, UNA DE LAS BANDERAS

BORRAR LA BANDERA DE LA POSICIÓN s DEL REGISTRO ESTADOMNEMÓNICO: BCLR s [1]OPERACIÓN: SREG(s) ← 0CÓDIGO: 1001 0100 1sss 1000 PONE EN UNO LA BANDERA DE LA POSICIÓN s DEL REGISTRO ESTADOMNEMÓNICO: BSET s [1]OPERACIÓN: SREG(s) ← 1CÓDIGO: 1001 0100 0sss 1000

Page 5: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA DEL CARRY

BORRAR LA BANDERA DEL CARRYMNEMÓNICO:CLC [1]OPERACIÓN: C ← 0CÓDIGO: 1001 0100 1000 1000 PONE EN UNO LA BANDERA DEL CARRYMNEMÓNICO:SEC [1]OPERACIÓN: C ← 1CÓDIGO: 1001 0100 0000 1000

Page 6: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA DE CERO

BORRAR LA BANDERA DE CERO

MNEMÓNICO:CLZ [1]

OPERACIÓN: Z ← 0

CÓDIGO: 1001 0100 1001 1000 PONE EN UNO LA BANDERA CERO

MNEMÓNICO:SEZ [1]

OPERACIÓN: Z ← 1

CÓDIGO: 1001 0100 0001 1000

Page 7: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA DE LA NEGACIÓN

BORRAR LA BANDERA DE LA NEGACIÓN

MNEMÓNICO: CLN [1]

OPERACIÓN: N ← 0

CÓDIGO: 1001 0100 1010 1000 PONE EN UNO LA BANDERA DE LA NEGACIÓN

MNEMÓNICO: SEN [1]

OPERACIÓN: N ← 1

CÓDIGO: 1001 0100 0010 1000

Page 8: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA DEL DESBORDAMIENTO BORRAR LA BANDERA DEL DESBORDAMIENTOMNEMÓNICO: CLV [1]OPERACIÓN: V ← 0CÓDIGO: 1001 0100 1011 1000 PONE EN UNO LA BANDERA DEL DESBORDAMIENTOMNEMÓNICO: SEV [1]OPERACIÓN: V ← 1CÓDIGO: 1001 0100 0011 1000

Page 9: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA DEL SIGNO

BORRAR LA BANDERA DEL SIGNOMNEMÓNICO:CLS [1]OPERACIÓN: S ← 0CÓDIGO: 1001 0100 1100 1000 PONE EN UNO LA BANDERA DEL SIGNOMNEMÓNICO:SES [1]OPERACIÓN: S ← 1CÓDIGO: 1001 0100 0100 1000

Page 10: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA DEL CARRY INTERMEDIO

BORRAR LA BANDERA DEL CARRY INTERMEDIOMNEMÓNICO: CLH [1]OPERACIÓN: H ← 0CÓDIGO: 1001 0100 1101 1000 PONE EN UNO LA BANDERA DEL CARRY INTERMEDIOMNEMÓNICO: SEH [1]OPERACIÓN: H ← 1CÓDIGO: 1001 0100 0101 1000

Page 11: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA PARA COPIAR DE BITS

BORRAR LA BANDERA PARA COPIAR BITS

MNEMÓNICO: CLT [1]

OPERACIÓN: T ← 0

CÓDIGO: 1001 0100 1110 1000 PONE EN UNO LA BANDERA PARA COPIAR BITS

MNEMÓNICO: SET [1]

OPERACIÓN: T ← 1

CÓDIGO: 1001 0100 0110 1000

Page 12: 13  Instrucciones de manejo de bits

[email protected]

BORRAR Y PONER EN UNO, LA BANDERA DE INTERRUPCIONES

GLOBAL BORRAR LA BANDERA DE INTERRUPCIONES GLOBALMNEMÓNICO: CLI [1]OPERACIÓN: I ← 0CÓDIGO: 1001 0100 1111 1000 PONE EN UNO LA BANDERA INTERRUPCIONES GLOBALMNEMÓNICO: SEI [1]OPERACIÓN: I ← 1CÓDIGO: 1001 0100 0111 1000

Page 13: 13  Instrucciones de manejo de bits

[email protected]

DESPLAZAMIENTOS LÓGICOS

DESPLAZAMIENTO LÓGICO HACIA LA IZQUIERDAMNEMÓNICO: LSL Rd [1]OPERACIÓN: Rd(n+1) ← Rd(n), Rd(0) ← 0CÓDIGO: 0000 11dd dddd ddddNOTA: es la instrucción ADD Rd,Rd DESPLAZAMIENTO LÓGICO HACIA LA DERECHAMNEMÓNICO: LSR Rd [1]OPERACIÓN: Rd(n) ← Rd(n+1), Rd(7) ← 0CÓDIGO: 1001 010d dddd 0110

Page 14: 13  Instrucciones de manejo de bits

[email protected]

GRÁFICOS DE LSL y LSR

Page 15: 13  Instrucciones de manejo de bits

[email protected]

ROTACIONES A TRAVÉS DEL CARRY

ROTACIÓN DE LOS BITS HACIA LA IZQUIERDA A TRAVÉS DEL CARRYMNEMÓNICO: ROL Rd [1]OPERACIÓN: Rd(n+1) ← Rd(n), Rd(0) ← C, C ← Rd(7)

CÓDIGO: 0001 11dd dddd ddddNOTA: es la instrucción ADC Rd,Rd ROTACIÓN DE LOS BITS HACIA LA DERECHA A TRAVÉS DEL CARRYMNEMÓNICO: ROR Rd [1]OPERACIÓN: Rd(n) ← Rd(n+1), Rd(7) ← C, C ← Rd(0)

CÓDIGO: 1001 010d dddd 0111

Page 16: 13  Instrucciones de manejo de bits

[email protected]

GRÁFICOS DE ROL y ROR

Page 17: 13  Instrucciones de manejo de bits

[email protected]

DESPLAZAMIENTO ARITMÉTICO

DESPLAZAMIENTO ARITMÉTICO HACIA LA DERECHAMNEMÓNICO: ASR Rd [1]OPERACIÓN: Rd(n) ← Rd(n+1), n = 0 … 6 CÓDIGO: 1001 010d dddd 0111NOTA: Corresponde a la división para 2 de números con signo

Page 18: 13  Instrucciones de manejo de bits

[email protected]

INTERCAMBIO DE NIBBLES

INTERCAMBIO ENTRE LOS CUATRO BITS MÁS SIGNIFICATIVOS DEL REGISTRO CON LOS CUATRO BITS MENOS SIGNIFICATIVOSMNEMÓNICO: SWAPRd [1]

OPERACIÓN: Rd(3…0) ↔ Rd(7…4)CÓDIGO: 1001 010d dddd 0010NOTA: Como los dígitos Hexadecimales y BCD son de cuatro bits, esta instrucción permite intercambiar dígitos

Page 19: 13  Instrucciones de manejo de bits

[email protected]

CARGAR Y ALMACENAR UN BIT DEL REGISTRO CON LA BANDERA T

CARGAR UN BIT

MNEMÓNICO:BLD Rd,b [1]

OPERACIÓN: Rd(b) ← T

CÓDIGO: 1111 100d dddd 0bbb ALMACENAR UN BIT

MNEMÓNICO:BST Rd,b [1]

OPERACIÓN: T ← Rd(b)

CÓDIGO: 1111 101d dddd 0bbb