¿Por qué el DIV AB se convierte de hex a decimal 8051

0

Estaba intentando resolver un problema y leí que este código convierte un número de hexadecimal a decimal Quiero decir por que Mi idea es que div es solo por división. alguien puede responder a mis preguntas que dejé como comentarios

MOV A,#0FFH ;why do we need to do this MOV P1,A ;P1 as an INPUT MOV A,P1 ;Get data from P1 MOV B,#10 ;to convert from hex to decimal DIV AB ;that the question why does div used to do this conversion MOV R7,B ;does this put 10 in the register r7 MOV B,#10 DIV AB MOV R6,B ;it does also puts 10 in the register r6? MOV R5,A ;if A <10 (why does this do )

    
pregunta whyyoucare

1 respuesta

5

Suficientemente simple

A comienza siendo un número entre cero y 255.

Digamos que su FF es decir, 255 ..

Dividir por 10 te da 25 en A y 5, el resto, en B. Ese es el valor de las unidades, así que guardamos B en R7

A continuación, configuramos B con 10 nuevamente y dividimos el 25 entre diez, y nuevamente almacenamos el resto, esta vez en R6, como el dígito de las decenas.

Lo que queda en A es el recuento de cientos, y lo almacenamos en R5.

Entonces ... R5,6 y 7 ahora contienen 2,5,5, el equivalente decimal de FF.

Aquí hay un registro de seguimiento si ayuda ...

    
respondido por el Trevor_G

Lea otras preguntas en las etiquetas