Syscall lub sysenter na 32-bitowym Linuksie?

Od MS-DOS wiem, że wywołanie systemu odbywa się za pomocą przerwań. W starych gazetach widziałem odniesienie doint 80h, aby wywołać funkcje systemowe w systemie Linux. Od dłuższego czasu wiemint 80h jest przestarzałe na rzeczsyscall instrukcja. Ale nie mogę go uruchomić na mojej 32-bitowej maszynie.

Pytani

Jestsyscall instrukcja do użycia tylko na platformie 64-bitowej? Nie 32-bitowy Linux używasyscall?

Przykładowy test

Na moim 32-bitowym Linuksie (Ubuntu Precise) ten program kończy się zrzutem rdzenia:

global _start

_start:
        mov     eax, 4                ; 4 is write
        mov     ebx, 1                ; 1 is stdout
        mov     ecx, message          ; address of string
        mov     edx, length           ; number of bytes
        syscall

        mov     eax, 1                ; 1 is exit
        xor     ebx, ebx              ; return code 0
        syscall

message:
        db  10,"Hello, World",10,10
length  equ $ - message

Próbowałem zsysenter zamiastsyscall, ale ulega awarii w ten sam sposób.

questionAnswers(2)

yourAnswerToTheQuestion