I'm new on assembly languages and I'm trying to learn the intel 32bit assembly language on linux using NASM and following the assembly tutorial of tutorialspoint. I've got some questions on this example:
section .text
global _start ;must be declared for using gcc
_start: ;tell linker entry point
mov edx, len ;message length
mov ecx, msg ;message to write
mov ebx, 1 ;file descriptor (stdout)
mov eax, 4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax, 1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Hello, world!',0xa ;our dear string
len equ $ - msg ;length of our dear string
I know that name db 'Zara Ali'
it's a shorthand of name db 'Z','a','r','a'....
but
- How 'name' variable is stored in the ecx register if it doesn't fit in it? (I mean when we want to write Zara Ali on output)
- Is the system call (0x80) repeated for each character?