In modern OS's there is a standard sequence of instructions to save actual stack pointer and allocate space for local variables (on top of stack) called ' preamble'. In actual programs ' printf' is a library function, not a a DOS call, so the compiler generates code to call it. depending on subsystem choosed in the linker). MSVCrt.lib/MSVCrt.dll) that then call your entry point (main, wmain, WinMain, etc. In actual code the program will start normally from runtime library (i.e. To print out characters you use DOS interrupt calls (INT 21H).Īctual Os's are 32/64 bits they use a different memory layout, and are normally located at 0x40000, but can be reorganized by linker. Specifically the code you used starting with an ORiGin metainstruction denotes the writing of a binary '.com' executable (by default located at adrress 0x100).