RSS

Category Archives: Topic 6

Linkers, Loaders and Libraries

Linkers

In computer science, a linker or link editor is a program that takes one or more objects generated by a compiler and combines them into a single executable program. In IBM mainframe environments such as OS/360 this program is known as a linkage editor.

On Unix variants the term loader is often used as a synonym for linker. Other terminology was in use, too. For example, on SINTRAN III the process performed by a linker (assembling object files into a program) was called loading (as in loading executable code onto a file). Because this usage blurs the distinction between the compile-time process and the run-time process, this article will use linking for the former and loading for the latter. However, in some operating systems the same program handles both the jobs of linking and loading a program. Read the rest of this entry »

 
Leave a comment

Posted by on March 5, 2011 in Topic 6

 

System Software Advanced: Assembly language and Assemblers

Assembly language

Assembly language, commonly called assembly or asm, is a human-readable notation for the machine language that a specific computer architecture uses. Machine language, a pattern of bits encoding machine operations, is made readable by replacing the raw values with symbols called mnemonics.

For example, a computer with the appropriate processor will understand this x86/IA-32 machine language:

10110000 01100001

For programmers, however, it is easier to remember the equivalent assembly language representation:

mov al, 061h

which means to move the hexadecimal value 61 (97 decimal) into the processor register with the name “al”. The mnemonic “mov” is short for “move”, and a comma-separated list of arguments or parameters follows it; this is a typical assembly language statement. Read the rest of this entry »

 
Leave a comment

Posted by on March 5, 2011 in Topic 6