У меня нет кода в сборке, но в C показанная вами функция get_char()
должна выглядеть примерно так:
void get_char(char& a_character)
{
do
{
a_character = (char) _getwche();
if (
((a_character >= '0') && (a_character <= '9')) ||
((a_character <= 'a') && (a_character <= 'z')) ||
((a_character <= 'A') && (a_character <= 'Z')) ||
(a_character == dollarchar)
)
/* alternatively:
if (isalnum(a_character) || (a_character == dollarchar))
*/
{
break;
}
printf("Alphanumeric characters only, please try again > ");
}
while (true);
}
В качестве альтернативы:
void get_char(char& a_character)
{
a_character = (char) _getwche();
while (
!(
((a_character >= '0') && (a_character <= '9')) ||
((a_character <= 'a') && (a_character <= 'z')) ||
((a_character <= 'A') && (a_character <= 'Z')) ||
(a_character == dollarchar)
)
)
/* alternatively:
while (!isalnum(a_character) && (a_character != dollarchar))
*/
{
printf("Alphanumeric characters only, please try again > ");
a_character = (char) _getwche();
}
}
Я оставляю вам упражнение по переводу кода C в сборку.