p86asm-ng: replacement educational psuedo-x86 assembler

I'll add more to this writeup as I find the time. For now, this document gives a general overview and points to the repository @ github.


    This project was intended as a replacement asssembler for my SYSC2001 class at Carleton. The existing assembler for the psuedo-x86 machine was, well, fairly terrible (and included some wonderful bugs such as an improperly flushed linebuffer and other oddities) and, most importantly, was a Windows-only binary. To be fair, it ran under Wine on Linux Mint, but didn't support UNIX-style line endings, so that meant I had to run unix2dos on my asm file before running it through p86asm54 (the assembler we were given.) To that end, p86asm-ng was born.

    Name Change

    The companion to this assembler, the Libra emulator, was conceived in an attempt to replace the teaching tools using in the introductory computer architecture class completely. To keep consistent names, this assembler was renamed lasm (Libra assembler). It still generates 8086-compatible instructions, but is packaged with Libra to form a comprehensive toolkit.

    Current Efforts

    An up-to-date source tree for the assembler can be found on GitHub.