de mon précédent doute - Difference between “mov eax, [num]” and “mov eax, num”à imprimer à la console -> ambuiguity pour les contenus dans ECX et EDX enregistre
Je suis venu à connaître "mov eax, num" stockera adresse num dans eax et "mov eax, [num] "va stocker valeur de num dans eax
Maintenant ICI!
mov edx, strLen ; Arg three: the length of the string
mov ecx, str ; Arg two: the address of the string
mov ebx, 1 ; Arg one: file descriptor, in this case stdout
mov eax, 4 ; Syscall number, in this case the write(2)
int 0x80 ; Interrupt 0x80
section .data
str: db 'Hello, world!',0xA
strLen: equ $-str
registre Idéalement EDX doit avoir une longueur, de sorte
- comme "mov ecx, str" - magasins adresse de str dans ecx
- pas "mov edx, strlen "devrait également stocker l'adresse de strlen et non la valeur dans edx.
- pour stocker valeur de strlen dans EDX, pourquoi nous n'utilisons "mov edx, [strlen]"
le code suivant est référencé à partir de ce lien - http://asm.sourceforge.net/intro/hello.html
Son meurtre moi !
Merci à l'avance ...
est la déclaration dans la section .data et non à la section .bss a une pertinence à ma question! PS: Je connais la section .data, pour déclarer les constantes et la section .bss, pour déclarer les variables. – Sham
* "mov eax, [num]" va stocker la valeur ** de ** num dans eax "* est probablement plus précisément indiqué comme, *" mov eax, [num] "va stocker la valeur ** à ** num dans eax "*, ce qui est probablement ce que vous vouliez dire. – lurker
@lurker oui Lurker c'est ce que je voulais dire – Sham