You are on page 1of 24

MICROPROCESADORES

Y
MICROCONTROLADORES

PRACTICA II

Ingeniera Tcnica Industrial Electrnica

Juan Carlos Irigoyen Calvo

DNI:

C.A. Pamplona

1
ENUNCIADO PRCTICA

Disee una subrutina en el ensamblador del MC68000 para conversin de formato binario a decimal
de nmeros enteros sin signo de 16 bits. La subrutina recibir el nmero binario en la palabra menos
significativa del registro D0 y deber generar una cadena de caracteres ASCII en memoria de nombre
CADNUM correspondiente a la secuencia de cifras decimales que represente al nmero pedido. Los
sucesivos caracteres de la representacin en ASCII se almacenarn en memoria de forma consecutiva y
ordenada de mayor a menor peso. Detrs del ltimo carcter de la cadena se aadir un carcter nulo.

Obsrvese que las cifras decimales de un nmero se pueden conseguir, ordenadas de menor a
mayor peso, como la secuencia de restos de divisin que van apareciendo al dividir por 10
consecutivamente el nmero dado, desde su valor inicial hasta que el cociente es 0. Cada cifra as obtenida
se puede pasar a ASCII sumndole el cdigo ASCII correspondiente al 0 (el 48 en decimal).

Por ejemplo si se recibe el nmero 3F7B en hexadecimal = 16251 en decimal, la cadena CADNUM
que se ha de generar es [49,55,54,50,49,0] estando todos los valores anteriores en decimal. Siga el proceso
indicado a continuacin:

1. Especificar los argumentos de la subrutina mencionados en el enunciado.


2. Realizar una descripcin textual del algoritmo propuesto (10 lneas como mximo).
3. Describir los pasos del algoritmo propuesto, indicando las constantes y las variables intermedias
utilizadas.
4. Codificar en el lenguaje ensamblador del MC68000 la subrutina pedida, comentando adecuadamente las
instrucciones utilizadas y haciendo referencia a los pasos del algoritmo indicados en el apartado 3.
5. Escribir el programa y la subrutina en ensamblador y ensamblarlo.
6. Simular con Easy68K el cdigo objeto generado y obtener una traza de la ejecucin del mismo para el
nmero 16251 anterior. La traza incluir todos los registros involucrados (incluyendo el puntero de pila) y
el contenido de la cadena CADNUM en cada instante, as como las variables utilizadas y el registro de
estado.

2
APARTADO 1- ARGUMENTOS DE ENTRADA Y SALIDA
Para realizar la conversin de binario a cadenas decimales en ASCII, creo la subrutina CONVER,
siendo el nico argumento de entrada a la misma el nmero en hexadecimal que se pasa a travs del
registro de datos D0, en su palabra de menos peso.

El argumento de salida de la subrutina ser el almacenamiento en la direccin de memoria con


etiqueta CADNUM, de la cadena ASCII que representa en decimal la cifra de entrada hexadecimal,
ordenados de mayor a menor peso. Adems devuelve en A0 la direccin de CADNUM.

APARTADO 2- DESCRIPCION TEXTUAL DEL ALGORITMO


Se crea una zona en memoria de datos con la etiqueta BINARIO donde se encuentra el n
hexadecimal de 2 bytes y se reservan 6 bytes de memoria con la etiqueta CADNUM donde se almacenar
el resultado.

La rutina principal pasa a travs de D0 el n hexadecimal a la subrutina CONVER, que realiza un bucle
en el que divide el contenido de D0 entre 10 guardando el resto ms 48, en las sucesivas direcciones de
memoria de CADNUM, y volviendo a repetirse esta divisin cada vez con el cociente si ste no ha sido
cero en el ltimo caso. Al acabar el bucle, se aade un carcter nulo y se llama a la subrutina INVERTIR
para que ordene de mayor a menor los caracteres ASCII que representan el n en decimal.

Una vez devuelto el control a la rutina principal, esta se encarga de mostrar en pantalla el contenido
de CADNUM, que es el resultado pedido.

3
APARTADO 3- DESCRIPCION DEL ALGORITMO POR PASOS
Analizo los pasos de la rutina principal y subrutinas:

1- A0 #BINARIO Carga direccin de datos hexadecimal en A0


2- D0W (A0) Contenido de 1 palabra de direccin de memoria A0 en D0
3- D7L 0 Inicializa CONTADOR en registro D7
4- A0 #CADNUM Direccin de vector CADNUM en A0
5- D0 D0 / 10 Divide D0 entre 10
6- D1W D0W Cociente de divisin anterior en D1
7- SWAP D0 Resto de divisin en palabra baja de D0
8- D0B D0B + 48 Cifra en cdigo ASCII
9- (A0 + D7)B D0B Cifra en ASCII a direccin apuntada por A0 ms ndice CONTADOR
Modo direccionamiento indirecto a registro con ndice
10- D7 D7 + 1 Incrementa CONTADOR
11- D0L D1L Recupera cociente y lo pone en D0
12- Compara D0 con 0 Compara cociente con cero
13- Si D0>0 vuelve al BUCLE
14- (A0 + D7)B 0 Cierra cadena con carcter nulo
Direccionamiento indirecto a registro con ndice CONTADOR
15- D0 D7 Paso CONTADOR a D0. Ahora tenemos el n de caracteres ASCII en D0
16- D1 0 Resetea CONTADOR
17- INVERTIR Llama a subrutina invertir pasndole la direccin de la cadena CADNUM
en A0 y la longitud en D0. Esta subrutina es la de la prctica 1.
18- Retorno a Rutina Principal
19- Mostrar en pantalla el contenido del vector CADNUM mediante la interrupcin TRAP #15 y su
funcin n 13. Parmetro A1 que apunta a la direccin de memoria que el trap sacar por pantalla
hasta encontrar un carcter nulo.

4
APARTADO 4- CODIFICACION EN ENSAMBLADOR DE RUTINA
*-----------------------------------------------------------
* Program : Practica II
* Written by : Juan Carlos Irigoyen Calvo
* Date : 24 de febrero de 2008
* Description: Convierte un n en binario a decimal en ASCII
*-----------------------------------------------------------

START ORG $900


MOVE.L #BINARIO,A0 Carga direccin de dato en A0
MOVE.W (A0),D0 Dato hexadecimal en palabra baja de D0
BSR CONVER LLAMA A SUBRUTINA CONVER
MOVEA A0,A1 DIRECCION DE CADNUM EN A1
MOVEQ #13,D0 Funcion salida pantalla TRAP 15
TRAP #15 Imprime en pantalla resultado
MOVEQ #9,D0 Detiene simulador
TRAP #15

*-----------------------------------------------------------
* SUBRUTINA PRINCIPAL "CONVER"
*-----------------------------------------------------------

CONVER ORG $1000


MOVE.L #0,D7 CONTADOR A CERO
MOVE.L #CADNUM,A0 DIRECCION DE CADNUM EN A0
BUCLE DIVS #10,D0 Divide D0 entre 10 y guarda en D0
MOVE.W D0,D1 Cociente en D1
SWAP D0 Resto en palabra de menos peso de D0
ADD.B #48,D0 Resto + 48 para obtener codigo ASCII
MOVE.B D0,(A0,D7) Guarda resto en memoria
ADDQ #1,D7 Incrementa indice puntero memoria
MOVE.L D1,D0 Almacena cociente en D0
CMP #0,D0 Compara cociente y cero
BGT BUCLE Si cociente mayor que cero repite BUCLE
MOVE.B #0,(A0,D7) Cierra cadena con carcter nulo
MOVE.L D7,D0 LONGITUD DE ASCII EN D0 (sin contar el caracter nulo)
MOVE.L #0,D1 resetea registro D1
BSR INVERTIR INVERTIR CADENA DIRECCION A0 Y LONGITUD D0
RTS

*------------------------------------------------------------
* INVERTIR (Subrutina PRACTICA I)
*------------------------------------------------------------
SUBR ORG $1500
INVERTIR MOVE.W D0,D1 Carga n de elementos en D1
LSR #1,D1 Divide D1/2 (elimina resto) Ser el fin de bucle
MOVE.W D0,D4 carga n de elemnetos en D4
SUB.W #1,D4 D4=D4-1 (apuntar ultimo elemento)
MOVE.L #$0,D2 Pone D2 a cero (contador bucle)

BUCLE2 MOVE.B (A0,D2),D3 Elemento izquierda a D3


MOVE.B (A0,D4),D5 Elemento derecha a D5
MOVE.B D3,(A0,D4) Elemento izquierda pasa a derecha
MOVE.B D5,(A0,D2) Elemento derecha pasa a izquierda
SUB.W #1,D4 Apunta anterior elemento por la derecha
ADD.W #1,D2 Apunta siguiente elemento por la izquierda
CMP D2,D1 Comprueba fin de bucle
BGT BUCLE2 Repite bucle si no se ha terminado de invertir
RTS Retorno a programa principal

5
*---------------------------------------------------------------
* DATOS y RESULTADO
*---------------------------------------------------------------

DATOS ORG $2000


BINARIO ORG $2000 N binario a convertir
DC.W $3F7B 3F7B

CADNUM ORG $2010 VECTOR CON RESULTADO


DS.B 6 Reserva 6 bytes de memoria para resultado

*----------------------------------------------------------------
* FIN
*----------------------------------------------------------------

END START

6
APARTADO 5- ENSAMBLADO
El cdigo fuente de este programa se encuentra en el archivo P2.X68. Se procede al ensamblado
como se aprecia en la siguiente captura de pantalla sin errores y se procede a simular, pulsando el botn
EXECUTE, generndose automticamente los archivos P2.L68 y P2.S68

7
En la siguiente captura de pantalla se aprecia el resultado de la simulacin con la salida por pantalla
del resultado.

8
APARTADO 6- SIMULACION Y TRAZA
Se realiza una nueva simulacin generndose una traza tal y como se
pide y para el valor hexadecimal 3F7B.
El archivo de texto con la traza para esta simulacin se llama
Traza P2.
Aqu se encuentra una copia de este archivo de texto:

EASy68K execution log file: 17/04/2008 18:15:09

***** Reset Program Pressed *****

***** Reload Program Pressed *****

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00000000 D4=00000000 A0=00000000 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=01000000
PC=00000900 Code=207C 00002000 Line= 9 MOVE.L #BINARIO,A0

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00000000 D4=00000000 A0=00002000 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=01000000
PC=00000906 Code=3010 Line= 10 MOVE.W (A0),D0

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00003F7B D4=00000000 A0=00002000 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=01000000
PC=00000908 Code=6100 06F6 Line= 11 BSR CONVER
LLAMA A SUBRUTINA CONVERTIR ()

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00003F7B D4=00000000 A0=00002000 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC

9
PC=00001000 Code=7E00 Line= 24 MOVE.L #0,D7
CONTADOR A CERO

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00003F7B D4=00000000 A0=00002000 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001002 Code=207C 00002010 Line= 25 MOVE.L #CADNUM,A0

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00003F7B D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001008 Code=81FC 000A Line= 26 BUCLE DIVS #10,D0
Divide D0 entre 10 y guarda en D0

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00010659 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100C Code=3200 Line= 27 MOVE.W D0,D1
Cociente en D1

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=00010659 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100E Code=4840 Line= 28 SWAP D0
Resto en palabra de menos peso de D0

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

D0=06590001 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001010 Code=0600 0030 Line= 29 ADD.B #48,D0
Resto + 48 para obtener codigo ASCII

00002010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ----------------

10
D0=06590031 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC
D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001014 Code=1180 7000 Line= 30 MOVE.B D0,(A0,D7)
Guarda resto en memoria

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=06590031 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000000 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001018 Code=5247 Line= 31 ADDQ #1,D7
Incrementa indice puntero memoria

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=06590031 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101A Code=2001 Line= 32 MOVE.L D1,D0
Almacena cociente en D0

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=00000659 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101C Code=B07C 0000 Line= 33 CMP #0,D0
Compara cociente y cero

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=00000659 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001020 Code=6EE6 Line= 34 BGT BUCLE
Si cociente mayor que cero repite BUCLE

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=00000659 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000

11
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001008 Code=81FC 000A Line= 26 BUCLE DIVS #10,D0
Divide D0 entre 10 y guarda en D0

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=000500A2 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000659 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100C Code=3200 Line= 27 MOVE.W D0,D1
Cociente en D1

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=000500A2 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100E Code=4840 Line= 28 SWAP D0
Resto en palabra de menos peso de D0

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=00A20005 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001010 Code=0600 0030 Line= 29 ADD.B #48,D0
Resto + 48 para obtener codigo ASCII

00002010: 31 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1---------------

D0=00A20035 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001014 Code=1180 7000 Line= 30 MOVE.B D0,(A0,D7)
Guarda resto en memoria

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=00A20035 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000001 A3=00000000 A7=00FF0000 SS=00FFFFFC

12
PC=00001018 Code=5247 Line= 31 ADDQ #1,D7
Incrementa indice puntero memoria

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=00A20035 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101A Code=2001 Line= 32 MOVE.L D1,D0
Almacena cociente en D0

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=000000A2 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101C Code=B07C 0000 Line= 33 CMP #0,D0
Compara cociente y cero

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=000000A2 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001020 Code=6EE6 Line= 34 BGT BUCLE
Si cociente mayor que cero repite BUCLE

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=000000A2 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001008 Code=81FC 000A Line= 26 BUCLE DIVS #10,D0
Divide D0 entre 10 y guarda en D0

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=00020010 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=000000A2 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100C Code=3200 Line= 27 MOVE.W D0,D1
Cociente en D1

13
00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=00020010 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100E Code=4840 Line= 28 SWAP D0
Resto en palabra de menos peso de D0

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=00100002 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001010 Code=0600 0030 Line= 29 ADD.B #48,D0
Resto + 48 para obtener codigo ASCII

00002010: 31 35 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 15--------------

D0=00100032 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001014 Code=1180 7000 Line= 30 MOVE.B D0,(A0,D7)
Guarda resto en memoria

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00100032 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000002 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001018 Code=5247 Line= 31 ADDQ #1,D7
Incrementa indice puntero memoria

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00100032 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101A Code=2001 Line= 32 MOVE.L D1,D0
Almacena cociente en D0

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00000010 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC

14
D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101C Code=B07C 0000 Line= 33 CMP #0,D0
Compara cociente y cero

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00000010 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001020 Code=6EE6 Line= 34 BGT BUCLE
Si cociente mayor que cero repite BUCLE

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00000010 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001008 Code=81FC 000A Line= 26 BUCLE DIVS #10,D0
Divide D0 entre 10 y guarda en D0

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00060001 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000010 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100C Code=3200 Line= 27 MOVE.W D0,D1
Cociente en D1

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00060001 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100E Code=4840 Line= 28 SWAP D0
Resto en palabra de menos peso de D0

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00010006 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC

15
PC=00001010 Code=0600 0030 Line= 29 ADD.B #48,D0
Resto + 48 para obtener codigo ASCII

00002010: 31 35 32 FF FF FF FF FF FF FF FF FF FF FF FF FF 152-------------

D0=00010036 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001014 Code=1180 7000 Line= 30 MOVE.B D0,(A0,D7)
Guarda resto en memoria

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00010036 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000003 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001018 Code=5247 Line= 31 ADDQ #1,D7
Incrementa indice puntero memoria

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00010036 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101A Code=2001 Line= 32 MOVE.L D1,D0
Almacena cociente en D0

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00000001 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101C Code=B07C 0000 Line= 33 CMP #0,D0
Compara cociente y cero

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00000001 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001020 Code=6EE6 Line= 34 BGT BUCLE
Si cociente mayor que cero repite BUCLE

16
00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00000001 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001008 Code=81FC 000A Line= 26 BUCLE DIVS #10,D0
Divide D0 entre 10 y guarda en D0

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00010000 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000001 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100C Code=3200 Line= 27 MOVE.W D0,D1
Cociente en D1

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00010000 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000100E Code=4840 Line= 28 SWAP D0
Resto en palabra de menos peso de D0

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00000001 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001010 Code=0600 0030 Line= 29 ADD.B #48,D0
Resto + 48 para obtener codigo ASCII

00002010: 31 35 32 36 FF FF FF FF FF FF FF FF FF FF FF FF 1526------------

D0=00000031 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001014 Code=1180 7000 Line= 30 MOVE.B D0,(A0,D7)
Guarda resto en memoria

00002010: 31 35 32 36 31 FF FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000031 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC

17
D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000004 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001018 Code=5247 Line= 31 ADDQ #1,D7
Incrementa indice puntero memoria

00002010: 31 35 32 36 31 FF FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000031 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101A Code=2001 Line= 32 MOVE.L D1,D0
Almacena cociente en D0

00002010: 31 35 32 36 31 FF FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000000 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000101C Code=B07C 0000 Line= 33 CMP #0,D0
Compara cociente y cero

00002010: 31 35 32 36 31 FF FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000000 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001020 Code=6EE6 Line= 34 BGT BUCLE
Si cociente mayor que cero repite BUCLE

00002010: 31 35 32 36 31 FF FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000000 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001022 Code=11BC 0000 7000 Line= 35 MOVE.B #0,(A0,D7)
Cierra cadena con carcter nulo

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000000 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC

18
PC=00001028 Code=2007 Line= 36 MOVE.L D7,D0
LONGITUD DE ASCII EN D0 (sin contar el caracter nulo)

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000102A Code=7200 Line= 37 MOVE.L #0,D1
resetea registro D1

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000102C Code=4E75 Line= 38 RTS

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=01000000
PC=0000090C Code=6100 0BF2 Line= 12 BSR INVERTIR

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000000 A0=00002010A4=00000000 T_S__INT___XNZVC


D1=00000000 D5=00000000 A1=00000000A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000A6=00000000
D3=00000000 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=00001500 Code=3200 Line= 45 INVERTIR MOVE.W
D0,D1 Carga n de elementos en D1

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000000 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000005 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001502 Code=E249 Line= 46 LSR #1,D1
Divide D1/2 (elimina resto) Ser el fin de bucle

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

19
D0=00000005 D4=00000000 A0=00002010A4=00000000 T_S__INT___XNZVC
D1=00000002 D5=00000000 A1=00000000A5=00000000 SR=0010000000010001
D2=00000000 D6=00000000 A2=00000000A6=00000000
D3=00000000 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=00001504 Code=3800 Line= 47 MOVE.W
D0,D4 carga n de elemnetos en D4

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000005 A0=00002010A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000000 A1=00000000A5=00000000 SR=0010000000010000
D2=00000000 D6=00000000 A2=00000000A6=00000000
D3=00000000 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=00001506 Code=5344 Line= 48 SUB.W
#1,D4 D4=D4-1 (apuntar ultimo elemento)

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000004 A0=00002010A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000000 A1=00000000A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000A6=00000000
D3=00000000 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=00001508 Code=7400 Line= 49 MOVE.L
#$0,D2 Pone D2 a cero (contador bucle)

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000004 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000000 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000150A Code=1630 2000 Line= 51 BUCLE2 MOVE.B
(A0,D2),D3 Elemento izquierda a D3

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000004 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000000 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000031 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000150E Code=1A30 4000 Line= 52 MOVE.B
(A0,D4),D5 Elemento derecha a D5

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000004 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000

20
D3=00000031 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001512 Code=1183 4000 Line= 53 MOVE.B
D3,(A0,D4) Elemento izquierda pasa a derecha

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000004 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000031 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001512 Code=1183 4000 Line= 53 MOVE.B
D3,(A0,D4) Elemento izquierda pasa a derecha

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000004 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000 A6=00000000
D3=00000031 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001516 Code=1185 2000 Line= 54 MOVE.B
D5,(A0,D2) Elemento derecha pasa a izquierda

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000004 A0=00002010A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000A6=00000000
D3=00000031 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=0000151A Code=5344 Line= 55 SUB.W
#1,D4 Apunta anterior elemento por la derecha

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000003 A0=00002010A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000A5=00000000 SR=0010000000000000
D2=00000000 D6=00000000 A2=00000000A6=00000000
D3=00000031 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=0000151C Code=5242 Line= 56 ADD.W
#1,D2 Apunta siguiente elemento por la izquierda

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000003 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000 A6=00000000
D3=00000031 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000151E Code=B242 Line= 57 CMP D2,D1
Comprueba fin de bucle

21
00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000003 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000 A6=00000000
D3=00000031 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001520 Code=6EE8 Line= 58 BGT BUCLE2
Repite bucle si no se ha terminado de invertir

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000003 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000 A6=00000000
D3=00000031 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000150A Code=1630 2000 Line= 51 BUCLE2 MOVE.B
(A0,D2),D3 Elemento izquierda a D3

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000003 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000031 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000150E Code=1A30 4000 Line= 52 MOVE.B
(A0,D4),D5 Elemento derecha a D5

00002010: 31 35 32 36 31 00 FF FF FF FF FF FF FF FF FF FF 15261-----------

D0=00000005 D4=00000003 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001512 Code=1183 4000 Line= 53 MOVE.B
D3,(A0,D4) Elemento izquierda pasa a derecha

00002010: 31 35 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 15251-----------

D0=00000005 D4=00000003 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001516 Code=1185 2000 Line= 54 MOVE.B
D5,(A0,D2) Elemento derecha pasa a izquierda

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

22
D0=00000005 D4=00000003 A0=00002010A4=00000000 T_S__INT___XNZVC
D1=00000002 D5=00000036 A1=00000000A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000A6=00000000
D3=00000035 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=0000151A Code=5344 Line= 55 SUB.W
#1,D4 Apunta anterior elemento por la derecha

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=00000005 D4=00000002 A0=00002010A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00000000A5=00000000 SR=0010000000000000
D2=00000001 D6=00000000 A2=00000000A6=00000000
D3=00000035 D7=00000005 A3=00000000A7=00FF0000 SS=00FFFFFC
PC=0000151C Code=5242 Line= 56 ADD.W
#1,D2 Apunta siguiente elemento por la izquierda

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=00000005 D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00000000 A5=00000000 SR=0010000000000000
D2=00000002 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=0000151E Code=B242 Line= 57 CMP D2,D1
Comprueba fin de bucle

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=00000005 D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000002 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001520 Code=6EE8 Line= 58 BGT BUCLE2
Repite bucle si no se ha terminado de invertir

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=00000005 D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000002 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=00FFFFFC
PC=00001522 Code=4E75 Line= 59 RTS
Retorno a programa principal

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=00000005 D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00000000 A5=00000000 SR=0010000000000100
D2=00000002 D6=00000000 A2=00000000 A6=00000000

23
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=01000000
PC=00000910 Code=3248 Line= 13 MOVEA A0,A1
Direccion CADNUM en A1

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=00000005 D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00002010 A5=00000000 SR=0010000000000100
D2=00000002 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=01000000
PC=00000912 Code=700D Line= 14 MOVEQ #13,D0
Funcion salida pantalla TRAP 15

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=0000000D D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00002010 A5=00000000 SR=0010000000000000
D2=00000002 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=01000000
PC=00000914 Code=4E4F Line= 15 TRAP #15
Imprime en pantalla resultado

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=0000000D D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00002010 A5=00000000 SR=0010000000000000
D2=00000002 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=01000000
PC=00000916 Code=7009 Line= 16 MOVEQ #9,D0
Detiene simulador

00002010: 31 36 32 35 31 00 FF FF FF FF FF FF FF FF FF FF 16251-----------

D0=00000009 D4=00000002 A0=00002010 A4=00000000 T_S__INT___XNZVC


D1=00000002 D5=00000036 A1=00002010 A5=00000000 SR=0010000000000000
D2=00000002 D6=00000000 A2=00000000 A6=00000000
D3=00000035 D7=00000005 A3=00000000 A7=00FF0000 SS=01000000
PC=00000918 Code=4E4F Line= 17 TRAP #15

24

You might also like