Как передать непечатаемый байт ASCII в файл-дескриптор STDIN в ассемблере x86_64 (yasm)
проблема
Предположим, у меня есть программа на x86_64
ассемблер yasm
(см. ниже), который запрашивает ввод от пользователя через SYS_read
Системный сервис в какой-то момент. Этот вывод далее рассматривается как номер байта в программе. Пользователь может легко предоставить все числа, соответствующие печатным символам ASCII, т.е. 0x20
в 0x7f
(может быть, еще немного). Но как обеспечить 0x90
например?
Возможное решение для нескольких персонажей
Я мог бы использовать следующую комбинацию, чтобы предоставить желаемый номер:
<C-S-u> 0 0 9 0
Но это решение может быть утомительным, когда необходимо ввести много символов.
Фрагмент программы
Вот та часть программы, которая отвечает за чтение из STDIN.
readChar:
mov rax, SYS_read
mov rdi, STDIN
lea rsi, byte [rbp - 1]
mov rdx, 1
syscall