Muutke küpsiste eelistusi

E-raamat: Windows Assembly Language and Systems Programming: 16- and 32-Bit Low-Level Programming for the PC and Windows [Taylor & Francis e-raamat]

  • Formaat: 419 pages
  • Ilmumisaeg: 09-Jan-1997
  • Kirjastus: R & D
  • ISBN-13: 9780429081088
  • Taylor & Francis e-raamat
  • Hind: 244,66 €*
  • * hind, mis tagab piiramatu üheaegsete kasutajate arvuga ligipääsu piiramatuks ajaks
  • Tavahind: 349,51 €
  • Säästad 30%
  • Formaat: 419 pages
  • Ilmumisaeg: 09-Jan-1997
  • Kirjastus: R & D
  • ISBN-13: 9780429081088
-Access Real mode from Protected mode; Protected mode from Real mode Apply OOP concepts to assembly language programs Interface assembly language programs with high-level languages Achieve direct hardware manipulation and memory access Explore the archite

Readers explore the architectural details of Windows at the system level. This book provides the how-to information and example code advanced developers need for the full range of 16- and 32-bit systems-level programming.

-Access Real mode from Protected mode; Protected mode from Real mode Apply OOP concepts to assembly language programs Interface assembly language programs with high-level languages Achieve direct hardware manipulation and memory access Explore the archite
Preface xi
1 CPU Architecture
1(36)
Preamble
1(1)
Power-up the PC
2(4)
The System Files
3(3)
Number Systems
6(3)
Registers and Memory
9(5)
Memory Map of the PC
12(1)
The CPU & Support Chips
12(2)
Conventional and Extended Memory
14(7)
Segments
14(3)
Real Mode
17(1)
DOS Real Mode Programming
18(1)
DOS Protected Mode Programming
18(2)
Coding Restraints
20(1)
Inside the 286/386/486/etc
21(4)
CPU Registers
22(1)
Instructions
23(2)
Real and Protected Modes
25(1)
Memory Management
25(6)
Segmentation Only
25(1)
Shadow Registers
26(2)
Descriptors
28(1)
386 Paging
28(1)
Virtual-86
29(2)
Contention Issues
31(2)
Privileges
31(1)
I/O Privilege
31(1)
Task Switching
32(1)
Interrupts
33(3)
Real Mode Interrupts
33(1)
Protected Mode Interrupts
34(2)
Postamble
36(1)
2 Basic Assembly Language
37(32)
Preamble
37(1)
Stack Instructions
38(1)
Transfer of Control
39(5)
Conditional Jump
43(1)
Addressing Modes
44(3)
Segment Registers
46(1)
String Instructions
47(3)
Arithmetic Instructions
50(4)
Logical Instructions
54(2)
Code and Data Labels
56(7)
Code Labels
56(2)
Data Labels
58(1)
Accessing Data
58(1)
Pointers
59(1)
LES, LDS, and LEA Instructions
60(2)
Local Data
62(1)
Type Override
63(2)
Structures
65(2)
Label Equates
66(1)
Postamble
67(2)
3 Opening Windows
69(16)
Preamble
69(1)
DOS versus Windows Programming
70(2)
Internal Differences
71(1)
Building a Windows Application
72(3)
Library Functions
72(1)
The Mechanics of Assembling and Linking
73(1)
The Link Step
74(1)
Two Steps for Resources
74(1)
Windows Programming Mechanics
75(7)
Objects
75(1)
Handles
76(1)
Instances
76(1)
Messages
77(1)
C Syntax
78(1)
Message Loop
78(1)
Callback Functions
79(3)
Data Types
82(3)
4 The Bare Bones
85(24)
Preamble
85(1)
Getting Started
86(8)
Tools Required
86(3)
Source Files
89(1)
Resource and Definition Files
89(1)
Message Format
90(1)
Make File
91(1)
Development Cycle
92(2)
Application Structure
94(15)
Preliminary Code
94(2)
Startup Code
96(2)
WINMAIN()
98(4)
Callback Function
102(7)
5 High-Level Assembly
109(28)
Preamble
109(1)
Include Files
109(2)
Microsoft versus Borland
110(1)
Skeleton Analysis
111(8)
MODEL Directive
119(1)
Private and Global Data
120(3)
MASM versus TASM Scope
121(1)
TASM's @@
121(1)
Life of Automatic Data
122(1)
Assembling and Linking
123(2)
MASM6 versus TASM
125(7)
WINDOWS Qualifier
126(1)
Prototypes
127(2)
Callback Design
129(1)
Other Incompatibilities
130(1)
MASM Assembling and Linking
131(1)
MASM6 Program Listing
132(5)
6 Program Design
137(42)
Preamble
137(1)
Object Addressing
138(7)
Calling a Function
138(3)
Early Binding
141(1)
Late Binding
142(1)
C++ Binding
142(3)
Assembly Language Binding
145(1)
Use of THIS
145(2)
Interfacing with C++
147(6)
Compiling to ASM O/P
147(1)
In-Line Assembly
148(1)
In-Line Dos and Don'ts
149(1)
The ASM Stub
150(1)
Compile and Assemble Steps
151(2)
The Amazing 9-Line Program
153(1)
A Skeleton Program
154(4)
Overrides
156(1)
Kickstart
157(1)
Message Handling
157(1)
The WINDOW Object
158(4)
WINMAIN()
162(3)
Callback
165(3)
MAKE()
168(3)
Inheritance
171(4)
Getting it Together
175(3)
Postamble
178(1)
7 PC Hardware
179(16)
Preamble
179(1)
CPU bus
179(4)
Control Bus
180(2)
Address Decoder
182(1)
I/O Ports
183(1)
I/O Instructions
184(1)
Keyboard Interface
184(3)
AT-Class Keyboard Port Enhancements
186(1)
PC Expansion Buses
187(4)
Industry Standard Architecture (ISA)
188(3)
Peripheral Connect Interface (PCI)
191(3)
Postamble
194(1)
8 BIOS, DOS, & Windows Low-Level Services
195(30)
Preamble
195(2)
BIOS and DOS Services
197(6)
Standard DOS Interrupts
200(3)
DOS Protected Mode Interface (DPMI)
203(2)
INT-2Fh Extensions
205(2)
Windows Functions
207(12)
Thunking
219(3)
Generic Thunking
219(3)
More Win95 "Improvements"
222(2)
Device I/O Control
222(1)
Dynamically Loadable Drivers
223(1)
Threads
223(1)
Memory Mapped Files
224(1)
Postamble
224(1)
9 Direct Hardware Access
225(24)
Preamble
225(1)
Initialisation
226(1)
Addressing Segments
227(2)
Direct Video
229(15)
Restore Video
231(1)
Change Video Mode
232(1)
A Direct-Video Text-Mode Routine
232(2)
Call REPAINTSCREEN()
234(1)
Ordinal Coordinates
235(1)
To and From Text Mode
236(1)
Video Output Issues
237(1)
Message Input
238(1)
Experimenting
239(1)
A Direct- Video Window Program
239(5)
I/O Ports
244(5)
10 Real-Time Events
249(18)
Preamble
249(1)
TSRs
250(6)
Hooking a Vector
251(2)
Service Routine (ISR)
253(2)
Testing
255(1)
Hardware Interrupts
256(8)
XT Hardware Interrupts
256(1)
AT Hardware Interrupts
257(1)
Windows' Standard Mode Hardware Interrupts
258(2)
Interrupt Handler Code
260(3)
Enhanced Mode Hardware Interrupts
263(1)
Direct Memory Access
264(3)
11 Real Mode Access
267(20)
Preamble
267(1)
Accessing Real Mode from Protected Mode
268(7)
Accessing Real Mode via the IVT
269(2)
Virtual Machines
271(2)
DOS TSRs
273(2)
Accessing Protected Mode from Real Mode
275(12)
Signalling a WinApp from a DOSApp
276(2)
Passing Control to the WinApp
278(2)
The DOSApp "Signaller"
280(3)
Hooking a Real Mode Interrupt from a WinApp
283(4)
12 32-Bit Ring 0
287(20)
Preamble
287(1)
16- and 32-Bit Programming
288(3)
Ring Transition Mechanism
291(9)
Call Gate Structure
292(2)
Ring Transition Example Code
294(6)
FLAT Memory
300(5)
Moving On
305(2)
13 32-Bit Ring 3
307(12)
Preamble
307(1)
TASM5 versus MASM6
308(1)
Installing TASM5
309(1)
Example Skeleton Program
310(4)
Support Files
314(4)
Postamble
318(1)
14 DOS-Win Transitions
319(22)
Preamble
319(1)
Interrupt Handlers
320(10)
Example Protected Mode ISR Code
321(2)
Problems/Issues with the Protected Mode ISRs
323(1)
The Real Mode Handler
324(6)
DOS-to-Win Device Driver/TSR
330(9)
Automatic Loading of Windows Programs/Drivers
330(1)
TSR Installation
331(7)
TSR Resident Code
338(1)
Getting it Together
339(2)
15 Advanced Systems Programming
341(28)
Preamble
341(2)
Mapping Across VMs
343(5)
Mapping the 4.3G Linear Address Space of a VM to Physical Memory
344(4)
The Windows/DOS/DPMI Relationship
348(2)
Windows Extensions to INT-2Fh Relationship
349(1)
The Windows/INT-2Fh Relationship
349(1)
Writing Windows-Aware DOSApps
349(1)
Sharing Memory Between 16- and 32-bit WinApps
350(1)
Anatomy of a VxD
351(7)
Maximum Productivity
358(1)
Lab View Programming
359(4)
Disadvantages of Lab View
360(2)
Integration with Assembly
362(1)
Layout Programming
363(4)
Comparison with Lab View
364(1)
Integrating with Assembly
365(2)
Assembly versus High-Level Languages
367(2)
A Instruction Summary
369(10)
B Keyboard Tables
379(6)
Virtual Keys
379(3)
Extended ANSI
382(1)
IBM ASCII
383(2)
C DPMI Services
385(16)
DPMI INT-31h Functions Listed by Functional Group
385(4)
DPMI Services Detail
389(12)
D INT-2F Extensions
401(12)
INT-2F Extensions Detail
403(10)
Index 413
Product & Publication References 419(1)
People 419
Barry Kauler is the author of five books, including Windows Assembly Language and Systems Programming, and a contributor to Dr. Dobb's Journal. He is a teacher and consultant on real-time systems design.