It's very important and useful to understand what happens at the low level of programming. This become important when dealing with optimization problems. Such as problems that required the manipulation of big data.
First: was figuring out how to write a single digit to a space.
Second: Afterwards was to create a loop that increase the number and coordinate. looping: increase date number increase coordinate print to that coordinate repeat looping
Third: The rest was dealing with dates and leap years which just became more of a flow control.
You can run it using it emu8086.
http://www.emu8086.com/
You can also used TASM which can be found in the internet.