Bug Reports Assembly Language for x86 Processors 6th Edition Kip R. Irvine

Do you have an error to report? If so, please click here to send me an email with a description of the error.

Current list of errors

(Errors dated prior to 5/23/2011 occur only in the first printing of this edition.)
Page Description Date Posted
24 In Figure 1-3, the X operand's high bit should equal 1. (Found by mbacklas@...) 11/28/2010
27 Change the second to last line to: "int Y = 6;" 1/22/2011
81 Two lines before 3.4.5, the sentence should read: "The DUP operator provides a convenient way to define an array containing multiple words." 9/29/2010
109 The second to last sentence on the page should read: "The carry out of the high bit is exclusive ORed with the carry into the high bit of the result" 12/13/2013
110 In the first sentence, change "a resulting MSB" to "carryIn(bit7)" 12/13/2013
131 In the sample code for Exercise 8, change "SIZEOF target" to "SIZEOF target-1". (Found by Thomas Dawkins) 7/14/2012
135 In Table 5-1, change "Str_length" to "StrLength". 12/11/2011
138 15 lines from the bottom of the page, change "INVALID_FILE_HANDLE" to "INVALID_HANDLE_VALUE". 11/28/2010
164 In the box near the top, change "mov ah,4C00h" to "mov ax,4C00h". 7/14/2012
181 In the last row of Table 6-1, delete the phrase "(covered in Section 6.3.5)". 11/20/2011
183 In the fourth code example on the page, change the declaration of the array variable to: "array BYTE "This Sentence is in Mixed Case",0 (Found by David Carachi and Ken Gregg) 11/20/2011
184 In the code after the 3rd paragraph, change "and al,00000100b" to "or al,00000100b". (Found by David Carachi) 11/20/2011
214 In the second paragraph, change "Figure 6-5" to "Figure 6-6".(Found by Travis Myers) 7/30/2012
217 Table 6-7: (1)In the description of .ENDIF, change "or .ENDIF directive" to "or .ELSEIF directive". (2)In the description of .REPEAT, change "condition" to "a .UNTIL condition". (3)In the description of .UNTILCXZ, change ".UNTIL" to ".UNTILCXZ". (Found by SangKyun Yun) 3/6/2011
218 In Table 6-8, use <= and >=, rather than the single-character operators showing in the left column of the table. 5/23/2011
226 Programming Exercise 3 has a VideoNote, but Exercise 4 does not. (Found by Harold Moore) 4/28/2012
245 In the diagram for the example multiplying 12345h by 1000h to produce a 64-bit product, change the register labels from AL and BX to EAX and EBX. 5/23/2011
268 Programming Exercise 5: On the 7th line, change "SHR" to "SHL"; on the next line, change "next highest bit" to "last one bit". 5/23/2011
276 in the STDCALL paragraph, change "EBP" to "ESP" in the second sentence. 4/28/2012
342 In the pseudocode for Str_trim, delete the last two lines containing "else" and ""str[edi+1] = null". (Found by David Carachi) 4/28/2012
400 On line 3 of section 10.3.5, change "The latter is useful" to "The former is useful". 5/23/2011
417 In the description of Programming Exercise 9, change "SHRD" to "SHRD and SHLD". 5/23/2011
468 On the third line from the bottom, change "size of the heap, in bytes" to "size of the heap allocation, in bytes". 5/23/2011
517 Table 12-25, third line from the bottom, the second column should contain "MOV ew,DS". (found by Alan Reinarz) 1/22/2011
528 The comments inside the AddTwo procedure should say that [ebp+12] is the second parameter and [ebp+8] is the first parameter. (Found by Alex Mentis) 7/14/2012
537 In the FindArray parameter list, change "long count" to "int count". 5/23/2011
541 The execution timings in the first box should be: CPP = 44 seconds, ASM = 26 seconds. In the second box, the timings should be CPP = 43 seconds, and ASM = 26 seconds. (found by Alan Reinarz) 1/22/2011
710 The index entry for "Programmable Parallel Port" should point to page 51. (Found by Harold Moore) 4/28/2012
718 On the first page of the ASCII character chart on the back cover, change the "46" decimal column header to "48". (Found by Scott Glass) 10/27/2010