Change bold code snippets to inline code blocks
This commit is contained in:
parent
f658bfbb40
commit
3c76d884ef
185 changed files with 1772 additions and 1772 deletions
10
13-04.md
10
13-04.md
|
|
@ -23,7 +23,7 @@ mov al,BaseTable[ecx+edx*4]
|
|||
|
||||
uses a perfectly valid 32-bit address, with the byte accessed being the
|
||||
one at the offset in DS pointed to by the sum of EDX times 4 plus the
|
||||
offset of **BaseTable** plus ECX. This is a very powerful memory
|
||||
offset of `BaseTable` plus ECX. This is a very powerful memory
|
||||
addressing scheme, far superior to 8088-style 16-bit addressing, but
|
||||
it's not without its quirks and costs, so let's take a quick look at
|
||||
32-bit addressing. (By the way, 32-bit addressing is not limited to
|
||||
|
|
@ -49,8 +49,8 @@ aforementioned 1-cycle penalty for using 32-bit addressing in real mode)
|
|||
is a 1-cycle penalty imposed for using an index register. In this
|
||||
context, you use an index register when you use a register that's
|
||||
scaled, or when you use the sum of two registers to point to memory.
|
||||
**MOV BL,[EBX\*2]** uses an index register and takes an extra cycle, as
|
||||
does **MOV CL,[EAX+EDX]; MOV CL,[EAX+100H]** is not indexed, however.
|
||||
`MOV BL,[EBX*2]` uses an index register and takes an extra cycle, as
|
||||
does `MOV CL,[EAX+EDX]; MOV CL,[EAX+100H]` is not indexed, however.
|
||||
|
||||
The other cost of 32-bit addressing is in instruction size. Old-style
|
||||
16-bit addressing usually (except in a few special cases) uses one extra
|
||||
|
|
@ -61,8 +61,8 @@ constant value to add into the address. In many cases, 32-bit addressing
|
|||
continues to use the Mod-R/M byte, albeit with a different
|
||||
interpretation; in these cases, 32-bit addressing is no larger than
|
||||
16-bit addressing, except when a 32-bit displacement is involved. For
|
||||
example, **MOV AL, [EBX]** is a 2-byte instruction; **MOV AL,
|
||||
[EBX+10H]** is a 3-byte instruction; and **MOV AL, [EBX+10000H]** is a
|
||||
example, `MOV AL, [EBX]` is a 2-byte instruction; `MOV AL,
|
||||
[EBX+10H]` is a 3-byte instruction; and `MOV AL, [EBX+10000H]` is a
|
||||
6-byte instruction.
|
||||
|
||||
> 
|
||||
|
|
|
|||
Loading…
Reference in a new issue