X86 Lds Direct
She couldn’t just remove the LDS . The entire linked list traversal depended on far pointers. But she could replace it.
Eleanor muttered, “Oh, you ancient beast.” x86 lds
In the spring of 1992, Eleanor, a young and slightly reckless systems programmer, found herself hunched over a beige 386 DX/40. The machine groaned under MS-DOS 5.0, and in front of her was a nightmare: a core dump from a geological modeling program she’d inherited. She couldn’t just remove the LDS
lds bx, [si] ; Load 32-bit pointer from address DS:SI into DS:BX The geophysicist had used it to chase a linked list of fault lines. Eleanor realized the bug: the code assumed SI pointed to a far pointer stored in the current data segment. But in protected mode, under a DOS extender, DS could change anytime a task switched. One moment DS pointed to low memory; the next, to a buffer in extended memory. Eleanor muttered, “Oh, you ancient beast