section .data
     resp db "El texto ingresado es: ",0
     resp_len  equ $ - resp

section .bss
     buffer resb 100

section .text
    global _start

_start:
    ;Aqui se inicia la lectura de lo que ingresa el usuario
    mov rax, 0 
    ;Indicamos a través del 0 en el registro rax que vamos a usar una llamada de sistema 'sys_read'

    mov rdi, 0
    ;Especificamos con el 0 en rdi el método de entrada (Teclado)

    mov rsi, buffer
    ;Recibimos la dirección de momoria de nuestro buffer

    mov rdx, 100
    ;Definimos el límite de bytes qué vamos a leer

    syscall

    ;Después de hacer la llamada el registro rax va a almacenar los bytes reales que escribió el usuario

    mov r8, rax
    
    ;Termina la lectura de los datos ingresados por el usuario

    ;Impresion del mensaje "El texto ingresado es: "
    mov rax, 1 ;Escritura
    mov rdi, 1 ;Salida
    mov rsi, resp
    mov rdx, resp_len
    syscall

    ;Impresion del texto ingresado
    mov rax, 1
    mov rdi, 1
    mov rsi, buffer
    ;Apelar que después de la ejecución rax tenia el valor del usuario, ates de eso el buffer también había guardado lo que ingreso el usuario.
    mov rdx, r8
    ;Usamos un registro especial del buffer donde nos pasa la longitud real usada, ya que se reservo 100 bytes a este bufer y r8 nos da lo que realmente ocupo

    syscall

    ;Termino del programa
    mov rax, 60
    mov rdi, 0
    syscall

    

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: