¿Qué significa #high (434) realmente que sé que es un valor, pero cómo se calcula el valor cuando depuro el comando mov r7, # alto (434) obtengo 1 en el registro 7 ¿por qué?
¿Qué significa #high (434) realmente que sé que es un valor, pero cómo se calcula el valor cuando depuro el comando mov r7, # alto (434) obtengo 1 en el registro 7 ¿por qué?
Mencionas 8051, que es una máquina de 8 bits. 8 bits pueden expresar directamente valores de -128 a +127 cuando están firmados, y de 0 a 255 cuando están sin firmar.
A veces desea usar múltiples bytes para almacenar números fuera de este rango. Sin embargo, la máquina solo funciona en un byte a la vez. Las funciones #high (y probablemente #low) le dan los valores de bytes individuales de un número de 16 bits.
En tu ejemplo, estás trabajando con el número 434. Eso es 1B2 en hexadecimal. Para almacenar eso en dos bytes, el byte alto se establece en 1, y el byte bajo en B2h (= 178 decimal). La función #high devuelve el valor de alto byte, por lo que 1.
Como otro ejemplo, considere #high (22135). 22135 = 5677h. El valor del byte alto es 56h = 86, y el byte bajo 77h = 119. #high (22135) por lo tanto devolvería 86.
Lea otras preguntas en las etiquetas microcontroller 8051