Ejercicio 3 Practico 6

Re: Ejercicio 3 Practico 6

de Federico Rivero -
Número de respuestas: 0

Estimada,

Contesto por partes.

Mi primer duda es que el programa no debería tener un loop infinito para que la CPU no ejecute instrucciones basura y me sobrescriba los valores calculados anteriormente en mi programa?.

Sí, correcto! Debería finalizar con un loop infinito para que no se ejecute basura y el sistema se comporte de forma errática.

Luego, dentro del do while, en la línea donde se ejecuta la instrucción JN con dato_menor, no deberían estar cambiadas las operaciones de SUB y ADD?

Sí, también correcto! Tu explicación está perfecta.

Por ultimo según la descripción de las instrucciones de los jump, no me quedo del todo claro si en las partes donde dice "dato_menor, esta_true, etc" estos representan números indicando a donde tienen que moverse el JM. En caso  de ser así por ejemplo ¿esta_true debería valer 5,y do debería valer un número negativo?

La solución asume que el ensamblador va a colocar el número correcto en le lugar de esas etiquetas. Al ensamblar esas instrucciones se van a sustituir por números, como bien decís vos. La instrucción jz esta_true pasaría a ser jz 5  como bien decís, y al ensamblar quedaría 1110 0000 0000 0101  (asumiendo 1110 = opcode del jn). La instrucción jn do pasaría a ser jn -12 , y se ensamblaría a 1110 1111 1111 0100  (ya que 1111 1111 0100 = -12d en complemento a 2 de 12 bits).

Saludos!
Federico