1. jaime.velarde@epn.edu.ec 1 SISTEMAS MICROPROCESADOS INSTRUCCIONES DE MANEJO DE BITS EN LOS MICROCONTOLADORES ATmega Elaborado por: Ing. Jaime E. Velarde
2. jaime.velarde@epn.edu.ec 2 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).
3. jaime.velarde@epn.edu.ec 3 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 P MNEMÓNICO: CBIA,b[2] OPERACIÓN: I/O(A,b) ← 0 CÓDIGO: 1001 1000 AAAAAbbb PONE EN UNO EL BIT b DEL REGISTRO DE E/S QUE TIENE LA DIRECCIÓN P MNEMÓNICO: SBIA,b[2] OPERACIÓN: I/O(A,b) ← 1 CÓDIGO: 1001 1010 AAAAAbbb
4. jaime.velarde@epn.edu.ec 4 BORRAR Y PONER EN UNO, UNA DE LAS BANDERAS BORRAR LA BANDERA DE LA POSICIÓN s DEL REGISTRO ESTADO MNEMÓNICO: BCLR s[1] OPERACIÓN: SREG(s) ← 0 CÓDIGO: 1001 0100 1sss 1000 PONE EN UNO LA BANDERA DE LA POSICIÓN s DEL REGISTRO ESTADO MNEMÓNICO: BSET s[1] OPERACIÓN: SREG(s) ← 1 CÓDIGO: 1001 0100 0sss 1000
5. jaime.velarde@epn.edu.ec 5 BORRAR Y PONER EN UNO, LA BANDERA DEL CARRY BORRAR LA BANDERA DEL CARRY MNEMÓNICO: CLC [1] OPERACIÓN: C ← 0 CÓDIGO: 1001 0100 1000 1000 PONE EN UNO LA BANDERA DEL CARRY MNEMÓNICO: SEC [1] OPERACIÓN: C ← 1 CÓDIGO: 1001 0100 0000 1000
6. jaime.velarde@epn.edu.ec 6 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
7. jaime.velarde@epn.edu.ec 7 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
8. jaime.velarde@epn.edu.ec 8 BORRAR Y PONER EN UNO, LA BANDERA DEL DESBORDAMIENTO BORRAR LA BANDERA DEL DESBORDAMIENTO MNEMÓNICO: CLV [1] OPERACIÓN: V ← 0 CÓDIGO: 1001 0100 1011 1000 PONE EN UNO LA BANDERA DEL DESBORDAMIENTO MNEMÓNICO: SEV [1] OPERACIÓN: V ← 1 CÓDIGO: 1001 0100 0011 1000
9. jaime.velarde@epn.edu.ec 9 BORRAR Y PONER EN UNO, LA BANDERA DEL SIGNO BORRAR LA BANDERA DEL SIGNO MNEMÓNICO: CLS [1] OPERACIÓN: S ← 0 CÓDIGO: 1001 0100 1100 1000 PONE EN UNO LA BANDERA DEL SIGNO MNEMÓNICO: SES [1] OPERACIÓN: S ← 1 CÓDIGO: 1001 0100 0100 1000
10. jaime.velarde@epn.edu.ec 10 BORRAR Y PONER EN UNO, LA BANDERA DEL CARRY INTERMEDIO BORRAR LA BANDERA DEL CARRY INTERMEDIO MNEMÓNICO: CLH [1] OPERACIÓN: H ← 0 CÓDIGO: 1001 0100 1101 1000 PONE EN UNO LA BANDERA DEL CARRY INTERMEDIO MNEMÓNICO: SEH [1] OPERACIÓN: H ← 1 CÓDIGO: 1001 0100 0101 1000
11. jaime.velarde@epn.edu.ec 11 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
12. jaime.velarde@epn.edu.ec 12 BORRAR Y PONER EN UNO, LA BANDERA DE INTERRUPCIONES GLOBAL BORRAR LA BANDERA DE INTERRUPCIONES GLOBAL MNEMÓNICO: CLI [1] OPERACIÓN: I ← 0 CÓDIGO: 1001 0100 1111 1000 PONE EN UNO LA BANDERA INTERRUPCIONES GLOBAL MNEMÓNICO: SEI [1] OPERACIÓN: I ← 1 CÓDIGO: 1001 0100 0111 1000
13. jaime.velarde@epn.edu.ec 13 DESPLAZAMIENTOS LÓGICOS DESPLAZAMIENTO LÓGICO HACIA LA IZQUIERDA MNEMÓNICO: LSL Rd [1] OPERACIÓN: Rd(n+1) ← Rd(n), Rd(0) ← 0 CÓDIGO: 0000 11dd dddd dddd NOTA: es la instrucción ADD Rd,Rd DESPLAZAMIENTO LÓGICO HACIA LA DERECHA MNEMÓNICO: LSR Rd [1] OPERACIÓN: Rd(n) ← Rd(n+1), Rd(7) ← 0 CÓDIGO: 1001 010d dddd 0110
15. jaime.velarde@epn.edu.ec 15 ROTACIONES A TRAVÉS DEL CARRY ROTACIÓN DE LOS BITS HACIA LA IZQUIERDA A TRAVÉS DEL CARRY MNEMÓNICO: ROL Rd[1] OPERACIÓN: Rd(n+1) ← Rd(n), Rd(0) ← C, C ← Rd(7) CÓDIGO: 0001 11dd dddd dddd NOTA: es la instrucción ADC Rd,Rd ROTACIÓN DE LOS BITS HACIA LA DERECHA A TRAVÉS DEL CARRY MNEMÓNICO: ROR Rd [1] OPERACIÓN: Rd(n) ← Rd(n+1), Rd(7) ← C, C ← Rd(0) CÓDIGO: 1001 010d dddd 0111
17. jaime.velarde@epn.edu.ec 17 DESPLAZAMIENTO ARITMÉTICO DESPLAZAMIENTO ARITMÉTICO HACIA LA DERECHA MNEMÓNICO: ASR Rd [1] OPERACIÓN: Rd(n) ← Rd(n+1), n = 0 … 6 CÓDIGO: 1001 010d dddd 0111 NOTA: Corresponde a la división para 2 de números con signo
18. jaime.velarde@epn.edu.ec 18 INTERCAMBIO DE NIBBLES INTERCAMBIO ENTRE LOS CUATRO BITS MÁS SIGNIFICATIVOS DEL REGISTRO CON LOS CUATRO BITS MENOS SIGNIFICATIVOS MNEMÓNICO: SWAP Rd[1] OPERACIÓN: Rd(3…0) ↔ Rd(7…4) CÓDIGO: 1001 010d dddd 0010 NOTA: Como los dígitos Hexadecimales y BCD son de cuatro bits, esta instrucción permite intercambiar dígitos
19. jaime.velarde@epn.edu.ec 19 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