В среде Linux, если я напишу код NASM следующим образом:
mov eax, 1 ; system call 1 - sys_exit mov ebx, 0 int 0x80
... каково значение в ebx?
Это код завершения процесса - ваш фрагмент более или менее exit(0)
exit(0)
См. эту ссылку для (несколько устаревшего) списка.
% ebx - код состояния для системного вызова выхода
Это означает, что все, что хранится в % ebx , будет возвращено в операционную систему. Поэтому после выполнения вашего приложения на терминале введите следующую команду:
echo $?
напечатает код возврата вашего приложения.
Страницы 20, 21, 22 из Программирование с нуля очень хорошо объясняет это.
В общем случае интерфейс системных вызовов Linux x86 использует eax для хранения номера системного вызова, а затем следующие регистры для аргументов функций справа
Здесь есть очень хорошая таблица системных вызовов, которая описывает большинство системных вызовов Linux:
http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html
mov eax, 1 ; - это код sys_exit
mov eax, 1 ;
mov ebx, 0 ; значение ebx может быть 0 или 1, 0 означает нормальный выход, 1 означает ошибку.
mov ebx, 0 ;