Я новичок в языке ассемблера, и у меня возникли проблемы с некоторыми проблемами для начинающих. Я пытаюсь написать функцию, которая преобразует char* из нижнего регистра в верхний. В моем коде я написал оператор if, чтобы проверить, находится ли выбранный символ между границами ascii символов нижнего регистра. У меня есть 2 вопроса по этому поводу. Во-первых, я продолжаю получать ошибку компилятора в моем выражении if, касающемся одного из остальных, которые я использую. Во-вторых, я планирую перебирать весь char*, преобразовывая каждый символ, если он следует в пределах необходимого диапазона. Используя цикл, как я смогу это сделать? Любая помощь будет потрясающей, я очень ценю это! Спасибо!
void toUpper(char *string) {
__asm{
PUSH EAX
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
MOV EBX, string
/* Your code begins below this line. */
mov eax, dword ptr[ebx]
cmp eax, 97d
jl ELSE
cmp eax, 122d
jg ELSE
sub eax, 32d
jmp END_IF
END_IF:
/* Your code ends above this line. */
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EAX
}
}