J'essaye d'apprendre l'assemblée pour diverses raisons et j'essaye d'écrire un code qui dit bonjour bla bla bla puis lit votre nom, imprime votre nom et dit plus bla bla bla mais il ne montre pas le texte après qu'il obtient votre nom Im sûr que ce quelque chose de stupide ... désolé ...Aide avec le code d'assemblage
voici ce que j'ai jusqu'à présent:
.section .bss
.lcomm bufname, 256
.section .data
msg1:
.ascii "Hello, please enter your name!\n" # Message to write
len1 = . - msg1 # Length of string
msg2:
.ascii "Good to meet you "
len2 = . - msg2
msg3:
.ascii ". Iam your first assembly program!\n"
len3 = . - msg3
.section .text
.globl _start
_start:
call get_name
get_name:
#should print msg1
mov $4, %eax # system call number (sys_write)
mov $1, %ebx # file descriptor (stdout)
mov $msg1, %ecx # Message to write
mov $len1, %edx # Lenght of message
int $0x80 # Call kernel
#should get user input
mov $3, %eax # System call number (sys_read)
mov $0, %ebx # File descriptor (stdin)
mov $bufname, %ecx # Buffer to store the name
mov $256, %edx # Lenght of buffer
int $0x80
#should print msg2
mov $4, %eax
mov $1, %ebx
mov $msg2, %ecx
mov $len2, %edx
int $0x80
#should print bufname (doesn't)
mov $bufname, %ecx
mov $256, %edx
int $0x80
#should print msg3 (doesn't)
mov $msg3, %ecx
mov $len3, %edx
int $0x80
call exit
exit:
mov $1, %eax
mov $0, %ebx
int $0x80
Pour compiler j'utiliser
as Jes.s -o Jes.o
ld Jes.o -o Jes
Ceci est la sortie i obtenir
$ ./Jes
Hello, please enter your name!
renato
Good to meet you
Il doit montrer
Good to meet you renato. Iam your first assembly program!
Pourquoi est-ce mal? et merci beaucoup pour votre temps!
A travaillé = D merci! – Renato