lenguaje ensamblador AVR en División

1

¿Cómo realizo una división por 4 del valor sin signo de 16 bits en los registros r4: r5 donde r4 es el bit más significativo?

Entiendo eso por división de 4, lo que significa que tengo que cambiar el bit por 2. ¿pero cómo lo hago en lenguaje ensamblador? básicamente puedo LSL r4; LSLr5 ;? Gracias por su ayuda para explicar esto.

    
pregunta Jay Sun

3 respuestas

2

Para dividir por dos:

LSR r4 que presionan b0 para llevar b1 a b0, ... b7 a b6 y cero a b7

RORr5queempujaráb0paraquelleveb1ab0,...b7ab6yqueseaelb0der4ab7

Paradividirpor4usalasecuenciadosveces

LSLseutilizaparalamultiplicación.

LasimágenessondelsitiowebdeMicrochip AVR Assembler Instructions

    
respondido por el Dorian
2

Por ejemplo, si el valor está en el par R24 / R25.

    lsr r25
    ror r24
    lsr r25
    ror r24
    
respondido por el P__J__
0

Solo divide por dos, dos veces. Cada división por dos es un desplazamiento a la derecha por un bit. No te olvides de limpiar la bandera de transporte antes de cambiar. El cambio dos veces se puede hacer en un bucle o desenrollado. En este caso, el desenrollado puede ser más eficiente.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas