Matrices assembler 68000
MATRICES
Las matrices son una de las estructuras de datos muy tipica en la mayoria de programas de cierta complejidad. Es por ello, que suele ser conveniente definir eltipo de dato Matriz y definir ciertas operaciones que seran utilizadas en gran numeros de ocasiones.
Definiremos el tipo de datos “Matriz de Words” como un vector de words. El tamaño de la matrizvendra dado en las dos primeras words, que contendran el numero de filas y el numero de columnas respectivamente. Los valores de la matriz vendran dados por filas. Por lo tanto, una matriz podra tenerla siguiente representación en memoria:
[pic]
Supuesta la definición de “Cadena de Caracteres”, deberan implementarse diversas rutinas de manipulación de matrices y un programa principal quehaga uso de ellas, siguiendo en lo posible el siguiente esquema:
Subrutina MATRIX_OFFSET
Esta subrutina debera tomar una matriz (su direccion), los indices (i,j) y devolver el numero de bytes quedista dicho elemento desde la posición inicial de la matriz (su direccion). Esta subrutina servira para localizar los elementos de la matriz, ya que ele elemento (i,j) de una matriz M se deberaencontrar en la posición M+MATRIX_OFFSET(M,i,j). La subrutina pudiera tener en concreto la siguiente descripción:
Subrutina: M_OFFSET
Descripción: Obtiene la distancia en bytes desde la direccion de lamatriz y un elemento (i,j)
Entrada: A5.L direccion de la matriz
D0.W indice i (numero de fila)
D1.W indice j (numero de columna)
Salida: D4.W offset
Modifica:
68000:
M_OFFSET MOVEA#$5038,A5
MOVE.W #PosI,D0
MOVE.W #PosJ,D1
MOVE.W (A5)+,D3
MOVE.W (A5),D4
CMP.W D0,D3
BCS FIN
CMP.W D1,D4BCS FIN
SUBQ.W #1,D0
MULU.W D0,D4
ADD.W D1,D4
ADDI.W #1,D4
MULU.W #2,D4
MOVE.W D4,OFF
RTS...
Regístrate para leer el documento completo.