the_king
مدیرکل انجمن
اگر بخواهیم دو رشته را با هم مقایسه کنیم بطوریکه نسبت به بزرگی و کوچکی حروف حساس نباشد
و فرقی بین حروف کوچک مثل a و حروف بزرگ مثل A قائل نشود، کد زیر مناسب است.
این برنامه بر اساس تساوی یا بزرگتر بودن یکی از دو رشته، پیغام مناسبی را چاپ می کند. بدیهی است
که در این مقایسه رشته "BoOk" با رشته "bOoK" برابر است.
و فرقی بین حروف کوچک مثل a و حروف بزرگ مثل A قائل نشود، کد زیر مناسب است.
این برنامه بر اساس تساوی یا بزرگتر بودن یکی از دو رشته، پیغام مناسبی را چاپ می کند. بدیهی است
که در این مقایسه رشته "BoOk" با رشته "bOoK" برابر است.
کد:
.MODEL SMALL
.DATA
msg1 DB "Please enter first string :",13,10,"$"
msg2 DB 13,10,"Please enter second string :",13,10,"$"
msg3 DB 13,10,"First string is bigger.",13,10,"$"
msg4 DB 13,10,"Second string is bigger.",13,10,"$"
msg5 DB 13,10,"Two strings are equal.",13,10,"$"
msg6 DB 13,10,"Press any key to continue.",13,10,"$"
string1 DB 101
DB ?
DB 101 DUP (?)
string2 DB 101
DB ?
DB 101 DUP (?)
.CODE
.STARTUP
MOV AH, 9
LEA DX, msg1
INT 21h
MOV AH, 0ah
LEA DX, string1
INT 21h
MOV AH, 9
LEA DX, msg2
INT 21h
MOV AH, 0ah
LEA DX, string2
INT 21h
LEA SI, string1[2]
LEA DI, string2[2]
loop_1:
MOV AL, [SI]
MOV AH, [DI]
INC SI
INC DI
CMP AL, 'A'
JB next_1
CMP AL, 'Z'
JA next_1
ADD AL, 32
next_1:
CMP AH, 'A'
JB next_2
CMP AH, 'Z'
JA next_2
ADD AH, 32
next_2:
CMP AL, AH
JNE next_3
CMP AL, 13
JNE loop_1
LEA DX, msg5
JMP next_4
next_3:
LEA DX, msg3
JA next_4
LEA DX, msg4
next_4:
MOV AH, 9
INT 21h
LEA DX, msg6
INT 21h
MOV AH, 8
INT 21h
.EXIT
.STACK
END