; multi-segment executable file template.

data segment
st1 label byte
max1 db 20
len1 db ?
buffer1 db dup "$"
dollar1 db "$"

st2 label byte
max2 db 20
len2 db ?
buffer2 db dup "$"
dollar2 db "$"
print_st db "please enter Word : $"
noEq db "The two words are not equal : $"
Eq db "The two words are is equal : $"

ends


stack segment
dw 128 dup(0)
ends


code segment
start proc far
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax

; add your code here
;print please enter Word 1
lea dx,print_st
mov ah,09
int 21h

;new line
MOV dl, 10
MOV ah, 02h
INT 21h
MOV dl, 13
MOV ah, 02h
INT 21h
;cin St 1
lea dx,st1
mov ah,0ah
int 21h

;new line
MOV dl, 10
MOV ah, 02h
INT 21h
MOV dl, 13
MOV ah, 02h
INT 21h

;print please enter Word 2
lea dx,print_st
mov ah,09
int 21h

;new line
MOV dl, 10
MOV ah, 02h
INT 21h
MOV dl, 13
MOV ah, 02h
INT 21h

;cin St 2
lea dx,st2
mov ah,0ah
int 21h

mov ch,len1
mov cl,len2
cmp cl,ch
mov cl,-1
jne p3
mov di,offset buffer1
mov si,offset buffer2
l1:





mov dl,[di]
mov dh,[si]
add di,1
add si,1

add cl,1
cmp cl,ch

je p2



cmp dl,dh
je l1
jne p3




;print End Words equal


p2:
;new line
MOV dl, 10
MOV ah, 02h
INT 21h
MOV dl, 13
MOV ah, 02h
INT 21h
lea dx,Eq
mov ah,09
int 21h
jmp End



;print End Words no equal
p3:
;new line
MOV dl, 10
MOV ah, 02h
INT 21h
MOV dl, 13
MOV ah, 02h
INT 21h

lea dx,noEq
mov ah,09
int 21h




End:mov ax, 4c00h ; exit to operating system.
int 21h
endp
ends


end start ; set entry point and stop the assembler.