У меня есть этот код:
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?
