Required Text
A Programmers View of Computer Architecture
by Goodman and Miller
Oxford University Press
- Revised Chapter 2 postscript, pdf
- Revised Chapter 9 postscript, pdf
Text Corrections
The following is a list of text errors with appropriate corrections.- page 97, table
The 8th row in the first column (Bit Pattern) should be 0000 0111, not 0000 0000.
The 16th row in the first column (Bit Pattern) should be 0000 1111, not 0001 1111. - page 116
The sentence with bit ranges should be
. . .character might be stored using bits 0-7,8-15, 16-23, and 24-31.
not
". . .character might be stored using bits 0-8,9-15, 16-23, and 24-31." - page 117
The code fragment just before the start of section 5.2 should benot mask, mask1 # Create inverse mask and cell, mask, cell # Clear 'C' or cell, cell, little_c # Merge little_c into cell
- page 122
The subscripts for x and y in the last equation on the page are all written as 1s (ones). The subscripts for the first x and y to the right of the equal sign ('=') should be 0s (zeros). - page 132
The code in figure 5.8 for multiplication of two's complement integers only works for positive values of X (the multiplier). - pages 142-143
The equations given at the bottom of page 142 and top of page 143 contain errors in a superscript (exponent). The equation at the bottom of page 142 should read
= 0001 0000 0000 0000 0000 0000 (base 2) = 2 ** 20
At the top of page 143, the rightmost part of the equation should be
1 + (2**20)/(2**23) - page 144
The first sentence on the page should read
Here is the addition of 255.0625 to 134.0625:
not
"Here is the addition of 255.0625 to 2.25:" The instruction - page 146
The sentence
"The value 135.861 in FPS format is"
appears twice on the page. The second one is incorrect. It should be
"The value -135.861 in FPS format is" - page 160
The sentence in the middle of the page should read
Once underflow occurs, any number of multiplications will still produce the result of zero.
not
"Once overflow occurs, any number of multiplications will still produce the result of zero." - page 173
The instruction in the middle of the pageadd i, 5
add i, i, 5
- pages 179 and 181
There is a typo in the code fragment. The move instruction should bemove M[address], 0 # clear element
move m[address], 0 # clear element
- page 187, figure 7.9
There are 3 typos in the code fragment. - page 210
The addressing mode labeled Indirect should be labeled Register Indirect. - page 219
The paragraph at the top of the page is wrong. In SAL, the instruction is calledcvt
. In MAL, the equivalents arecvt.s.w
andcvt.w.s
. - page 231, figure 9.3
The add instruction at label if should beadd $20, $19, -1
add $19, $20, -1
- page 264, figure 10.1
The figure has an error in the hexadecimal address. The address that reads 0x7fft f000 should be 0x7fff f000. - page 271, figure 10.2
The addi instruction at labelend
should beaddi $2, $0, 10
addi $8, $0, 10
- page 316, figure 12.2
Bit 3 of the Status register is called KUp, not PUp. - page 390, MAL table
The second operand of themove
instruction should read S1, not S2. The source of amove
cannot be an immediate. If you want to move an immediate, use theli
instruction.