Hi all

I'm trying to execute following inline assembly code
in a C function under FreeBSD 7.0:

typedef unsigned char u8;
typedef unsigned short u16;

u8 devno= 0x80;

static int check_extensions(u8 devno)
        u16 ax, bx, cx, dx, di;

        ax = 0x4100;
        bx = 0x55AA;
        dx = devno;
        asm("pushfl; stc; int $0x13; setc %%al; popfl"
            : "+a" (ax), "+b" (bx), "=c" (cx), "+d" (dx)
            : : "esi", "edi");

        if ((u8)ax)
                return -1;      /* No extended information */
                return 1;       /* Extended information available */

When it is executing the int $0x13, it crashes with
"Program received signal SIGBUS, Bus error."

Could you guys give me a helping hand to identify
what's the problem?

Input and return values are at:

Thanks in advance.

Kind regards

You rock. That's why Blockbuster's offering you one month of Blockbuster Total 
Access, No Cost.  
freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to