When you do all the preprocessing you get this line:
*((char*)0x400) = 0x80;
Let's dissect that. (char *)0x400
means take the number 0x400
and cast it to a "pointer-to-a-char". Basically it says here: let's create a pointer that points to address 0x400
.
Then, we take that *
in front of which means "dereference", making you can actually write something in the memory spot that the pointer points to, in this case address 0x400
. And then you write 0x80
in it.