Inline assembly under FreeBSD
Unga
unga888 at yahoo.com
Mon Apr 7 10:03:54 UTC 2008
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 */
else
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:
http://en.wikipedia.org/wiki/INT_13
Thanks in advance.
Kind regards
Unga
____________________________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.
http://tc.deals.yahoo.com/tc/blockbuster/text5.com
More information about the freebsd-questions
mailing list