List of Figures

Chapter 2: Coding Standards

Figure 2-1: Visual C++ (version 6) memory alignment property page
Figure 2-2: Visual C++ .NET (version 7) memory alignment property page

Chapter 3: Processor Differential Insight

Figure 3-1: Unsigned/signed data types
Figure 3-2: 64/32/16-bit general-purpose 80x86 registers
Figure 3-3: Segment-selector registers
Figure 3-4: MMX registers
Figure 3-5: XMM registers
Figure 3-6: EFLAGS register
Figure 3-7: Floating-point bit configurations
Figure 3-8: Flavor tree of x86 processors
Figure 3-9: Data conversions
Figure 3-10: Big-endian and little-endian byte orientations in relation to memory
Figure 3-11: Visible connections between individual bytes and the left shift of a 32-bit data element
Table 3-10: 64-bit memory reference (64-bit Mode)
Table 3-11: 32-bit memory reference (Protected Mode)
Table 3-12: 16-bit memory reference (Real Mode)

Chapter 4: Bit Mangling

Figure 4-1: Example of using a logical XOR with a logical true bit to achieve the equivalent of a logical NOT condition.
Figure 4-2: A four-gate (OR, NOT-AND, AND) solution to achieve an equivalent result of a logical XOR
Figure 4-3: A two-gate (ANDC, OR) solution to achieve an equivalent result of a logical XOR

Chapter 5: Bit Wrangling

Figure 5-1: Miscellaneous examples of data types being shifted to the left by one bit
Figure 5-2: Miscellaneous examples of data types being logical shifted to the right by one bit
Figure 5-3: Miscellaneous examples of data types being arithmetically shifted to the right by one bit

Chapter 6: Data Conversion

Figure 6-1: Little-endian data conversion
Figure 6-2: AoS to SoA SIMD conversion

Chapter 8: Floating-Point Anyone?

Figure 8-1: Floating-point formats
Figure 8-2: Floating-point bit expansion
Figure 8-3: FPU registers
Figure 8-4: Ten-byte BCD data storage. The MSB in the far left byte (byte #9) is the sign bit and the rightmost eight bytes (#8...0) contain the BCD value pairs. The 18 th BCD digit resides in the upper nibble of byte #8 and the first BCD digit resides in the lower nibble of byte #0.
Figure 8-5: Sine-cosine waves
Figure 8-6: Sine and cosine trigonometric relationships
Figure 8-7: 2D rotation angle
Figure 8-8: Left/right-handed rotation matrices
Figure 8-9: The relationship of a circle with its quadrants and associated sizes

Chapter 13: FP Vector Multiplication and Division

Figure 13-1: Dot product (inner product). A positive number is an acute angle, zero is perpendicular , and negative is an obtuse angle.
Figure 13-2: Face culling mechanism where if the angle between the camera and the perpendicular to the face plane is obtuse, then the face is pointed away from the camera and can be culled.
Figure 13-3: This shows the cosine of two intersecting lines.
Figure 13-4: Cross product (outer product). The perpendicular to the two vectors v and w.

Chapter 14: Floating-Point Deux

Figure 14-1: 2D right triangle representing a 2D distance
Figure 14-2: Right triangle within 3D Cartesian coordinate system representing a 3D distance and thus its magnitude
Figure 14-3: Monster to player 2D distance calculations

Chapter 15: Binary-Coded Decimal (BCD)

Figure 15-1: Ten-byte BCD data storage. MSB in far left byte (byte #9) is the sign bit and the rightmost eight bytes (#8...0) contain the BCD value pairs. The 18 th BCD digit resides in the upper nibble of byte #8 and the 1 st BCD digit resides in the lower nibble of byte #0.

Chapter 17: PC I/O

Figure 17-1: Parallel port to octal switch

Chapter 18: System

Figure 18-1: CPU status register
Figure 18-2: Protection rings

Chapter 19: Gfx 'R' Asm

Figure 19-1: Imagine these four differently aligned memory strands as eels. We pull out our sushi knife and finely chop off their heads into little 8-bit (1-byte) chunks , chop off the tails into 8-bit (1-byte) chunks, and then coarsely chop the bodies into larger 32-bit (4-byte) chunks, and serve raw.
Figure 19-2: Bitmap dimension information
Figure 19-3: Monster Punch Copy blit of strawberry image on the right into the blender on the left.
Figure 19-4: Monster Punch Transparent blit of strawberry image on the right into the blender on the left.
Figure 19-5: Transparent copy blit of strawberry sprite and blender image background to achieve composite result of both.
Figure 19-6: The blit of a rectangular blender image to a storage buffer, then the transparent blit of a strawberry into blender. A blit of the saved blender image back into blender effectively erases the strawberry.
Figure 19-7: 2D bitmap on left with 2-bit clipping plane on right

Chapter 20: MASM vs. NASM vs. TASM vs. WASM

Figure 20-1: VC6 assembler configuration display

Chapter 21: Debugging Functions

Figure 21-1: About Visual C++ version 6.0
Figure 21-2: About Visual C++ .NET version 7.0
Figure 21-3: Register dump from Visual C++ 6.0(3DNow! extensions)
Figure 21-4: Register dump from Visual C++ .NET version 7.0 (3DNow! professional extensions). Note the 3DNow! and SSE supported registers as well as the extra pop-up menu of register type selections that you can choose from. The enabled selections are based upon the processor type running on the computer that is being debugged .


32.64-Bit 80X86 Assembly Language Architecture
32/64-Bit 80x86 Assembly Language Architecture
ISBN: 1598220020
EAN: 2147483647
Year: 2003
Pages: 191

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net