data segment
org 0010h
aa1 dw 1,2,3,4,5,6,7,8,9,9
org 0030h
bb1 dw 3,4,5,1,2,5,8,8,6,6
org 0050h
max1dw ?
max2 dw ?
data ends
code segment
main proc far
assume cs:code,ds:data
mov ax, data
mov ds, ax
mov cx,10
lea si,aa1
lea di,bb1
add si,2
add di,2
call proexchang
mov cx,10
lea si,aa1
call max1
mov cx,10
lea di,bb1
call max2
movax,4c00h
int 21h
main endp
proexchangproc near
push ax
push cx
push si
push di
xor ax,ax
xor bx,bx
next: add ax,[si]
add bx,[di]
xchg ax,bx
mov [si],ax
mov [di],bx
add si,4
add di,4
dec cx
loop next
pop di
pop si
pop cx
pop ax
ret
proexchang endp
max1 proc near
push ax
push cx
push si
xor ax, ax
add ax,[si]
next1: cmp ax,[si]
jl exch1
jnl exit1
exch1:mov ax,[si]
exit1:add si,2
loop next1
pop si
pop cx
pop ax
movax,4c00h
int 21h
max1 endp
max2 proc near
push ax
push cx
push di
xor ax, ax
add ax,[di]
next2: cmp ax,[di]
jl exch2
jnl exit2
exch2:mov ax,[di]
exit2:add di,2
loop next2
pop di
pop cx
pop ax
movax,4c00h
int 21h
max2 endp
code ends
end main
