;;********************************************************* ;;* sumav.s ;;* Suma los elementos de un vector ;;* Práctica 3 - Enero 2002 ;;* Arquitectura de Computadores (Ingenieria Industrial) ;;* Autor: Jesús Alastruey ;;* ATC - DIIS - CPS - Universidad de Zaragoza ;;********************************************************* .data 100 ;; Inicio del segmento de datos ; Constantes N: .word 32 ;; Longitud del vector (en bytes) TAM: .word 4 ;; Tamaño de un elemento del vector (en bytes) ; Variables vector: .word 1,4,-5,-6,24,-8,-5,16 resul: .space 4 .text 200 ;; Inicio del segmento de instrucciones .global _main _main: lw r1,N ;; r1 = longitud del vector (N bytes) add r2,r0,r0 ;; r2 = índice recorrido vector lw r3,TAM ;; r3 = tamaño un elemento (TAM bytes) add r4,r0,r0 ;; r4 = acumulador suma elementos bucle: slt r6,r2,r1 ;; Si r2 r6=1, cc r6=0 beqz r6, fin ;; Si r6=0 salta a fin lw r5,vector(r2) ;; r5 = contenido de @(vector + r2) add r4,r4,r5 ;; Sumo elemento actual add r2,r2,r3 ;; r2 = r2 + 4 bnez r6, bucle ;; Salta siempre a bucle fin: xor r4,r4,r5 ;; Ejemplo xor ¿que resultado esperas? sw resul,r4 ;; Almacena resultado trap 0 ;; Final del programa