8086 programming

Table of Contents

1. Blinkenlights

visual emulator / debugger for statically compiled Linux executables, used in Cosmopolitan

2. dev86

3. https://web.archive.org/web/20090206143228/https://www.iecc.com/linker/linker03.html

4. https://en.wikipedia.org/wiki/Relocatable_Object_Module_Format

5. segmentation

https://en.wikipedia.org/wiki/X86_memory_segmentation effective address is:

uint16_t *base, *offset;
uint32_t *effective = base<<4+offset;

https://en.wikipedia.org/wiki/X86_memory_models

I might have explained this before, but normally a near call to a far function will break, because it'll pop 4 bytes off the stack for the return address, when the near call only pushed 2.

So you fix this by doing push CS first, so it'll pop the 2 from the call, and then the 2 you placed before.

– Foone

6. debugging

7. 8087

floating point co-processor

8. compilers

Author: Csepp

Created: 2025-05-07 sze 03:33

Validate