; 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.