Microcomputer Systems: the 8086/8088 Family

1
- Book reviews Microcomputer systems: the 8086/8088 family Yu-Cheng Lin and Glenn A. Gibson Prentice-Hall International, 1984, 550pp., £31.30 ISBN: 0-13-580944-4, 'Microcomputer systems: the 8086/8088 family' describes in depth the hardware and software of microcomputer systems, illustrating the general points with 8086/8088 microprocessor systems. It is a very informative and co- herent presentation and suitable both for taught courses and for someone teaching themselves. Since the IBM PC uses the 8088 the book should also interest PC users. After an introductory description of the components of a microcomputer system and the organisation of data and memory there follows a detailed description of the 8086 architecture and assembly language. The text is packed with example programs to help an experienced programmer see the important features of the 8086 and to encourage and direct a beginner. The choice of the 8086 to illustrate the book is a good one because of its advanced features and its ability to support a sophisticated microcomputer system, but it is probably a difficult introduction to assembly language programming. The authors suggest that a knowledge of Fortran or Basic is adequate, but knowledge of a simpler assembly language would also help. The ASM-86 Assembler is used to illustrate the book. The next four chapters cover systems programming. Before considering the details the authors emphasise the importance of modular programming and give some important software design guidelines with examples. They show how the software structures which allow modular programming are implemented in the 8086 language, how they are managed at the translation and linking stages by the system software, and finally how they are physically located in and executed by the computer. Byte and string manipulation and code translation are discussed next, again with excellent examples, and then we move on to input/output programming. Clear diagrams, flowcharts and program examples illustrate programmed and interrupt I/O and there are discussions of priority management and DMA. An introduction to multiprogramming in the last of the software chapters explains the uses of and problems with running two or more independent processes or jobs at the same time. Process scheduling, semaphore operations, sharing of common procedures and memory management are nicely illustrated on Intel's iRMX-8% operating system. The remaining five chapters talk about the hardware of microcomputer systems. The book's preface does not say that the reader needs to know any electronics, but the authors do use digital electronic block diagrams, logic circuits, latches, tranceivers, synchronising circuits, transistor circuits and monostables with little introduction or explanation. Chapter 8 covers the internal bus configurations for the 8086/8088 and the bus control logic for the 8086/ 8088. Some of this is pretty detailed. Of a more general nature, although still illustrated by 8086/8088 examples, are discussions of system bus timing, interrupt priority management and bus standards. The chapter on I/O interfaces is excellent, clear and full of diagrams and examples. The format of a general intro- duction followed by specific applications with 8086 systems has worked very well. The text covers serial communication, parallel communication,keyboards and displays, DMS con- trollers and diskette controllers. After another well illustrated short chapter about semiconductor memories come two chapters dealing with supporting processors for 8086 systems, from slave coprocessor configurations through to networks. We are introduced to the specific features and instruction sets of several supporting processors for the 8086 including the 8087 maths processor and the 8089 I/O processor. 'Microcomputer systems: the 8086 family' shows just how many words good diagrams and examples can be worth. Because it manages to pack in both general discussions and detailed examples of every aspect of sophisticated microcomputer systems it has a coherence that is often hard to achieve in this subject. It has an excellent biblio- graphy and literally hundreds of end of chapter questions. Were it not for the price, it would make a useful under- graduate text perhaps a paperback edition is planned? It should also be useful for technical people working on microcomputer systems for the first time, a position that graduates from physics and mathematics courses may find themselves in. The only reservations I have are that the authors assume their readers to have more background knowledge than they state in the preface and that the book could do with a glossary to aid cross-referencing. These are quibbles, though, about a book on which the authors have obviously spent much time and care and which does them great credit. N.F. THORNHILL Ada Concurrent programming Narain Gehani Prentice-Hall International, 1984, 261pp., £25.70 ISBN: 0-13-004011-8 Ada was designed with real-time programming in mind and therefore provides sophisticated concurrent programming facilities. This book describes these facilities with the aid of a variety of examples. In addition the non-concurrent features of Ada are carefully described in an appendix. Chapter 1 contains a survey of concurrent programming and argues the case for having concurrency as a language feature as well as explaining why languages such as PI/I and Algol 68 were deficient in this area. The ideas of mutual exclusion, synchronisation and communication between processes are all explained, together with mechanisms 26 Software & Microsystems, Vol. 4, No. 1, February 1985

Transcript of Microcomputer Systems: the 8086/8088 Family

Page 1: Microcomputer Systems: the 8086/8088 Family

- Book reviewsMicrocomputer systems: the 8086/8088 familyYu-Cheng Lin and Glenn A. GibsonPrentice-Hall International, 1984, 550pp., £31.30ISBN: 0-13-580944-4,

'Microcomputer systems: the 8086/8088 family' describesin depth the hardware and software of microcomputersystems, illustrating the general points with 8086/8088microprocessor systems. It is a very informative and co-herent presentation and suitable both for taught coursesand for someone teaching themselves. Since the IBM PCuses the 8088 the book should also interest PC users.

After an introductory description of the components ofa microcomputer system and the organisation of data andmemory there follows a detailed description of the 8086architecture and assembly language. The text is packed withexample programs to help an experienced programmer seethe important features of the 8086 and to encourage anddirect a beginner. The choice of the 8086 to illustrate thebook is a good one because of its advanced features and itsability to support a sophisticated microcomputer system,but it is probably a difficult introduction to assemblylanguage programming. The authors suggest that a knowledgeof Fortran or Basic is adequate, but knowledge of a simplerassembly language would also help. The ASM-86 Assembleris used to illustrate the book.

The next four chapters cover systems programming.Before considering the details the authors emphasise theimportance of modular programming and give someimportant software design guidelines with examples. Theyshow how the software structures which allow modularprogramming are implemented in the 8086 language, howthey are managed at the translation and linking stages bythe system software, and finally how they are physicallylocated in and executed by the computer.

Byte and string manipulation and code translation arediscussed next, again with excellent examples, and thenwe move on to input/output programming. Clear diagrams,flowcharts and program examples illustrate programmedand interrupt I/O and there are discussions of prioritymanagement and DMA.

An introduction to multiprogramming in the last of thesoftware chapters explains the uses of and problems withrunning two or more independent processes or jobs at thesame time. Process scheduling, semaphore operations,sharing of common procedures and memory managementare nicely illustrated on Intel's iRMX-8% operating system.

The remaining five chapters talk about the hardware ofmicrocomputer systems. The book's preface does not saythat the reader needs to know any electronics, but theauthors do use digital electronic block diagrams, logiccircuits, latches, tranceivers, synchronising circuits, transistorcircuits and monostables with little introduction orexplanation. Chapter 8 covers the internal bus configurationsfor the 8086/8088 and the bus control logic for the 8086/8088. Some of this is pretty detailed. Of a more generalnature, although still illustrated by 8086/8088 examples,are discussions of system bus timing, interrupt prioritymanagement and bus standards.

The chapter on I/O interfaces is excellent, clear and fullof diagrams and examples. The format of a general intro-duction followed by specific applications with 8086 systemshas worked very well. The text covers serial communication,parallel communication,keyboards and displays, DMS con-trollers and diskette controllers.

After another well illustrated short chapter aboutsemiconductor memories come two chapters dealing withsupporting processors for 8086 systems, from slavecoprocessor configurations through to networks. We areintroduced to the specific features and instruction sets ofseveral supporting processors for the 8086 including the8087 maths processor and the 8089 I/O processor.

'Microcomputer systems: the 8086 family' shows justhow many words good diagrams and examples can be worth.Because it manages to pack in both general discussions anddetailed examples of every aspect of sophisticatedmicrocomputer systems it has a coherence that is oftenhard to achieve in this subject. It has an excellent biblio-graphy and literally hundreds of end of chapter questions.Were it not for the price, it would make a useful under-graduate text — perhaps a paperback edition is planned? Itshould also be useful for technical people working onmicrocomputer systems for the first time, a position thatgraduates from physics and mathematics courses may findthemselves in.

The only reservations I have are that the authors assumetheir readers to have more background knowledge thanthey state in the preface and that the book could do with aglossary to aid cross-referencing. These are quibbles, though,about a book on which the authors have obviously spentmuch time and care and which does them great credit.

N.F. THORNHILL

Ada — Concurrent programmingNarain GehaniPrentice-Hall International, 1984, 261pp., £25.70ISBN: 0-13-004011-8

Ada was designed with real-time programming in mind andtherefore provides sophisticated concurrent programmingfacilities. This book describes these facilities with the aid of

a variety of examples. In addition the non-concurrentfeatures of Ada are carefully described in an appendix.

Chapter 1 contains a survey of concurrent programmingand argues the case for having concurrency as a languagefeature as well as explaining why languages such as PI/Iand Algol 68 were deficient in this area. The ideas of mutualexclusion, synchronisation and communication betweenprocesses are all explained, together with mechanisms

26 Software & Microsystems, Vol. 4, No. 1, February 1985