I am adding here the portion from Linux.Assembly HOWTO .. This is just cut and paste which I think is relevent to The question : For more details see Linux Assembly HOWTO part 1 Section 3.5 --------------------------------------------------------- 3.5. AS86 AS86 is a 80x86 assembler, both 16-bit and 32-bit, part of Bruce Evans' C Compiler (BCC). It has mostly Intel-syntax, though it differs slightly as for addressing modes. 3.5.1. Where to get AS86 A completely outdated version of AS86 is distributed by HJLu just to compile the Linux kernel, in a package named bin86 (current version 0.4), available in any Linux GCC repository. But I advise no one to use it for anything else but compiling Linux. This version supports only a hacked minix object file format, which is not supported by the GNU binutils or anything, and it has a few bugs in 32-bit mode, so you really should better keep it only for compiling Linux. The most recent versions are published together with the FreeBSD distribution. Well, they were: I could not find the sources from distribution 2.1 on :( Hence, I put the sources in my place: <http:///www.eleves.ens.fr:8080/home/rideau/files/bcc-95.3.12.src.tgz> The Linux/8086 (aka ELKS) project is somehow maintaining bcc (though I don't think they included the 32-bit patches). See around <http://www.linux.org.uk/Linux8086.html> <ftp://linux.mit.edu/> Among other things, it supports Linux GNU a.out format, so you can link you code to Linux programs, and/or use the usual tools from the GNU binutil package to manipulate your data. This version can co- exist without any harm with the previous one (see question 2.4.4 below). BCC from 12 march 1995 and earlier version has a misfeature that makes all segment pushing/popping 16-bit, which is quite annoying when programming in 32-bit mode. A patch is published in the Tunes project <http://www.eleves.ens.fr:8080/home/rideau/Tunes/> subpage files/tgz/tunes.0.0.0.25.src.tgz in unpacked subdirectory LLL/i386/ The patch should also be in available directly from <http://www.eleves.ens.fr:8080/home/rideau/files/as86.bcc.patch.gz> Bruce Evans accepted this patch, so if there is a more recent version of bcc somewhere someday, the patch should have been included... Portability note: as86 makes a lot of presomptuous assumptions about type sizes, which prevents it from correctly running on architectures that fail to me |