Autor Tema: Asm para microprocesardor HC908

0 Usuarios y 1 Visitante están viendo este tema.

18 Noviembre, 2011, 11:49 pm
Leído 1568 veces

Mushotoku

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 39
  • Karma: +0/-0
  • Sexo: Masculino
Hola, mi duda es la siguiente:
¿Como puedo hacer varios LSR (shift lógico a la derecha) en un variable de 2 bytes en un microcontrolador HC908 ?
¿Lo puedo hacer directamente? Me confunde un poco el tema de los bits de carry ya que los registros de este micro son de 8 bits.

Saludos.







19 Noviembre, 2011, 02:46 am
Respuesta #1

Phicar

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 513
  • Karma: +1/-0
  • Sexo: Masculino
    • redinfocol.org
Hola, depende. En si que es lo que vas a hacer? porque depende de lo que sea "varios" y depende de la informacion. Lo mas recomendable es hacer shifts en un loop hasta que el bit de acarreo se prenda. Ahi tratas de coger otro slot en memoria(puede ser con un contador)

Pero tienes que especificar un tris mas el problema.
redinfocol.org

19 Noviembre, 2011, 03:54 am
Respuesta #2

Mushotoku

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 39
  • Karma: +0/-0
  • Sexo: Masculino
Lo que tengo es una variable que contiene un numero BCD. Lo que quiero hacer es correr 4 bits. Estoy empezando a programar y es todo parte de un ejercicio que en realidad no tiene utilidad.

La duda concreta que tengo es: si hago LSR a 0000 0001 0000 0000; ¿obtengo 0000 0000 1000 0000 ?

Gracias por contestar.

19 Noviembre, 2011, 04:32 am
Respuesta #3

Phicar

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 513
  • Karma: +1/-0
  • Sexo: Masculino
    • redinfocol.org
Si

pd: joder, muy pocas personas comienzan con asm. :)
redinfocol.org

19 Noviembre, 2011, 09:45 pm
Respuesta #4

Mushotoku

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 39
  • Karma: +0/-0
  • Sexo: Masculino
Gracias Phicar. La verdad es que me confundió bastante que mi profesor me dijera que preste atención al bit de carry. Al hacer el shift, ¿el bit mas significativo se reemplaza por 0, no?

P.D.: Estoy empezando a programar microprocesadores en asm, ya incursione por pascal, C y demás lenguajes  ;D