مقایسه دو رشته با هم (حساس به بزرگی و کوچکی حروف) در زبان اسمبلی

the_king

مدیرکل انجمن
اگر بخواهیم دو رشته را با هم مقایسه کنیم بطوریکه نسبت به بزرگی و کوچکی حروف حساس باشد،
کد زیر مناسب است.
این برنامه بر اساس تساوی یا بزرگتر بودن یکی از دو رشته، پیغام مناسبی را چاپ می کند. بدیهی است
که در این مقایسه رشته "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
 

جدیدترین ارسال ها

بالا