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 travez 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 metodo de entrada (teclado)

    mov rsi, buffer
    ;Recibimos la direccion de memoria de nuestro buffer

    mov rdx, 100
    ;Definimos el limite de bytes que vamos a leer
    
    syscall

    ;Despues de hacer la llamada el registro rax va a almacenar los bytes reales que escribio el usuario

    mov r8, rax
    
    ;Termina la leectura de los datos ingresados por el usuario
    
    ;Impresion del mensaje "El texto ingresado es:"
    mov rax, 1
    mov rdi, 1
    mov rsi, resp
    mov rdx, resp_len
    syscall

    ;Impresion del texto ingresado
    mov rax, 1
    mov rdi, 1
    mov rsi, buffer
    ;Apesar que despues de la ejecucion rax tenia el valor del usuario, antes de eso el buffer tambien habia 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 buffer y r8 nos da lo que realmente ocupo

    syscall

    ;termino el 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: