Таким образом, для универсального задания мы должны создать программу шифрования / дешифрования с использованием C ++ и Assembly.Программа принимает 6-буквенную строку, а затем выполняет часть программы шифрования / дешифрования.Обе эти части работают правильно, но мы также должны проверить, являются ли введенные символы буквенно-цифровыми.Я пытаюсь начать с проверки сначала правильной цифры, а затем я могу добавить проверку на буквы позже.Это код, который я получил до сих пор;
void get_char(char& a_character)
{
a_character=(char) _getwche();
__asm
{
push eax // save value to the stack for later use
mov eax, a_character // store the character in EAX
cmp eax, 0x30 // compare character with '0'
jl invalid // (character < 0) and is therefore invalid
cmp eax, 0x39 // compare character with '9'
jg invalid // (character < 0) && (character > 9) so it is therefore invalid
jmp valid // character is within the accepted range and is therefore valid
}
__asm
{
invalid:
}
cout << "\n invalid > ";
__asm
{
valid:
pop eax
}
if (a_character == '\r' || a_character == '\n')
{
a_character = dollarchar;
}
}
Я ожидаю, что код проверит, является ли введенное значение <0, и если это так, тогда перейдите к неверному разделу и напечатайте строку, говорящую, чтозначение недействительно.И затем сделайте то же самое для> 9. Но по какой-то причине, независимо от того, какой символ я ввожу, он все равно печатает неверную строку.Я уверен, что это действительно простое решение, но я просто не могу понять, что идет не так, и любое решение, которое я пробую, просто вызывает другую проблему.
Заранее спасибо.