Linked e-resources
Details
Table of Contents
Intro
Preface
Contents
Chapter 1 Basic components and combinatorial circuits
1.1 The three basic logic gates
1.2 Other logic gates
1.3 Physical realisation of gates
1.3.1 MOSFET transistors
1.3.2 CMOS gates
1.3.3 Switching delays
1.3.4 Moore's law
1.4 Algebraic manipulation and duality
1.5 Two-layer circuits
1.6 Karnaugh maps
1.7 Functional completeness of the nand gate
1.8 Multiplexers
1.9 Summary
Chapter 2 Numbers, basic circuits, and the ALU
2.1 Representation of unsigned numbers
2.2 Two's complement representation of integers
2.3 Adding unsigned numbers
2.4 Adding two's complement numbers
2.5 Subtraction
2.6 Comparing unsigned and two's complement numbers
2.7 Arithmetic circuits: addition and subtraction
2.7.1 Addition: the half- and full adder
2.7.2 Subtraction
2.7.3 The carry look-ahead adder
2.8 The arithmetic logic unit (ALU)
2.9 Multiplication
2.10 Alternative representations for numbers
2.10.1 Sign and magnitude
2.10.2 One's complement
2.10.3 Floating-point numbers
2.10.4 Parity bits and Hamming codes.
2.10.5 Gray code
2.11 Representation of character sets
2.12 Summary
Chapter 3 Sequential circuits
3.1 A one-time latch
3.2 The set-reset flip-flop/set-reset latch
3.3 The D-latch/D-flip-flop
3.4 Registers
3.5 Finite state machines
3.5.1 An example state machine with four states
3.5.2 Encoding the state machine
3.5.3 Realising the state machine using logic gates and flip-flops
3.6 Random access memory
3.7 Finite state machines to control registers
3.8 Hardware description languages
3.9 Summary
Chapter 4 An elementary processor
4.1 The general structure of the processor
4.2 The instruction set
4.3 The instruction fetch and the register transfer language
4.4 The format of machine code instructions
4.5 Implementing instructions on the processor
4.6 Optimisation of the execution of instructions
4.7 More advanced instructions
4.8 Input and output
4.9 Interrupts
4.10 Summary
Chapter 5 Assembly programming
5.1 Labels and comments, EQU and CONS
5.2 Arithmetic calculations
5.3 A timed loop
5.4 Basic data structures
5.4.1 Arrays
5.4.2 Stacks
5.4.3 Linked lists
5.5 Memory layout
5.5.1 Allocation dependence
5.5.2 Relocatable code and data
5.6 Subroutines
5.6.1 Saving the return address
5.6.2 Returning values
5.6.3 Passing arguments on the stack
5.6.4 Local variables
5.7 Interrupt routines
5.7.1 Interrupt handlers
5.7.2 Installing handlers
5.7.3 An example: displaying keyboard strokes
5.8 Multitasking and multithreading
5.8.1 Timer interrupts and context switching
5.8.2 Data structures for multitasking
5.9 Summary
Chapter 6 Compiling higher-level languages
6.1 A simple higher-level programming language
6.2 Context free grammars and parsing
6.3 Type checking
6.4 Compilation scheme
Preface
Contents
Chapter 1 Basic components and combinatorial circuits
1.1 The three basic logic gates
1.2 Other logic gates
1.3 Physical realisation of gates
1.3.1 MOSFET transistors
1.3.2 CMOS gates
1.3.3 Switching delays
1.3.4 Moore's law
1.4 Algebraic manipulation and duality
1.5 Two-layer circuits
1.6 Karnaugh maps
1.7 Functional completeness of the nand gate
1.8 Multiplexers
1.9 Summary
Chapter 2 Numbers, basic circuits, and the ALU
2.1 Representation of unsigned numbers
2.2 Two's complement representation of integers
2.3 Adding unsigned numbers
2.4 Adding two's complement numbers
2.5 Subtraction
2.6 Comparing unsigned and two's complement numbers
2.7 Arithmetic circuits: addition and subtraction
2.7.1 Addition: the half- and full adder
2.7.2 Subtraction
2.7.3 The carry look-ahead adder
2.8 The arithmetic logic unit (ALU)
2.9 Multiplication
2.10 Alternative representations for numbers
2.10.1 Sign and magnitude
2.10.2 One's complement
2.10.3 Floating-point numbers
2.10.4 Parity bits and Hamming codes.
2.10.5 Gray code
2.11 Representation of character sets
2.12 Summary
Chapter 3 Sequential circuits
3.1 A one-time latch
3.2 The set-reset flip-flop/set-reset latch
3.3 The D-latch/D-flip-flop
3.4 Registers
3.5 Finite state machines
3.5.1 An example state machine with four states
3.5.2 Encoding the state machine
3.5.3 Realising the state machine using logic gates and flip-flops
3.6 Random access memory
3.7 Finite state machines to control registers
3.8 Hardware description languages
3.9 Summary
Chapter 4 An elementary processor
4.1 The general structure of the processor
4.2 The instruction set
4.3 The instruction fetch and the register transfer language
4.4 The format of machine code instructions
4.5 Implementing instructions on the processor
4.6 Optimisation of the execution of instructions
4.7 More advanced instructions
4.8 Input and output
4.9 Interrupts
4.10 Summary
Chapter 5 Assembly programming
5.1 Labels and comments, EQU and CONS
5.2 Arithmetic calculations
5.3 A timed loop
5.4 Basic data structures
5.4.1 Arrays
5.4.2 Stacks
5.4.3 Linked lists
5.5 Memory layout
5.5.1 Allocation dependence
5.5.2 Relocatable code and data
5.6 Subroutines
5.6.1 Saving the return address
5.6.2 Returning values
5.6.3 Passing arguments on the stack
5.6.4 Local variables
5.7 Interrupt routines
5.7.1 Interrupt handlers
5.7.2 Installing handlers
5.7.3 An example: displaying keyboard strokes
5.8 Multitasking and multithreading
5.8.1 Timer interrupts and context switching
5.8.2 Data structures for multitasking
5.9 Summary
Chapter 6 Compiling higher-level languages
6.1 A simple higher-level programming language
6.2 Context free grammars and parsing
6.3 Type checking
6.4 Compilation scheme