; helder.correia@fe.up.pt ; -------== Ex1 ==------- ; Escreva um programa que calcule t=SUM(0,19,y[i]) supondo que: ; ; a) os elementos do vector são todos inferiores a 13 SIZE equ 20 dseg at 30h t: ds 1 y: ds SIZE cseg at 0 clr a ; iniciar acc com 0 para poder somar a série mov r0,#y ; R0 com endereço de y[i] mov r7,#SIZE ; máximo de elementos loop: add a,@r0 ; começa a somar os conteúdos do vector inc r0 ; passa para a próxima posição y[i+1] djnz r7,loop mov t,a ; resultado da soma final guardado em t sjmp $ end ; b) os elementos do vector são todos inferiores a 256 dseg at 30h t: ds 2 y: ds 40 ; 2 bytes x 20 elementos cseg at 0 clr a mov r0,#y mov r7,#20 loop: add a,@r0 jnc nc ; se n houver carry entao n há overflow inc t+1 ; com overflow preciso incrementar +1 byte nc: inc r0 djnz r7,loop mov t,a sjmp $ end