Advertisement
Matheus_Assis

Read Input

Jul 31st, 2020
2,817
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Ler o input do usuário STD_IN
  2.  
  3. ; Montagem e linkedição: nasm -felf64 -o main.o main.asm && ld -o main main.o
  4.  
  5. bits 64 ; Setando a arquitetura do programa
  6.  
  7. global _start ; Setando o rótulo global
  8.  
  9. section .data
  10.   msg: db 'Digite seu nome: ', 0xF ; Armazenando os dados do input
  11.   len: equ $ - msg                 ; Contando os caracteres
  12.  
  13.  
  14. section .bss
  15.   buf: resb 7 ; Reservando 7 bytes em memória
  16.  
  17.  
  18. section .text
  19. _start:
  20.   call _printMsg  ; Printando a mensagem pro usuário
  21.  
  22.   call _readInput ; Coletando o valor do input do usuário
  23.  
  24.   call _printBuf  ; Printando o conteúdo do input
  25.  
  26.   jmp _exit       ; Saltando para o bloco de saída do programa  
  27.  
  28.  
  29.  
  30. _readInput:
  31.   mov rax, 0    ; Chamando a syscall __NR_write
  32.   mov rdi, rax  ; Definindo STDIN
  33.   mov rsi, buf  ; Armazenando o endereço da memória reservada
  34.   mov rdx, 7    ; Definindo o tamanho do buf
  35.   syscall
  36.   ret  
  37.  
  38. _printMsg:
  39.   mov rax, 1    ; Chamando a syscall __NR_write
  40.   mov rdi, rax  ; Definindo STDOUT
  41.   mov rsi, msg  ; Armazenando o endereço do buffer
  42.   mov rdx, len  ; Definindo o tamanho do buffer
  43.   syscall       ; Chamada de sistema
  44.   ret
  45.  
  46. _printBuf:
  47.   mov rax, 1    ; Chamando a syscall __NR_write
  48.   mov rdi, rax  ; Definindo STDOUT
  49.   mov rsi, buf  ; Armazenando o endereço do buffer
  50.   mov rdx, 7    ; Definindo o tamanho do buffer
  51.   syscall       ; Chamada de sistema
  52.   ret
  53.  
  54.  
  55. _exit:
  56.   mov rax, 60   ; Definindo a syscall __NR_exit
  57.   mov rdi, 0xff ; Definir o argumento da syscall
  58.   syscall       ; Chamada de sistema
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement