Chapter 24. Loops, Jumps, and Calls
The Enhanced CPU with Jump Instructions (pages 388 – 389)
This circuit is identical to the one on the Chapter 23 page except that it also implements the Jump instructions. In the bottom right of the diagram, the Arithmetic Logic Unit outputs CY Flag, Z Flag, and S Flag signals, which are input to the Instruction Decoder.
The memory block at the left includes four radio buttons that allow loading four different programs into memory. Each of these programs adds up a series of numbers. These programs are shown on the following pages of the book:
- Page 380: Add numbers without looping
- Pages 383–384: Add numbers with a loop
- Pages 384–385: A shorter loop program
- Page 386: Add numbers with a sentinel
When you click a radio button to load memory with another program, you'll also want to click the Reset button to reset the Program Counter to 0000h.
In all cases, the numbers to be added begin at address 0020h rather than address 1000h as shown in the book. In all cases there are 6 numbers, which are the hexadecimal equivalents of 10, 20, 30, 40, 50, and 60. The first program has been modified to add 6 numbers rather than 5.
In all cases, the program sums these numbers to 210, or D2h. This total is stored immediately after the HLT (76h) instruction.
8080 Emulator (page 402)
The 8080 Emulator mentioned on page 402 of the book is part of an 8080 Assembler and Emulator available on the first of the Chapter 27 pages. The two multiplication programs on pages 390 through 394 of the book are included on that page.