;Peter Linder, 4.kruzok, zadanie 3 ;program nacita 2 retazce a porovna, vypise ci sa lisia a na ktorom mieste .model small data segment ;retazec1 vst1 db 80 pocet1 db 0 vstup1 db 80 dup(?) vst2 db 80 ;retazec2 pocet2 db 0 vstup2 db 80 dup(?) vystup db 80 dup('$') kon db 10,13,'$' hlaska1 db 'Zadaj 1. retazec : $' ;jednotlive vypisi hlaska2 db 'Zadaj 2. retazec : $' hlaska3 db 'Retazce sa lisia na tychto miestach : $' hlaska4 db 'Retazce sa lisia ,lebo nemaju rovnaku dlzku !$' data ends code segment assume ds:data,cs:code start: mov ax,seg data mov ds,ax mov dx,offset hlaska1 ;vypis hlasky1 mov ah,09h int 21h mov dx,offset vst1 mov ah,0ah int 21h mov dx,offset kon ;odriadkovanie mov ah,09h int 21h mov dx,offset hlaska2 ;vypis hlasky2 mov ah,09h int 21h mov dx,offset vst2 mov ah,0ah int 21h mov dx,offset kon ;odriadkovanie mov ah,09h int 21h xor cx,cx ;porovnanie dlzok retazcov xor bx,bx mov cl,pocet1 mov bl,pocet2 cmp cl,bl jne loop3 loop4: mov dx,offset hlaska3 ;vypis hlasky3 mov ah,09h int 21h mov si,offset vstup1 mov di,offset vstup2 loop1: ;mov ch,byte ptr[si] ;porovnavanie znakov retazcov lodsb mov bh,byte ptr[di] cmp al,13 je loop2 cmp bh,13 je loop2 cmp al,bh jne vypis inc di jmp loop1 vypis: mov dx,10 ;vypis cisla miesta kde sa retazce dec si mov ax,si ;odlisuju(aj konverzia na znak) sub ax,offset vstup1 div dl add ah,30h add al,30h mov dx,ax mov ah,02h int 21h mov dl,dh int 21h mov dl,' ' int 21h inc si inc di jmp loop1 loop2: mov ax,4c00h ;exit int 21h loop3: mov dx,offset hlaska4 ;vypis hlasky4 mov ah,09h int 21h mov dx,offset kon ;odriadkovanie mov ah,09h int 21h jmp loop4 code ends end start