It is a bit ironic that, although the extreme speed and memory size of modern computers makes tight optimization less necessary, this has also made much better optimizers possible.
That is, you can (at least in theory) get a faster/smaller executable by cross-compiling from a modern computer to an 8088 PC than you can get by running a compiler on the 8088 itself.
Which I suppose is why hand-written assembly code was so common back then.