Section 9.1: The history of assembler programs (Frame 7)                     [prev][home][     ]

Have no illusions about assembler! Though the elements of this programming look easy, almost too simplistic, programming in assembler is very hard and often not much fun. Everything is done at such a low level that the amount of detail can be overwhelming. Programming in C or C++ is hard enough, but to expand the amount that has to be remembered by a factor of ten makes assembler almost impossible, especially when the programs get large. This is of course why high level languages like C and FORTRAN were invented.

The trend today is away from assembler. Java, a programming language that started out as OAK around 1989 and meant only for controlling toasters and cellular phones, quickly found a niche on the World Wide Web. Touting the write once, run anywhere philosophy, Java's developers claim that it may actually replace operating systems such as Windows 95.

But there is still a need today for assembler programmers because certain time-critical parts of programs, like operating systems and embedded control programs, need to be written as carefully as possible and made to run as fast as possible, and many compilers simply cannot do a good enough job. The Unix (or Linux) kernel has roughly one thousand lines of assembler to do a few tasks that cannot be expressed in C. Those lucky few who can and do enjoy writing assembler code find themselves very employable.

In this course, we will look at a few assembler programs simply to get the flavor of this style of interacting with the computer and to better understand how complex programs that do the fancy tasks we want done today can be written for a glob of wires and registers.