2013-08-24 80 views
0

我有這樣的代碼:比較兩個字符串大小寫不敏感

section .data 
    msg1 db "Equal" 
    msg1Len equ $ -msg1 

    msg2 db "Not equal" 
    msg2Len equ $ -msg2 

    str1 db "abcde" 
    str1Len equ $-str1 

    str2 db "abcde" 
    str2Len equ $ -str2 

section .text 
    global _start 

_start: 
    mov esi,str1 
    mov edi,str2 
    mov ecx,str2Len+1 
    cld 
    repe cmpsb 
    jecxz equal ;jumps if equal 
      ;if not equal 
    mov eax,4 
    mov ebx,1 
    mov ecx,msg2 
    mov edx,msg2Len 
    int 80h 

    jmp exit 

equal: 
    mov eax,4 
    mov ebx,1 
    mov ecx,msg1 
    mov edx,msg1Len 
    int 80h 

exit: 
    mov eax,1 
    mov ebx,0 
    int 80h 

我試圖做的是讓它不區分大小寫,如「ABCDE」仍然等於「ABCDE」。 但是,區分大小寫。你如何使它不區分大小寫? 任何幫助將不勝感激。

回答

0

一種常見的方法是將兩個字符串轉換爲一個常見的情況,例如大寫,然後比較這些字符串。如果您不希望事先操作字符串,可以通過將當前選中的字符轉換爲常見格式並進行比較來實現。看看一張ASCII圖表,找出這兩種角色之間的區別是什麼,這樣你就可以將一個角色轉換爲另一個角色。

+0

謝謝。我一直在想,但我不知道該怎麼做。 – ThisGuy

+0

究竟做什麼? –

+0

我不知道如何使它成爲大寫。 :( – ThisGuy