Corrections

Assembly Language for x86 Processors 7th Edition

Kip Irvine

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

 

Page

Description

Date Posted

3

In the first bullet list, change "32-bit versions" to "32-bit and 64-bit versions".

6/22/2014

12

In the Tip box, the formula to calculate the minimum number of binary bits to represent a number n should be:  floor( log2 n + 1)

10/2/2018

63

3.1.11, question #4, change "3.1.2" to 3.1.3".

1/16/2020

70

In 3.2.4 question 1, change “INCLUDE” to “ENDP”.

10/2/2015

73

On the very first line, change "EB" to "E8".

10/2/2018

80

In the middle of the page, intVal should have one more pair of zeros in the middle. (found by Joseph Flynn)

10/2/2015

88

Delete the last sentence on the page: "We will...variable".

2/7/2015

103

In the second line below the 4.1.9 heading, change "MOVDX" to "MOVZX".

10/2/2018

127

On line 2, change "16-bit" to "32-bit".

10/2/2018

128

On the last line, change "G" in the hexadecimal constant to "0".

9/21/2014

130

In the SumArray_64 program, add a comma to the end of the line that starts with "intarray".

10/2/2018

131

The last line of the third code example should be:  mov  rax,array[rsi*8]    ; RAX = 4

6/22/2014

135

In Exercise 9, change “mov  rax,dwordVal” to “mov  eax,dwordVal”. In Exercise 16, remove the “?” from the end of statement (a).

11/28/2016

171

Five lines from the top of the page, change “ECX” to “EAX”. (found by Simone Raimondi)

11/28/2016

172

The "exit" statement used near the bottom of the page substitutes for the INVOKE ExitProcess statements shown in earlier programs.

10/2/2018

181

In the middle of the page on line of the sample code, change 28 to 28h. (found by Maxim Stokolesov)

11/28/2016

251

In the code example, change “COUNT” to “4”. (found by Joseph Flynn)

10/2/2015

257

Under the heading "Using MUL in 64-Bit Mode", change "RDX" in the second sentence to "RAX".

6/22/2014

258

In the first sentence under the heading "Using IMUL in 64-Bit Mode", change "MUL" to "IMUL". In the second sentence, change "two-operand" to "single-operand", and change "RDX" to "RAX".

6/22/2014

258

In the last code example, 3rd line, change "rb" to "rbx".

6/22/2014

264

On the second line, change "divided by 64" to "divided by 64k".

9/21/2014

264

There are numerous errors in the first three paragraphs of Section 7.3.5. Here is the corrected page.

9/21/2014

280

In 7.8.2, change CBQ to CDQ, and add CWD to the list.

4/16/2018

288

In the second paragraph, change "gain by avoiding" to "gain by using".

6/21/2014

294

In the Second paragraph, the first two sentences should read: "A C compiler pushes arguments on the stack in reverse order. The called function is responsible for determining the actual number of arguments passed, and for accessing those arguments one by one."

6/22/2014

294

In the 4th line under the heading “Saving and Restoring Registers”, change “ESP, and just before” to “ESP, and just after”.

10/29/2017

302

In item #10, change "R14, R14" to "R13, R14".

4/16/2018

482

On the 5th line from the bottom of the page, change "a SYSTEMTIME is" to "a FILETIME is", and change "7.5" to "7.4".

9/21/2014

512

In Table 12-1 in the third row, second column, change "16 bits for the exponent" to "15 bits for the exponent, 1 bit for the integer portion of the number". (found by Ken Gregg)

4/25/2014

518

In the last sentence of the first paragraph, change "00110011001100110011001" to
"100 1100 1100 1100 1100 1100".

9/21/2014

570

In the C language prototype for IndexOf, the return type should be long, not int. Also, on the second line from the bottom of the page, change "return 1" to "return -1".

9/21/2014

571

Next to last line: change "the current day" to "Jan 1, 1970".

6/21/2014

572

In line 5, change "steps is" to "steps could be as many as".

6/22/2014

573

On the second code line from the top of the page, change "al" to "eax".

9/21/2014

574

Under the Function Prototypes heading, the first line of code should be: extern "C" returnType funcName( paramlist ).

6/21/2014

577

On the second line of the program, change "INVOKE newLine" to "call Crlf". (found by Ryan Helpingstine)

4/19/2015

647

In 3.2 question 1, the answer should be “Marks the end of a procedure.” In question 3, change “data” to “stack”.

10/2/2015

650

The answer to problem 6 in 4.6 is E002 hexadecimal. (found by Joseph Flynn)

10/2/2015