21 lines
1.6 KiB
HTML
21 lines
1.6 KiB
HTML
<p>
|
|
Assembly-Language is the most basic form of programming languages. Normally <b>every line of assembly stands for one CPU-instruction</b>.
|
|
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.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
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 <a href="http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-manual-325462.html">
|
|
<b>Intel 64 and IA-32 Architectures Software Developer's Manual</b></a> and some tutorials on assembly.</br>
|
|
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.
|
|
</p>
|
|
<p>
|
|
Your task is to change the output of this program to print out Hello <your name>.
|
|
</p>
|