登入選單
返回Google圖書搜尋
Introduction to Computer Architecture and Systems Programming
註釋

Computers are programmed in machine language. That is, a language that the machine understands. Assembly language is a symbolic machine language, making it more easily understood by a human.

It may be that you will never write programs in machine or assembly language, but understanding these languages is essential in understanding the architecture of a computer system. The programs you will likely write will be translated into machine language so it can be executed on a machine. Therefore, understanding machine language is also important to understanding computer programming.

I have taught computer architecture and assembly for many years. Initially, I taught the class using Stanley Warford’s outstanding text Computer Systems (a book I recommend for any computer professional’s bookshelf) but found myself building custom presentations of the course material based on feedback from students and my own teaching style.

Eventually, I had a completely customized presentation of the entire course and students began asking for a text that more closely adhered to the presentations I was making in class. While on vacation in Santa Fe, New Mexico, I woke up early one morning and decided to write down some thoughts on binary logic. During the vacation, I completed the chapter save some editing. With one down, I thought I would create at least a collection of three: binary numbers, binary logic, and binary representations. Then, I decided I would write two chapters on programming (C and assembly) that would parallel each other and could be reinforced with weekly programming projects. By then, I had covered most of the course and it was a matter of filling in the gaps.

For students who have no experience in computer programming, I think you will find this text provides a useful understanding of computers and programming that can be a foundation for your future classes. If you are not going to pursue computer science as a career, you may find yourself using some of what is taught here in any career that uses computers.

For students who have some experience with computer programming, some of the programming topics discussed in this text may be a bit redundant; however, your previous programming classes likely focused on application development. The use of the C programming language and assembly language in this text is geared more toward systems programming. Unlike application programming, systems programming is more tied to the underlying hardware architecture than application programming. Because of this, systems programming and assembly language help reinforce an understanding of computer architecture.