La consulta es si cuando hace:
a:=lshifter (a); if n then goto dir
El lshifter mueve un bit a la izquierda verdad? Pero eso lleva a que me deje un bit de Carry?
La consulta es si cuando hace:
a:=lshifter (a); if n then goto dir
El lshifter mueve un bit a la izquierda verdad? Pero eso lleva a que me deje un bit de Carry?
Estimado:
lshift mueve un bit a la izquierda, sí. Sin embargo, si mirás la organización de la MIC-1, vas a ver que no hay ningún registro de banderas. Por lo tanto, no, no hay carry.
Saludos,
Federico
Es verdad, no hay registros de banderas.
Corregime si me equivoco, las banderas son controladas (de alguna forma que no se bien cual es) enseguida que la ALU realiza alguna operacion. Y en este caso de la MIC-1, las banderas que se controlan son la N (negativo) y la Z (cero).
Esta bien eso?
Aunque parezca un poco contradictorio a tu respuesta, la pregunta viene por el lado de que en el teorico le sacabamos dos flechas de ALU y era una para N y otra para Z.
Está bien, no son necesariamente contradictorias.
Es cierto que hay 2 señales de flags que salen de la ALU, pero si te fijás, no se guardan en ningún lado (son utilizadas para controlar saltos en el microcódigo). Es decir, que a nivel de set de instrucciones, no hay banderas :)
Saludos,
Federico
Barbaro, muchas gracias!