У меня есть этот код:
section .bss
buff resb 1
readfromkeyboard:
mov eax,3 ;specify system read
mov ebx,0 ;specify standard in -> keyboard
mov ecx,buff ;where to store what is read
mov edx,1 ;read 1 byte
int 0x80 ;tell linux to do everything above
mov eax,4 ;sys_write
mov ebx,1 ;Standard output
mov ecx,buff ;what to print
mov edx,1 ;how long to print
int 0x80 ;tell linux to do everything above
который отлично работает.
Когда я запустил процесс, курсор начнет мигать в терминале, и я могу свободно вводить символы. На этом этапе я могу ввести столько символов, сколько захочу, кроме случаев, когда я ударил "ENTER" 1 байт, будет прочитан, и он будет напечатан в терминале.
Мой вопрос в том, что происходит внутри, когда я ввожу символы, и когда я нажимаю Enter. Поэтому я нажимаю "a" на своей клавиатуре и говорю "c", где хранятся эти данные на данный момент? Являются ли они уже в памяти, адресованном "buff" в моем коде? Почему Linux читается, когда я нажимаю Enter?