8086 programming
Table of Contents
1. Blinkenlights
visual emulator / debugger for statically compiled Linux executables, used in Cosmopolitan
2. dev86
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
7. 8087
floating point co-processor