Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

13 Instrucciones de manejo de bits

5,383 views

Published on

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

Published in: Education
  • Be the first to comment

  • Be the first to like this

13 Instrucciones de manejo de bits

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

×