;****************************************************************** ; פתר: ד"ר מנחם אפשטיין ; תוכנית איחוד בין שני מערכים שאלה 3 מבחן קיץ 2004 ; 15.1.2006 ;****************************************************************** .model small .stack 100h .data a db 1,7,1,0ah,2,0bh,0ah,1 b db 8,1,0ch,7,0ch,1,0ah,0ah,2,8 c db 18 dup(0) na db 8 nb db 10 flag db ? .code sorting proc near mov di,si start_1:mov dx,cx mov flag,0ffh mov si,di st_1p:mov al,[si] cmp al,[si+1] jb small_n xchg al,[si+1] mov [si],al mov flag,0 small_n:inc si dec dx jnz st_1p cmp flag,0ffh je exit loop start_1 exit:ret sorting endp move_string_c proc near mov c[bx],al inc bx ret move_string_c endp start:mov ax,@data mov ds,ax mov cx,0 mov cl,na dec cx lea si,a call sorting mov cx,0 mov cl,nb dec cx lea si,b call sorting mov si,0 mov di,0 mov bx,0 start_x:mov al,a[si] cmp al,b[di] jne not_equ call move_string_c dec na dec nb mov dl,nb and dl,na je exit1 cmp nb,0 je sof2 st_1:cmp na,0 je sof1 inc si cmp al,a[si] jne st_11 dec na jmp st_1 st_11:cmp nb,0 je sof2 inc di cmp al,b[di] jne start_x dec nb jmp st_11 not_equ:ja string_b_small string_a_small:mov al,a[si] call move_string_c dec na je sof2 st_a_equ:inc si cmp al,a[si] jne start_x dec na je sof2 jmp st_a_equ string_b_small: mov al,b[di] call move_string_c dec nb je sof1 st_b_equ:inc di cmp al,b[di] jne start_x dec nb je sof1 jmp st_b_equ jmp start_x sof2:cmp nb,0 je exit1 jmp string_b_small sof1:cmp na,0 je exit1 jmp string_a_small exit1: MOV AH,4Ch int 21h end start