If you are interested to learn low level assembly language on the PC, the "easiest" way is probably to install DOS Box, which is a nice piece of software that you can use to run really ancient software on modern computers. Mac version is called Boxer. The thing with DOS Box is that it emulates the environment of old, old "IBM compatible" computers as it were back then, with BIOS, VESA graphics, sound blaster, and all. Another nice thing with good old dos, is that it ran in something called 'real mode', which basically is non-protected, segmented memory model. Translated to more understandable phrases, that means you can take over the whole computer, set any graphics mode you want, play audio at the "lowest" level, or take over all interrupts without the operating system protesting at all. Switching to a VESA graphics mode is fairly easy. It is just calling one interrupt that is set up by the BIOS. Then you can write directly into video memory to create all the graphics you want, all without the hassle to write a basic operating system yourself, with complex pre-loaders and loaders and kernel and hard drive interfacing and all those really hard, complex things. I think what I used back in the day, was masm.
If someone wanted to how software was run on a processor at a low level, I'd advice looking to a RISC processor assembly 1st, like MIPS. MIPS assembly is easy to understand (compared to intel), and the commands fit nicely into 32-bit machine code. SPIM is a nice MIPS simulator that you can use to practice assembly.