Prueba
ASIGNATURA: ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I
Tutoría del Centro Asociado de Plasencia
Señale cuál es elcontenido del registro D0.W, después de ejecutar las siguientes instrucciones:
MOVE.W
MOVE.W
SUB.W
SUBQ.W
BNE
END
BUCLE
#$6728,D0
#100,D1
#$02A6,D0
#1,D1
BUCLE
Solución:
Claramente,tenemos este bucle:
26408
100
D0
D1
(D0)-678
(D1)-1
D0
D1
No
¿ (D1)==0 ?
Sí
Fin
En principio, el resultado final sería (D0)final = 26408 – 100 678 = 19628
Pero hay queir con pies de plomo. Pueden suceder varios tipos de eventos. Por ejemplo, como:
26408 678 = 38.9
cuando vamos por la iteración número 38:
(D0)38 = 26408 – 38 678 = 644
N=0, V=0
y en laiteración número 39:
(D0)38 = 644 – 678 = -34
N=1, V=0
Este evento es irrelevante en nuestro análisis. Esto es así gracias a que el microprocesador tiene en D0 el número –34 representado encomplemento a dos. Por tanto, el resultado hasta ahora es correcto (y en las siguientes restas). Otra forma de entenderlo es observando que el
valor del contenido no se ha salido del rango encomplemento a dos para números de 16 bits (el sufijo es .W).
-(216-1) = -32768
-34
0
26408
216-1-1 = 32767
Los eventos que sí son relevantes son los desbordamientos. Podemos seguir iterandohasta que:
(D0) < -(2n-1) = -(216-1) = -32768
Para calcular el número de iteración en que ocurre esto:
Mientras 26408 - i 678 -32768
todo correcto
26408 + 32768 i 678
i (26408 + 32768) 678 = 87.2 el desbordamiento ocurrirá en la iteración número 88
Veamos cuál es la situación en la iteración número 87:
(D0)87 = 26408 – 87 678 = -32578
N=1, V=0
Notemos que el contenidobinario es &-32578 $80BE. Este valor hexadecimal (binario compactado) lo necesitamos para hacer los cálculos en la
siguiente iteración.
Veamos cuál es la situación en la iteración número 88:
(D0)87...
Regístrate para leer el documento completo.