Assembly-Language is the most basic form of programming languages. Normally every line of assembly stands for one CPU-instruction. Luckily most people don't program in assembly anymore, because it is hard to understand. Only a few people program part of their programs in it, if they need that extra bit of control, to get that last bit of performance out of that code.

Nevertheless it is a very useful tool, to be able to understand assembly. Sometimes you just don't understand, why your code is slow or buggy and you want to know, what the compiler did. Then you can put your code in a disassembler to basically turn machine code into assembly and see exactly what your code is doing.

We will only give you a brief introduction to assembly. But if you are interested or serious about low-level programming you should definitely take a look at the Intel 64 and IA-32 Architectures Software Developer's Manual and some tutorials on assembly. The following code is the disassembly of the Hello World Program. It may look daunting at first, but it is actually not that hard to understand. Lines with periods are commands to the assembler, words with colon at the end are labels and the rest are assembly instructions, which are usually a one to one mapping to CPU instructions. Please take your time to understand the code.

Your task is to change the output of this program to print out Hello <your name>.