MASM is an assembler of Microsoft Macro. This is an assembler. It takes your code preprocesses it and converts it to binary. Links to an executable or OBJect file.
all Intel processors 32bit and em64t processors (80386 and higher) support 8086 compatibility mode called "real mode". This means that all PCs to this day are backward compatible with MS-DOS and all the games that were used to work on the IBM XT. They will work on modern machines, but very quickly, so they will be unplayable :-)
All computers to this day are loaded with the processor in real mode, and modern operating systems translate the processor into 32-bit / 64-bit "protected mode".
Basically, what happens in real mode, the CPU knows that it works like 8086. For example: all operations are on 16-bit registers, and the memory is addressed by a segment: pair offset. Memory addresses are physical memory addresses, and you have access to the first 1 MB of RAM. The physical address is calculated by the segment shifted to the left by 4 bits + offset. Thus, 8000h: 100h is the same address as 8010h: 0h, the physical address is 80100h in memory.
Some modern machines have EFI instead of BIOS, and from the very beginning boot in "protected mode". MAC machines are like that.
source share