Posts

Showing posts from August, 2024

Hello x86: Low-level assembly coding for the 8086

Image
Hello x86: Low-level assembly coding for the 8086 wiring no-talking, in emulated 80286 / MS-DOS machine in DOSbox. This is a set of four "hello world" codes in x86 assembly, using single-segment 16-bit/i8086 instruction set. The purspose of this tutorial is to demonstrate how exact, minimal-space, yet razor-sharp is assembly coding, especially when dealing with such complexities like the segmented memory model of MS-DOS. The four versions are: Hello1.asm: Old-style standard directives, used by '70s-'80s assemblers, for .EXE output. Hello1C.asm: Old-style standard directives, used by '70s-'80s assemblers, for .COM output. Hello2.asm: Compact 'dot' directives, used by modern assemblers, for .EXE output. Hello2C.asm: Compact 'dot' directives, used by modern assemblers, for .COM output. The difference between .EXE and .COM comes from the MS-DOS era, when the first format required 'far' pointers (segment:offset) for memory ad

Channel Updates