Надеюсь, это простой вопрос:
Во-первых, я хотел бы знать, есть ли у кого-нибудь идея, как получить пользовательский ввод, используя синтаксическую сборку x86 NASM в Linux.Прямо сейчас у меня есть:
section .data
greet: db 'Hello!', 0Ah, 'What is your name?', 0Ah ;simple greeting
greetL: equ $-greet ;greet length
colorQ: db 'What is your favorite color?' ;color question
colorL: equ $-colorQ ;colorQ length
suprise1: db 'No way '
suprise1L equ $-suprise1
suprise3: db ' is my favorite color, too!', 0Ah
section .bss
name: resb 20 ;user's name
color: resb 15 ;user's color
section .text
global _start
_start:
greeting:
mov eax, 4
mov ebx, 1
mov ecx, greet
mov edx, greetL
int 80 ;print greet
getname:
mov eax, 3
mov ebx, 0
mov ecx, name
mov edx, 20
int 80 ;get name
askcolor:
;asks the user's favorite color using colorQ
getcolor:
mov eax, 3
mov ebx, 0
mov ecx, name
mov edx, 20
int 80
thesuprise:
mov eax, 4
mov ebx, 1
mov ecx, suprise1
mov edx, suprise1L
int 80
mov eax, 4
mov ebx, 1
mov ecx, name
mov edx, 20
int 80
;write the color
;write the "suprise" 3
mov eax, 1
mov ebx, 0
int 80
Итак, он запрашивает имя и цвет и говорит: «Ни в коем случае - name-- --color-- мой любимый цвет тоже.
Мне нужна помощь в том, чтобы узнать, как долго переменные «name» и «color» выше после того, как пользователь вводит их, в противном случае я получаю кучу длинных, неприятных пробелов между ними, потому что я толькознаю, что максимальный размер, который они могут быть, - это то, что я объявил ранее.
Спасибо за любую помощь.