Wow.... I remember writing 8086 assembly on MASM and another assembler I've forgotten the name of, and then also doing inline ASM in Turbo C++

The segment thing and the convoluted different pointer math caused real gymnastics if you ever had data bigger than 64k... such as images.

I always thought of the segments as windows of 64k but moving between those windows, esp with the limited register set, required some real mental gymnastics.

Contemporary hardware rarely had images over 64k and memory bandwidth at the time made them a laughable concept.