Я экспериментировал и имею следующий код ассемблера, который работает очень хорошо, за исключением того, что я получаю «ошибку сегментации (ядро сбрасывало)» сообщение прямо перед моей программой заканчивается:Сборка ошибка сегментации Linux системного вызова
GLOBAL _start
%define ___STDIN 0
%define ___STDOUT 1
%define ___SYSCALL_WRITE 0x04
segment .data
segment .rodata
L1 db "hello World", 10, 0
segment .bss
segment .text
_start:
mov eax, ___SYSCALL_WRITE
mov ebx, ___STDOUT
mov ecx, L1
mov edx, 13
int 0x80
Не имеет значения, есть ли у меня ret
в конце; Я все еще получаю сообщение.
В чем проблема?
Я использую x86 и nasm.
Вам нужно SYSCALL выход в явном виде. –
приятно :) спасибо! – itpdg
Возможный дубликат [Nass segmentation fault] (https://stackoverflow.com/questions/19760002/nasm-segmentation-fault) –