Hallo,

hoffe eine kleine Anfänger Assembler-Frage ist hier gestattet. Beschäftige mich seit kurzer Zeit mit der Programmiersprache Assembler und Linux (ix86) und stehe nun vor einem kleinem Problem.
Würde ganz gerne, um mehr über den Umgang mit Assembler zu lernen, einmal das Status-Byte des Druckers abfragen, leider bereitet mir das einige Schwierigkeiten, vielleicht könnt ihr mir da weiterhelfen?

Code:
section .text
global _start

msg     db "Druckertest ...",0x0A ;0x0A->zeilenumbruch
msg2    db "Drucker bereit",0x0A
len     equ $-msg
len2    equ $-msg2

_start:
        mov eax,4 ; Ausgabe von msg
        mov ebx,1      
        mov ecx,msg
        mov edx,len
        int 0x80
        jmp Drucker_test


Drucker_test:
        mov ah,02
        xor dx,dx
        int 17h
        test ah,10000000b
        je Bereit

Bereit:
        mov eax, 4
        mov ebx, 1
        mov ecx, msg2
        mov edx, len2
        int 0x80
        jmp Endeprg

Endeprg:
        mov eax,1       ;syscall 1 = exit
        int 0x80        ;exit
ist natürlich sehr simpel und sieht sicher auch sehr mies aus, für jemand der sich da etwas besser auskennt, bin wie gesagt noch in der Lernphase. :-)
Beim Ausführen von int 17h "segfaultet" mir das Programm, bin daher um jede Antwort/Verbesserung dankbar, diesen Fehler zum vermeiden.

Danke im Voraus,
h.d.