You might want to look, gh level assembly by Randall Hyde homepage.mac.com/randyhyde/webster.cs.uc....
It you are "outside the operating system" that means there is no operating system, or it is a loose one (probably called an "executive") which allows programs to directly access i/o devices. The latter is especially troublesome: what happens if two programs both read from the same serial line at the same time? I suggest starting with writing device drivers for a good and reasonably gentle introduction.
Virtually all device drivers are written in C or C++ now, and studying how they interact with device interrupts and control registers is the first hurdle you'll have in understanding how to program that in assembly. See this. If you have a small dedicated device, like an embedded controller where an operating system isn't a foregone conclusion, you have a choice of looking at vendor examples, or reading documentation written by hardware engineers—a major challenge for several reasons, the least of which is a significantly different mindset than software engineers.
Either way, there is quite a learning curve just to understand the context of many concepts, let alone writing the first useful line of code.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.