;Programa que sume los numeros de dos tablas y lo almacena ; en una tercera. DATOS SEGMENT longitud equ 2 ;Constante que indica el tamaño de la tabla sumando1 dw 4,5 ;tabla fuente1 sumando2 dw 1,2 ;tabla fuente2 destino dw longitud dup (?) ;tabla destino con el resultado DATOS ENDS PILA SEGMENT STACK 'stack' db 128 dup(?) PILA ENDS CODIGO SEGMENT assume cs:codigo,ds:datos,ss:pila ppal proc far push ds ;Dirección de retorno al PSP sub ax,ax push ax mov ax,datos ;Inicialización del registro DS mov ds,ax mov cx,longitud xor si,si mov di,offset destino bucle:push di push sumando1[si] push suamando2[si] call sumar add si,2 add di,2 dec cx jnz bucle ; Compara cmp cx,0 retf ppal endp sumar proc ; Se le pasa sumando1, sumando2 por valor y destino por referencia (offset) push ax push bx push di push bp mov bp,sp mov ax,10[bp] add ax,12[bp] mov di,14[bp] mov [di],ax pop bp pop di pop bx pop ax ret 6 sumar endp CODIGO ENDS END PPAL