Run Unix, it has a much simpler ABI. Or use a bare
machine -- serial
line output is trivial, certainly once you've initialized the UART.
Or use an 8-bit microcontroller-based board with a simple monitor program
in ROM. Designing something like that is not a difficult project, and
even a novice assembly language programmershould be able to understand
'To print a character on the screen, load the ASCII code into the
accumulator and call this address'.
I think most of use agree that the important thing is to understand the
concepts of machine language. Once you understand one processor it
doesn't take that long to understand another. And there's little reason
to specifically teach the 80x86 and LuseDoze API, since very little code
for those machines is written in assembly language anyway.
-tony