INSTRUCCIONES DE MANEJO DE BITS EN LOS MICROCONTOLADORES
ATmega
Elaborado por: Ing. Jaime E. Velarde
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).
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
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
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
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
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
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
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
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
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
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
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
GRÁFICOS DE LSL y LSR
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
GRÁFICOS DE ROL y ROR
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
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
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
Top Related