▲ | rep_lodsb 7 months ago | |||||||||||||
The problem is that you can't hold a pointer to more than 64K of address space inside a 16-bit register. x86 could have easily had an IP-relative addressing mode for data from the beginning (jumps and calls already had it), but to get a pointer you can pass around to use someplace else than the current instruction, it has to be either absolute, or relative to some other "base" register which stays constant. Like the segment registers. | ||||||||||||||
▲ | gpderetta 7 months ago | parent [-] | |||||||||||||
Just combining two 16 bit registers for a logical 32 bit address would have been better than the weird partially overlapping addressspace. | ||||||||||||||
|