So greifen Sie auf ein Zeichen-Array zu und setzen Kleinbuchstaben in Großbuchstaben um und umgekehrt

Ich arbeite derzeit an einem Klassenprojekt für Structured Computer Organization mit einem x86-Prozessor. Der Wert, auf den ich zugreife, ist ein 1-Byte-Zeichen, aber ich weiß nicht, wie ich es mit einem Großbuchstaben vergleichen soll. Sie sagten, sie sollten eine ASCII-Tabelle im Hex-Format verwenden, aber ich weiß nicht, wie ich die beiden überhaupt vergleichen soll.

void changeCase (char char_array[], int array_size ) {
    __asm {
            // BEGIN YOUR CODE HERE

        mov eax, char_array;        //eax is base image
        mov edi, 0;

    readArray:
        cmp edi, array_size;
        jge  exit;
        mov ebx, edi;           //using ebx as offset
        shl ebx, 2;
        mov cl, [eax + ebx];    //using ecx to be the storage register

    check:
        //working on it
        cmp cl, 0x41;       //check if cl is <= than ASCII value 65 (A)
        jl next_indx;
        cmp cl, 0x7A;       //check if cl is >= than ASCII value 122 (z)
        jg next_indx;
        cmp cl, 'a';
        jl convert_down;
        jge convert_up;


    convert_down:
        or cl, 0x20;        //make it lowercase
        jmp write;

    convert_up:
        and cl, 0x20;       //make it uppercase
        jmp write;

    write:
        mov byte ptr [eax + ebx], cl    //slight funky town issue here,

    next_indx:
        inc edi;

    exit:
        cmp edi, array_size;
        jl readArray;

    mov char_array, eax;
            // END YOUR CODE HERE
    }
}

Alles hilft an dieser Stelle. Vielen Dank im Voraus für die Hilfe!

edit 1:

Danke für all die Vorschläge und Punkte der Klarheit, bearbeitet meinen Code, um Veränderungen widerzuspiegeln. Ein Problem mit der Zugriffsverletzung.

edit 2 (+):

ielen Dank für die hilfreichen Augen Leute. Ich werde immer noch alle Briefe übersetzen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage