хелловорлд на асме:
.section .data
msg:
.ascii "Hello, world!\n"
len = . - msg # символу len присваевается длина строки
.section .text
.global _start # точка входа в программу
_start:
movl $4, %eax # системный вызов № 4 — sys_write
movl $1, %ebx # поток № 1 — stdout
movl $msg, %ecx # указатель на выводимую строку
movl $len, %edx # длина строки
int $0x80 # вызов ядра
movl $1, %eax # системный вызов № 1 — sys_exit
xorl %ebx, %ebx # выход с кодом 0
int $0x80 # вызов ядра
Я вот не пойму, ассемблер — это ведь язык для процессора? Тогда откуда там взялись такие понятия как «системный вызов», «строка» «stdout» и и прочее? Про какое там «ядро» идет речь? Разве это не относится к системе, которая работает уже поверх процессора?