Как хранить и использовать выход Rax в регистр для последующего использования?Linux

Ответить
Anonymous
 Как хранить и использовать выход Rax в регистр для последующего использования?

Сообщение Anonymous »

Мне дали назначение для хранения и записи строки, внедренной пользователем, хранящейся в буфере . Мой профессор сказал, что количество чтения байтов сохраняется в RAX после того, как пользователь вводит строку в буфер. Итак, я попробовал хранить данные RAX в R8 , чтобы позже использовать их для распечатки буфера , но когда R8 используется для печати правильной длины, ничего не происходит.
Вот мой файл:

Код: Выделить всё

section .data                         ; we're not allowed to edit anything
; in section .data for this assignment
prompt: db "What is your name? "
prompt_len: equ $-prompt

buffer: times 255 db '!'

resp1:       db    "Hello, "
resp1_len:   equ   $-resp1
resp2:       db    ", nice to meet you!", 10
resp2_len:   equ   $-resp2

section .text

global _start
_start:

mov rax, 1
mov rdi, 1
mov rsi, prompt      ; "What is your name? "
mov rdx, prompt_len
syscall

mov rax, 0         ; prof. said output is stored here
mov rdi, 1
mov rsi, buffer    ; user inputs their name
mov rdx, 225
syscall

mov r8, rax        ; I tried storing rax into r8
syscall

mov rax, 1
mov rdi, 1
mov rsi, resp1      ; "Hello, "
mov rdx, resp1_len
syscall

mov rax, 1
mov rdi, 1
mov rsi, buffer    ; name is printed out there
mov rdx, r8        ; I try to use r8 to print out the correct length
syscall

mov rax, 1
mov rdi, 1
mov rsi, resp2      ; ", nice to meet you!"
mov rdx, resp2_len
syscall

mov rax, 60
mov rdi, 0
syscall
< /code>
Программа должна распечатать: < /p>
What is your name? INPUTNAME Hello, INPUTNAME, nice to meet you!

, но вместо этого он печатает без имени:

Код: Выделить всё

What is your name? INPUTNAME Hello, , nice to meet you!

Я новичок в сборке x86, поэтому я не знаю, что на самом деле хранит Rax, номер, адрес, данные мусора?

Подробнее здесь: https://stackoverflow.com/questions/797 ... -later-use
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»