the_king
مدیرکل انجمن
اگر بخواهیم دو رشته را با هم مقایسه کنیم بطوریکه نسبت به بزرگی و کوچکی حروف حساس باشد،
کد زیر مناسب است.
این برنامه بر اساس تساوی یا بزرگتر بودن یکی از دو رشته، پیغام مناسبی را چاپ می کند. بدیهی است
که در این مقایسه رشته "Book" از رشته "book" کوچکتر است، چون کاراکتر B با حروف بزرگ
نسبت به کاراکتر b با حروف کوچک، کد ASCII کوچکتری دارد.
کد زیر مناسب است.
این برنامه بر اساس تساوی یا بزرگتر بودن یکی از دو رشته، پیغام مناسبی را چاپ می کند. بدیهی است
که در این مقایسه رشته "Book" از رشته "book" کوچکتر است، چون کاراکتر B با حروف بزرگ
نسبت به کاراکتر b با حروف کوچک، کد ASCII کوچکتری دارد.
کد:
.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, AH
JNE next_1
CMP AL, 13
JNE loop_1
LEA DX, msg5
JMP next_2
next_1:
LEA DX, msg3
JA next_2
LEA DX, msg4
next_2:
MOV AH, 9
INT 21h
LEA DX, msg6
INT 21h
MOV AH, 8
INT 21h
.EXIT
.STACK
END