Как передать непечатаемый байт 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

0 ответов

Другие вопросы по тегам