Assembler sys_read // дублируется текст после закрытия программы

gaZmanoV

Участник
Автор темы
31
3
Текст, полученный в sys_read дублируется после закрытия программы дублируется. Из-за того, что он не дублирует первый символ, подумал что дело в 3 аргументе(size buffer), и пытался решить, но без успешно. Что я не так сделал? =((
P.s использую NASM, но думаю дело в том, что я что-то упустил в sys_read

Задумка программы в том, чтобы игнорировать любые символы и вывести текст "Hello world", только по нажатию enter.
Код:
section .data
    buff: db "Hello world!", 0xA
    buffLen: equ $-buff
    
    cmpBuff: db ?
    

section .text
    global _start

_start:

    mov eax, 3 ; sys_read
    mov edx, 0 ; size
    
loop_1:
    mov ebx, 0 ; type
    mov ecx, cmpBuff ; buff
    add edx, 1 ; ++size
    int 0x80
    
    cmp BYTE [ecx], 0xA
    jz loop_1

    mov eax, 4
    mov ebx, 1
    mov ecx, buff
    mov edx, buffLen
    int 0x80

    mov eax, 1
    mov ebx, 0
    int 0x80

1650405258812.png