تعویض یک کاراکتر در رشته ها در زبان اسمبلی

the_king

مدیرکل انجمن
اگر بخواهیم در یک رشته یک کاراکتر مشخص مثلا * را با کاراکتر دیگری مانند $ تعویض کنیم، کد زیر
برای انجام اینکار مناسب است :

کد:
.MODEL      SMALL
.DATA
    msg1    DB "Please enter a string :",13,10,"$"
    msg2    DB 13,10,"Please enter first character :",13,10,"$"
    msg3    DB 13,10,"Please enter second character :",13,10,"$"
    msg4    DB 13,10,"String after replace :",13,10,"$"
    msg5    DB 13,10,"Press any key to continue.",13,10,"$"
    string  DB 80
            DB ?
            DB 80 DUP (?)
    char1   DB 2
            DB ?
            DB 2 DUP (?)
    char2   DB 2
            DB ?
            DB 2 DUP (?)
.CODE
.STARTUP
    MOV     AH, 9
    LEA     DX, msg1
    INT     21h
loop_1:
    MOV     AH, 0ah
    LEA     DX, string
    INT     21h
    CMP     string[1], 0
    JZ      loop_1
    MOV     AH, 9
    LEA     DX, msg2
    INT     21h
loop_2:
    MOV     AH, 0ah
    LEA     DX, char1
    INT     21h
    CMP     char1[1], 0
    JZ      loop_2
    MOV     AH, 9
    LEA     DX, msg2
    INT     21h
loop_3:
    MOV     AH, 0ah
    LEA     DX, char2
    INT     21h
    CMP     char2[1], 0
    JZ      loop_3
    LEA     SI, string[2]
    MOV     CL, string[1]
    MOV     CH, 0
    MOV     BL, char1[2]
    MOV     BH, char2[2]
loop_4:
    CMP     [SI], BL
    JNE     next_1
    MOV     [SI], BH
next_1:
    INC     SI
    LOOP    loop_4
    MOV     BYTE PTR [SI], "$"
    MOV     AH, 9
    LEA     DX, msg4
    INT     21h
    LEA     DX, string[2]
    INT     21h
    LEA     DX, msg5
    INT     21h
    MOV     AH, 8
    INT     21h
.EXIT
.STACK
END

مثلا اگر در رشته "mono love" کاراکتر o را با کاراکتر a تعویض کنیم، به رشته "mana lave" تبدیل می گردد.
 

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

بالا