в настоящее время работает над проектом класса для структурированной компьютерной организации с использованием процессора x86. Значение, к которому я обращаюсь, составляет 1 байт char, но я не знаю, как сравнить его с прописным. Они сказали, что используют таблицу ascii в шестнадцатеричном формате, но я не уверен, как сравнить эти два.
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
}
}
Что-то помогает на этом этапе. Заранее спасибо за помощь!
изменить 1:
Спасибо за все предложения и точки ясности, отредактировал мой код, чтобы отразить изменения. Некоторая проблема с нарушением прав доступа теперь.
изменить 2 (+):
Спасибо за полезные глаза людям. Я все еще собираюсь переводить все письма сейчас.
