An Introduction to Microcomputers: Basic Concepts

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This is the second part (yes, second) of a series of books covering early microprocessor technology. Originally written in the 70s and not recently repubished, this series of books appears to be stuck-fast within the time and scope of its writing. Covering a wide range of period-specific and lasting topics and design theory, it gives a nice perspective into the technology that preceded and shaped what we use today. Many of the most used chips of the time are still produced in the modern era for legacy repair, compatibility, and cost reduction. So is it still worth a read? I think so. - Super Secret Uploadie Person, 2022 The whole series of "An Introduction to Microcomputers": Volume 0 — The Beginner's Book ISBN 0931988640 Volume 1 — Basic Concepts, second edition ISBN 0931988020 Volume 2 — Some Real Microprocessors ISBN 0931988152 Volume 3 — Some Real Support Devices ISBN 0931988187

Author(s): Adam Osborne
Series: An Introduction to Microcomputers
Edition: Second
Publisher: Osborne / McGraw-Hill
Year: 1976

Language: English
Commentary: Just a DRM-stripped version of what was uploaded to archive.org here: https://archive.org/details/introductiontomi00osbo
Pages: 445
City: Berkeley, California
Tags: 567890, 89876543, 76-374891, CPU, minicomputers, ALU, binary, hexadecimal, byte, nibble, addition, subtraction, multiplication, program, programming, logic design, IO, external memory, memory registers, RAM, ROM, control bus, address bus, data bus, DIP, pins, signals, logic gates, one's complement, two's complement, bit shifting, 8-bit, data words, signal diagrams, big endian, little endian

1. Microprocessors and Microcomputers 1-1
The Evolution of Computers 1-3
The Origin of Microprocessors and Microcomputers 1-7
About This Book 1-9
How This Book Has Been Printed 1-9
2. Some Fundamental Concepts 2-1
Number Systems 2-2
Decimal Numbers 2-2
Binary Numbers 2-2
Converting Numbers from One Base to Another 2-3
Other Number Systems 2-4
Binary Arithmetic 2-6
Binary Addition 2-6
Binary Subtraction 2-6
Binary Multiplication 2-8
Binary Division 2-8
Boolean Algebra and Computer Logic 2-9
"OR" Operation 2-9
"AND" Operation 2-10
"Exclusive-OR" Operation 2-10
"NOT" Operation 2-11
Combining Logical Operations 2-11
De Morgan's Theorem 2-12
3. The Makings of a Microprocessor and Its Contents 3-1
Memory Devices 3-1
Memory Types 3-3
Memory Words 3-6
The Byte 3-7
Memory Address 3-8
RAM and ROM Addresses 3-12
Interpreting the Contents of Memory Words 3-14
Stand Alone, Pure Binary Data 3-15
Interpreted Binary Data 3-16
Character Codes 3-28
Instruction Codes 3-31
4. The Central Processing Unit 4-1
CPU Registers 4-2
How CPU Registers are Used 4-5
The Arithmetic and Logic Unit 4-12
The Control Unit 4-12
Status Flags 4-13
Instruction Execution 4-16
Instruction Timing 4-17
Timing Diagrams 4-20
Instruction Cycles 4-25
How Much Should an Instruction Do? 4-35
Microprogramming and the Control Unit 4-41
Microprocessor Control Units 4-45
Chip Slice Control Units 4-54
Registers/Arithmetic and Logic Unit Chip Slice 4-60
The Chip Slice Control Unit 4-74
Combining the ALU with the Control Unit 4-81
5. Logic Beyond the CPU 5-1
Interfacing Program and Data Memory 5-1
Read-Only Memory (ROM) 5-2
Read/Write Memory (RAM) 5-15
Transferring Data Beyond the Microcomputer System 5-18
Programmed I/O 5-19
Interrupt I/O 5-35
A Microprocessor's Response to an Interrupt 5-40
Interrupt Priorities 5-57
Direct Memory Access 5-56
Cycle Stealing Direct Memory Access 5-70
DMA With Multiple External Devices 5-79
Data Paths During Direct Memory Access 5-80
Multiple Bus Microcomputer Configurations 5-88
Serial Input/Output 5-94
Identifying Serial Data Bits 5-94
Telephone Lines 5-101
Error Detection 5-101
Serial Input/Output Protocol 5-102
Synchronous Serial Data Transfer 5-102
Bisync Protocol 5-105
SDLC and HDLC Protocols 5-107
Asynchronous Serial Data Transfer 5-114
A Serial I/O Communications Device 5-116
Logic Distribution 5-116
The Microprocessor Serial I/O Device Interface 5-116
The Serial I/O Device 5-118
The Serial I/O Control Signals 5-123
Modem Control Signals 5-124
Controlling the Serial I/O Interface Device 5-126
Addressing the Serial I/O Interface Device 5-127
Programmable Counter/Timers 5-130
Real Time Clock Logic 5-134
Logic Distribution Among Microcomputer Devices 5-134
6. Programming Microcomputers 6-1
The Concept of a Programming Language 6-1
Source Programs 6-3
Object Programs 6-5
Creating Object Programs 6-6
Assembly Language 6-8
Assembly Language Syntax 6-8
Assembler Directives 6-13
Memory Addressing 6-14
Microprocessor Memory Addressing—Where it Began 6-15
Implied Memory Addressing 6-16
Direct Memory Addressing 6-17
Direct Versus Implied Addressing 6-18
Variations of Direct Memory Addressing 6-18
Paged Direct Addressing 6-21
Direct Memory Addressing in Microcomputers 6-27
Auto-Increment and Auto-Decrement 6-41
The Stack 6-42
Memory Stacks 6-42
The Cascade Stack 6-44
How a Stack is Used 6-44
Nested Subroutines and Use of the Stack 6-48
Double Stacks 6-49
Multiple Stacks 6-50
Indirect Addressing 6-51
Program Relative, Indirect Addressing 6-53
Indirect Addressing: Mini- vs. Micro-computers 6-54
Indexed Addressing 6-56
Base Relative Addressing 6-61
Memory Segmentation 6-63
7. An Instruction Set 7-1
CPU Architecture 7-2
Status Flags 7-5
Addressing Modes 7-5
A Description of Instructions 7-7
Assembly Language Syntax Used in This Chapter 7-7
Input/Output Instructions 7-8
Memory Reference Instructions 7-11
Secondary Memory Reference (Memory Reference 7-17
Operate) Instructions
Local Immediate Instructions, 7-23
Jump and Jump-to-Subroutine
Immediate Operate Instructions 7-27
Branch-on-Condition Instructions 7-29
Register-Register Move Instructions 7-34
Register-Register Operate Instructions 7-36
Register Operate Instructions 7-39
Stack Instructions 7-47
Parameter Passing Instructions 7-48
Interrupt Instruction 7-51
Status Instructions 7-54
Halt Instruction 7-55
An Instruction Set Summary 7-56
More Advanced Microprocessor Instr. Set Concepts 7-61
CPU Architecture 7-61
Input/Output Instructions 7-63
Memory Reference Instructions 7-64
Secondary Memory Reference Instructions 7-65
Load Immediate, Jump and Jump-to-Subroutine 7-65
Instructions
Immediate Operate Instructions 7-66
Branch-on-Condition Instructions 7-66
Register-Register Move Instructions 7-66
Register-Register Operate Instructions 7-66
Register Operate Instructions 7-66
Stack Instructions 7-66
Block Move and Translate Instructions 7-67
Appendix A
Standard Character Codes A-1
ASCII Character Codes A-2
ASCII Character Codes in Ascending Order A-3
EBCDIC Character Codes A-5
Appendix B
Binary Multiplication and Division Algorithms B-1
Simple 8-Bit Binary Multiplication B-2
Simple 8-Bit Binary Division B-5
Simple Signed Binary Multiplication & Division B-5
Multiplying and Dividing Larger Binary Numbers B-6
Appendix C
Microprocessor Assembly Language Draft Standard
IEEE Task P694/D 11 C-1
Index I-1