Errata for the first printing of the fifth edition of Computer Systems.

Inside front cover

In the entries for ADDSP and SUBSP, delete “NZVC” in the last column.

Page 27

In Example 1.2, change “400” to “500” to read “… of the 500-MB thumbnail database …”.

Page 27

In Example 1.3, change “Assume that each word is followed by one space character, on average.” to “Assume that each word is six characters long and is followed by one space character, on average.” Change “36” to “245” to read “… the typist enters 245 characters per minute.” Change “36” to “245” to read “(8(b/char) x 245 char)/…”. Change “4.8 b/s” to “32.7 b/s”.

Page 38

In Example 1.7, third math line, change “bit pixels” to “bits per pixel” to read “(number of pixels) x (bits per pixel)”.

Page 96

In Figure 2.33(d), second cell from the top on the run-time stack labeled retAddr, change “ra1” to “ra2“.

Page 136

In the paragraph above Section 3.3, change “16” to “32” to read “… that stores integers in 32-bit cells, …”.

Page 158

In the penultimate paragraph, change “1.011” to “1.101” to read “… you would store the most significant bits, 1.101, in the …”.

Page 160

In the penultimate paragraph, change “0.132815” to “0.1328125” to read “The smallest positive value that can be stored is 0.1328125”.

Page 168

In the first paragraph, change the exponent of 2 from “1023” to “1024” to read “The largest positive value that can be stored is 2^1024, or …”.

Page 237

In Figure 5.2 in the entries for ADDSP and SUBSP, delete “NZVC” in the last column.

Page 253

In Figure 5.13, change the code on lines 0015 and 0018 to read as follows.

0015  D0000A    LDBA    '\n',i      
0018  F1FC16    STBA    0xFC16,d    

Page 277

In the first paragraph, change “exam1” to “exam2” to read “… the symbol exam2 has the value 5 …”.

Page 311

In Figure 6.18 under Hidh-Order Language, delete the line of code

printf("****\n");

Page 319

In the fourth line from the bottom, change “printTri” to “printBar” to read “… shows the stack after printBar is called …”

Page 331

In the second paragraph, change “.EQUATE” to “.BLOCK” to read “… a and b are allocated at translation time with the .BLOCK dot command.”

Page 372

In the caption of Figure 6.48, change “2.42” to “2.41” to read “The C program is from Figure 2.41.”

Page 374

In the caption of Figure 6.48, change “2.42” to “2.41” to read “The C program is from Figure 2.41.”

Page 377

Change the second bullet to read “To allocate storage for the node, it generates a call to malloc() with tot in the accumulator, where tot is the total number of bytes occupied by the structure.”

In the third bullet, change “stack-relative” to “immediate”, change “p” to “the field”, and insert “from p” to read “… it generates LDWX with immediate addressing to move the value of the field into the index register, followed by LDWA or LDBA from p, depending on the type in the cell …”

Page 378

In the last paragraph, change “malaloc()” to “malloc()” to read “The malloc() function allocates memory from the heap.”

Page 389

In Problem 39, the C statement “printf("\n");” should be the first line of the inserted code fragment, not the last line, as follows:

printf("\n");
first2 = 0; p2 = 0;
for (p = first; p != 0; p = p->next) {
   p2 = first2;
   first2 = (struct node *) malloc(sizeof (struct node));
   first2->data = p->data;
   first2->next = p2;
}
for (p2 = first2; p2 != 0; p2 = p2->next) {
   printf("%d ", p2->data);
}    

Page 447

In Figure 7.45, delete five lines of duplicated code starting with

public class Tokenizer {

and ending with

   }

Page 463

In the third paragraph from the bottom, change “instruction” to “operand” to read “The class for a nonunary mnemonic must have an abstract argument for its instruction specifier …”

Page 589

In Figure 10.13, change ” a + b c’ ” to “a + b’ c “.

Page 623

In Figure 10.60(b), change “+” to “plus”.

Page 642

Delete “AB” in the figure label to read “FIGURE 11.7”.

Page 662

In Figure 11.33, add the item “11/0” just below “10/1” on the transition from 01 to 11. See Fourth edition, Figure 11.32, page 570.

Page 668

In the first line, remove the slash “/” in the “0” to read “… 4 happens to be 0 at the time”.

Page 670

In the seventh line from the bottom, remove the slash “/” in the “0” to read “… to a low voltage, representing 0.”

Page 674

In the fifth line, remove the comma “,” to read “… EPROM chips are packaged …”.

Page 694

In the fifth and sixth lines from the bottom, switch the “S” and “C” to read “If the CSMux control line is 0, the multiplexer sends the C bit to the Cin of the ALU. If the CSMux control line is 1, the multiplexer sends the S bit to the Cin of the ALU.”.

Page 705

In the memory read protocol bullet list, delete “or before” to read “You must clock the data into the MDR from the system bus on the third MemRead cycle.”

Page 722

In Figure 12.21 Cycle 1, change CCk to LoadCk to read

1. A=11, AMux=1, ALU=0, CMux=1, C=8; LoadCK

Page 726

In the fifth line, change “if” to “else” to read “… two other branch targets else and endif.”.

Page 728

In the seventh line, change “32-bit” to “64-bit” to read “… could have a 64-bit wide data bus …”.

Page 734

In the second line from the bottom, change “Figure 12.28” to “Figure 12.29”.

Page 736

In the third line, change “Line” to “Tag” to read “… with the matching Tag field …”.

Page 744

In the last paragraph, in two places change “five” to “six” to read “… MIPS has the six addressing modes …” and “Each of the six addressing modes …”.

Page 777

In Exercise 10 in three places (lines 4, 6, and 9 of the exercise), change “Figure 12.29” to “Figure 12.30”.

Page 777

In the first line of Exercise 11, change “MByte” to “MiB” to read “… can address 1 MiB of main memory.”.

Page 788

In Figure A.8 in the entries for ADDSP and SUBSP, delete “NZVC” in the last column.

Page 796

Chapter 2, Exercise 2, change “(a, part 1)” to “(a, part 2)” and change “(a, part 2)” to “(a, part 1)”. In (a, part 4), change “five” to “four” to read “Maximum of four stack frames.”

Page 798

Exercise 17(c), change “1011” to “1010” to read “(e) 100 0001, NZVC = 1010”.

Page 798

Exercise 32(c), change “-256” to “-128” to read “(c) 40 (hex) = 100 0000 (bin) = -128 (dec)”.

Page 799

Exercise 46(b), insert “0” to read “(b) 0.0000101”.

Page 807

Exercise 21(a), insert prime character on second “b” to read “ab + a’b’ “

Exercise 22, change designation of part “(b)” to read “(d)”.

Page 811

Exercise 13(a) solution third line, insert a bar over X2 to read “Y = A^bar X2^bar + A X1 X2”

Page 812

Exercise 12(a) solution third line, change “2” to “4” to read “# a[4] gets g + b[5]