Browse Source

minor edits

Jeremy Siek 6 years ago
parent
commit
c019114084
1 changed files with 6 additions and 5 deletions
  1. 6 5
      book.tex

+ 6 - 5
book.tex

@@ -1055,7 +1055,7 @@ An x86 program is a sequence of instructions. The program is stored in the
 computer's memory and the \emph{program counter} points to the address of the
 next instruction to be executed. For most instructions, once the instruction is
 executed, the program counter is incremented to point to the immediately
-following instruction in the program.  Each instruction may refer to integer
+following instruction in memory.  Each instruction may refer to integer
 constants (called \emph{immediate values}), variables called \emph{registers},
 and instructions may load and store values into memory.  For our purposes, we
 can think of the computer's memory as a mapping of 64-bit addresses to 64-bit
@@ -1063,14 +1063,14 @@ can think of the computer's memory as a mapping of 64-bit addresses to 64-bit
 values\footnote{This simple story doesn't fully cover contemporary x86
   processors, which combine multiple processing cores per silicon chip, together
   with hardware memory caches.  The result is that, at some instants in real
-  time, different programs may hold conflicting cached values for a given memory
-  address.}.
+  time, different threads of program execution may hold conflicting
+  cached values for a given memory address.}.
 %
 Figure~\ref{fig:x86-a} defines the syntax for the
 subset of the x86 assembly language needed for this chapter.
 %
 (We use the AT\&T syntax expected by the GNU assembler that comes with the C
-compiler we use for this course: \key{gcc}.)
+compiler that we use in this course: \key{gcc}.)
 %
 Also, Appendix~\ref{sec:x86-quick-reference} includes a quick-reference of all
 the x86 instructions used in this book and a short explanation of what they do.
@@ -1114,7 +1114,8 @@ A register is written with a \key{\%} followed by the register name,
 such as \key{\%rax}.
 %
 An access to memory is specified using the syntax $n(\key{\%}r)$,
-which reads register $r$ and then offsets the address by $n$ bytes
+which obtains the address stored in register $r$ and then
+offsets the address by $n$ bytes
 (8 bits). The address is then used to either load or store to memory
 depending on whether it occurs as a source or destination argument of
 an instruction.