Está en la página 1de 1

.

text
addi r1,r0,a ;Realizamos el puntero de a en R1
addi r2,r0,b;Realizamos el puntero de b en R2
addi r7,r0,#10 ;Contador de a en R7
addi r8,r0,#10 ;Contader de b en R8
ld f0,zero ;inicializamos a 0 el registro doble 0
ld f6,zero ;Seteamos f6 a 0

bucle:
ld f10,0(r1) ;Cargamos primera posición del vector a
gtd f10,f6 ;Comparamos si el valor es mayor que el almacenado en f6
bfpf siguiente

addd f4,f6,f0 ;Pasamos el valor de f6 a f4 como segundo mas alto


addd f6,f10,f0 ;Guardamos en f6 el mayor
siguiente:
addi r1,r1,#8 ;Avanzamos el puntero
subi r7,r7,#1 ;Actualizamos el contador
bnez r7, bucle ;Comprobamos si volvemos o no al bucle

bucle2:
ld f12,0(r2) ;Cargamos primera posición del vector b
gtd f12,f6 ;Comparamos si el valor es mayor que el almacenado en f6
bfpf siguiente2

addd f4,f6,f0 ;Pasamos el valor de f6 a f4 como segundo mas alto


addd f6,f12,f0 ;Guardamos en f6 el mayor
siguiente2:
addi r2,r2,#8 ;Avanzamos el puntero
subi r8,r8,#1 ;Actualizamos el contador
bnez r8, bucle2 ;Comprobamos si volvemos o no al bucle2

trap#0
.data
a: .double 1,2,3,4,5,6,7,8,9,10
b: .double 1,2,3,4,5,6,7,8,9,11
zero: .double 0

También podría gustarte