Code:
; Program to compare two string with contain .MODEL SMALL .STACK 100H .DATA STR1 DB 'ATHARV$' STR2 DB 'ATHARV$' L1 DB 0 L2 DB 0 MSG1 DB 'Strings are Same $' MSG2 DB 'Strings are not Same $' .CODE MOV AX , @DATA ; Initializing Data Segment MOV DS , AX MOV ES , AX ; Initializing Extra Segment ; Counting length of STR1 MOV DL , 0 MOV SI , OFFSET STR1 ; Storing base address of STR1 UP1: MOV AL , [SI] CMP AL , '$' ; Compare end of string JE DN1 ; Jump If Equal INC DL INC SI JMP UP1 ; Jump to UP1 DN1: MOV L1 , DL ; Storing Result ; Counting length of STR2 MOV DL , 0 MOV SI , OFFSET STR2 ; Storing base address of STR2 UP2: MOV AL , [SI] CMP AL , '$' ; Compare end of string JE DN2 ; Jump If Equal INC DL INC SI JMP UP2 ; Jump to UP2 DN2: MOV L2 , DL ; Storing Result ; Comparing the length of str1 and str2 CMP L1 , DL JE RE JMP EXIT2 ; If string not equal RE: ; Comparing String Based on Contains CLD ; Clear Direction Flag MOV CL , L1 ; Initializing Loop Counter MOV SI , OFFSET STR1 MOV DI , OFFSET STR2 UP: CMPSB ; Compare character of source string with character ; of destination string JNZ EXIT2 ; Jump If Not Zero If character are not equal LOOP UP ; String Same EXIT1: LEA DX , MSG1 MOV AH , 09H INT 21H JMP EXIT ; String Not Same EXIT2: LEA DX , MSG2 MOV AH , 09H INT 21H EXIT: MOV AH , 4CH ; Service routine for exit INT 21H END |