Casos f21
Casos f21
Casos f21
Estructura de Computadores
Grado en Ingenierı́a Informática
60004 05
60005 01
60006 00
60007 00
Raı́z cuadrada
Caso 1. Llamada a Sqrt1d
Llama a ‘Sqrt1d’ pasándole el parámetro 99
r30=86012 (0x14FFC)
Direcciones de memoria:
86000 63000000
Resultado:
r30=86012 (0x14FFC)
Direcciones de memoria:
86000 69690F00
Resultado:
Número de filtrados
Caso 3. Llamada a nFiltrados
Llama a ‘nFiltrados’ pasándole un parámetro nulo para iniciar la variable nF, que tiene
un valor no nulo.
r30=86012 (0x14ffc)
Direcciones de memoria:
00000 0E000000
86000 00000000
Resultado:
r30=86012 (0x14ffc)
Direcciones de memoria:
00000 0E000000
86000 FFFFFFFF
Resultado:
org 0x14000
IMAGEN1:
data 4, 8
data 0x00000000, 0x00000000
data 0x00000000, 0x00002100
data 0x00000000, 0x00000000
data 0x00000000, 0x00000000
IMAGEN2:
data 4, 8
data 0x00000000, 0x00000000
data 0x00000000, 0x00000000
data 0x00000000, 0x00000000
data 0x00000000, 0x00000000
r30=86008 (0x14ff8)
Direcciones de memoria:
86000 00400100 28400100
Resultado:
r30=86008 (0x14ff8)
Direcciones de memoria:
86000 00400100 28400100
Resultado:
r30=86008 (0x14ff8)
Direcciones de memoria:
86000 00400100 28400100
Resultado:
Extracción de submatriz
Caso 8. Llamada a SubMatriz
Llama a ‘SubMatriz’ pasándole una imagen de 3x3 elementos de la que se ha de extraer
la subimagen correspondiente al elemento central.
org 0x14000
IMAGEN:
data 3, 3
data 0x40302010, 0x80706050, 0x90
org 0x14040
SUBIMAGEN:
data 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
r30=86000 (0x14ff0)
Direcciones de memoria:
86000 00400100 40400100 01000000 01000000
Resultado:
r30=86000 (0x14ff0)
Direcciones de memoria:
81984 10203040 50607080 90FFFFFF
Proyecto de Programación en Ensamblador. Casos de prueba (16/10/2020) 9
r30=86000 (0x14ff0)
Direcciones de memoria:
86000 00400100 40400100 03000000 06000000
Resultado:
r30=86000 (0x14ff0)
Direcciones de memoria:
81984 1617181E 1F202627 28FFFFFF
10 Proyecto de Programación en Ensamblador. Casos de prueba (16/10/2020)
org 0x14000
SUBIMAGEN:
data 0x00000000, 0x00000055, 0x00
org 0x14010
FILTRO: data 0, 1, 0, 1, 0, 1
data 0, 1, 1, 1, 0, 1
data 0, 1, 0, 1, 0, 1
r30=86008 (0x14FF8)
Direcciones de memoria:
86000 00400100 10400100
Resultado:
r30=86008 (0x14FF8)
Direcciones de memoria:
86000 00400100 10400100
Resultado:
r30=86008 (0x14FF8)
Direcciones de memoria:
86000 00400100 10400100
Resultado:
Filtro de un pı́xel
Caso 13. Llamada a FilPixel
Llama a ‘FilPixel’ pasándole una imagen de 5x5 elementos y un filtro identidad que se
aplica a un pı́xel del interior de la imagen.
org 0x14000
IMAGEN:
data 5, 5
data 0x44332211, 0x03020155
data 0x22210504, 0x31252423
data 0x35343332, 0x44434241
data 0x00000045
FILTRO: data 0, 1, 0, 1, 0, 1
data 0, 1, -5, -5, 0, 1
data 0, 1, 0, 1, 0, 1
r30=86000 (0x14FF0)
Direcciones de memoria:
86000 00400100 02000000 03000000 24400100
Resultado:
r30=86000 (0x14FF0)
Direcciones de memoria:
86000 00400100 02000000 02000000 30400100
Resultado:
r30=86000 (0x14FF0)
Direcciones de memoria:
86000 00400100 02000000 02000000 28400100
Resultado:
Filtro de imagen
Caso 16. Llamada a Filtro
Llama a ‘Filtro’ pasándole una imagen no nula de 4x8 elementos y un filtro que mul-
tiplica por 4 cada elemento y le resta tres veces el valor del situado en la misma columna
de la fila anterior. Algunos elementos alcanzan el valor máximo y otros el mı́nimo.
org 0x14000
IMAGEN:
data 4, 8
data 0x04030201, 0x07060504
data 0x14134211, 0x17168514
data 0x24232221, 0x27262574
data 0x34333231, 0x37363534
FILTRADA:
res 40
FILTRO: data 0, 1, -3, 1, 0, 1
data 0, 1, 4, 1, 0, 1
data 0, 1, 0, 1, 0, 1
r30=86004 (0x14FF4)
Direcciones de memoria:
86000 00400100 28400100 50400100
Resultado:
r30=86004 (0x14FF4)
Direcciones de memoria:
81952 04000000 08000000
81968 01020304 04050607 11FF4344 44FF4617
81984 21005354 FF005627 31323334 34353637
Proyecto de Programación en Ensamblador. Casos de prueba (16/10/2020) 15
r30=86004 (0x14FF4)
Direcciones de memoria:
86000 00400100 20400100 40400100
Resultado:
r30=86004 (0x14FF4)
Direcciones de memoria:
81952 04000000 06000000 01020304 05060004
81968 06080A05 03060A15 29120408 10204080
16 Proyecto de Programación en Ensamblador. Casos de prueba (16/10/2020)
Caso 18. Llamada a Filtro Llama a ‘Filtro’ pasándole una imagen no nula de 4x6
elementos y un filtro identidad, que devuelve la misma imagen recibida.
r30=86004 (0x14FF4)
Direcciones de memoria:
86000 00400100 20400100 40400100
Resultado:
r30=86004 (0x14FF4)
Direcciones de memoria:
81952 04000000 06000000 78563412 FCFDFEFF
81968 79573513 EBECEDEE 89674523 DCDDDEDF
Proyecto de Programación en Ensamblador. Casos de prueba (16/10/2020) 17
85984 00400100
86000 60400100 18400100 90010000 04000000
85984 00400100
86000 60400100 18400100 F7000000 01000000
r30=85996 (0x14FEC)
Direcciones de memoria:
00000 00000000
85984 00400100
86000 00410100 24400100 14000000 05000000
82208 A5A5A5A5
Resultado:
00000 03000000
85984 00400100
86000 00410100 24400100 0A000000 03000000
82208 A5A5A5A5
Proyecto de Programación en Ensamblador. Casos de prueba (16/10/2020) 19
r30=85996 (0x14FEC)
Direcciones de memoria:
00000 00000000
85984 00400100
86000 7C400100 30400100 00000000 02000000
82032 00000000
82048 00000000 00000000 00000000 00000000
82064 00000000 00000000 00000000 00000000
82080 00000000
Resultado:
00000 02000000
85984 00400100
86000 7C400100 30400100 80020000 02000000
82032 04000000
82048 08000000 FF0000FF FF0000FF FF9F7F7F
82064 7F7F9FFF FF9F7F7F 7F7F9FFF FF0000FF
82080 FF0000FF
;
; Ejemplo de programa de prueba de la subrutina Comp
;
PUSH: MACRO(ra)
subu r30, r30, 4
st ra, r30, 0
ENDMACRO
POP: MACRO(ra)
ld ra, r30, 0
addu r30, r30, 4
ENDMACRO
; Definición de la pila
org 0xF000
PILA: data 0
org 0x2000
IMG2: data 0x02, 0x02, 0x04030201
; Programa principal
org 100
PPAL: LEA (r30, PILA) ; Inicialización del puntero de pila
LEA (r1, IMG1) ; r1: dirección de comienzo de IMG1
LEA (r2, IMG2) ; r2: dirección de comienzo de IMG2
POP (r1)
POP (r2)
stop