This textbook introduces the reader to assembly language programming and its role in computer programming and design. The author concentrates on covering the 8086 family of processors up to and including the Pentium. The focus is on providing students with a firm grasp of the main features of assembly programming, and how it can be used to improve a computer's performance. All of the main features are covered in depth: stacks, addressing modes, arithmetic, selection and iteration, and bit manipulation; and amongst the advanced topics covered are: string processing, macros, interrupts and input/output handling, and interfacing with higher-level languages such as C. A particular strength is the discussion of the improvements in performance that can be achieved using assembly programming where appropriate. The book is based on several years of a successful course offered by the author and includes numerous hands-on exercises for students to undertake.

Computer science and engineering curricula have been evolving at a fast pace to keep up with the developments in the area. There are separate books available on assembly language programming and computer organization. There is a definite need to support the courses that combine assembly language programming and computer organization. The book is suitable for a first course in computer organization. The style is similar to that of the author's assembly language book in that it strongly supports self-study by students. This organization facilitates compressed presentation of material. Emphasis is also placed on related concepts to practical designs/chips. Topics and features:
- material presentation suitable for self-study;
- concepts related to practical designs and implementations; - extensive examples and figures;
- details provided on several digital logic simulation packages;
- free MASM download instructions provided;
- end-of-chapter exercises.