Microcomputer Systems: the 8086/8088 Family
Transcript of 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