Muutke küpsiste eelistusi

Guide to Assembly Language Programming in Linux 2005 ed. [Pehme köide]

  • Formaat: Paperback / softback, 545 pages, kõrgus x laius: 244x170 mm, kaal: 1970 g, XVI, 545 p., 1 Paperback / softback
  • Ilmumisaeg: 15-Jul-2005
  • Kirjastus: Springer-Verlag New York Inc.
  • ISBN-10: 0387258973
  • ISBN-13: 9780387258973
Teised raamatud teemal:
  • Pehme köide
  • Hind: 132,25 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 155,59 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 3-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 545 pages, kõrgus x laius: 244x170 mm, kaal: 1970 g, XVI, 545 p., 1 Paperback / softback
  • Ilmumisaeg: 15-Jul-2005
  • Kirjastus: Springer-Verlag New York Inc.
  • ISBN-10: 0387258973
  • ISBN-13: 9780387258973
Teised raamatud teemal:
Processor designs can be broadly divided into CISC (Complex Instruction Set Computers) and RISC (Reduced Instruction Set Computers). The dominant processor in the PC market, Pentium, belongs to the CISC category, and Linux is fast becoming the number one threat to Microsoft's Windows in the server market. This unique guidebook provides comprehensive coverage of the key elements of Assembly language programming, specifically targeting professionals and students who would like to learn Assembly and intend or expect to move to the Linux operating system. The book instructs users on how to install Linux on existing Windows machines, providing DVDs containing the complete Fedora Core 3 Linux distribution. Readers are introduced to Linux and its commands, and will gain insights into the NASM assembler (installation and usage). This highly useful guidebook comes complete with all the necessary software (Linux, NASM, debugger), making it an extremely valuable resource tool for all those who want to learn Assembly programming and Linux.

This unique guide provides comprehensive coverage of the key elements of Assembly language programming with in-depth coverage of the Linux operating system, which is the fastest-growing operating system server, with well over a quarter of the total market already. It specifically targets professionals who would like to learn Assembly and intend or expect to move to the Linux operating system. It instructs users on how to install Linux on existing Windows machines, providing DVDs containing the complete Fedora Core 3 Linux distribution. Readers are introduced to Linux and its commands and gains insights into the NASM assembler (installation and usage). This highly useful guidebook comes complete with all the necessary software (Linux, NASM, debugger), making it an extremely valuable resource tool for all those who want to learn Assembly programming and Linux.
Preface vii
PART I Overview
1(8)
Assembly Language
3(6)
Introduction
3(2)
What Is Assembly Language?
5(1)
Advantages of High-Level Languages
6(1)
Why Program in Assembly Language?
7(1)
Typical Applications
8(1)
Summary
8(1)
PART II Computer Organization
9(70)
Digital Logic Circuits
11(34)
Introduction
11(2)
Simple Logic Gates
13(2)
Logic Functions
15(2)
Deriving Logical Expressions
17(1)
Simplifying Logical Expressions
18(5)
Combinational Circuits
23(3)
Adders
26(3)
Programmable Logic Devices
29(3)
Arithmetic and Logic Units
32(3)
Sequential Circuits
35(2)
Latches
37(2)
Flip-Flops
39(4)
Summary
43(2)
Memory Organization
45(16)
Introduction
45(1)
Basic Memory Operations
46(2)
Types of Memory
48(2)
Building a Memory Block
50(2)
Building Larger Memories
52(4)
Mapping Memory
56(2)
Storing Multibyte Data
58(1)
Alignment of Data
59(1)
Summary
60(1)
The IA-32 Architecture
61(18)
Introduction
61(2)
Processor Execution Cycle
63(1)
Processor Registers
63(4)
Protected Mode Memory Architecture
67(5)
Real Mode Memory Architecture
72(2)
Mixed-Mode Operation
74(1)
Which Segment Register to Use
75(1)
Input/Output
76(2)
Summary
78(1)
PART III Linux
79(72)
Installing Linux
81(34)
Introduction
81(1)
Partitioning Your Hard Disk
82(10)
Installing Fedora Core Linux
92(15)
Installing and Removing Software Packages
107(3)
Mounting Windows File System
110(2)
Summary
112(2)
Getting Help
114(1)
Using Linux
115(36)
Introduction
115(2)
Setting User Preferences
117(6)
System Settings
123(3)
Working with the GNOME Desktop
126(6)
Command Terminal
132(2)
Getting Help
134(1)
Some General-Purpose Commands
135(4)
File System
139(2)
Access Permissions
141(4)
Redirection
145(1)
Pipes
146(1)
Editing Files with Vim
147(2)
Summary
149(2)
PART IV NASM
151(34)
Installing and Using NASM
153(14)
Introduction
153(1)
Installing NASM
154(1)
Generating the Executable File
154(1)
Assembly Language Template
155(1)
Input/Output Routines
156(3)
An Example Program
159(1)
Assembling and Linking
160(6)
Summary
166(1)
Web Resources
166(1)
Debugging Assembly Language Programs
167(18)
Strategies to Debug Assembly Language Programs
167(2)
Preparing Your Program
169(1)
GNU Debugger
170(9)
Data Display Debugger
179(5)
Summary
184(1)
PART V Assembly Language
185(176)
A First Look at Assembly Language
187(24)
Introduction
187(1)
Data Allocation
188(5)
Where Are the Operands
193(3)
Overview of Assembly Language Instructions
196(9)
Our First Program
205(1)
Illustrative Examples
206(3)
Summary
209(2)
More on Assembly Language
211(20)
Introduction
211(1)
Data Exchange and Translate Instructions
212(1)
Shift and Rotate Instructions
213(4)
Defining Constants
217(1)
Macros
218(3)
Our First Program
221(2)
Illustrative Examples
223(4)
When to Use the XLAT Instruction
227(2)
Summary
229(2)
Writing Procedures
231(24)
Introduction
231(2)
What Is a Stack?
233(1)
Implementation of the Stack
234(2)
Stack Operations
236(2)
Uses of the Stack
238(1)
Procedure Instructions
239(2)
Our First Program
241(1)
Parameter Passing
242(6)
Illustrative Examples
248(4)
Summary
252(3)
More on Procedures
255(18)
Introduction
255(1)
Local Variables
256(1)
Our First Program
257(3)
Multiple Source Program Modules
260(1)
Illustrative Examples
261(7)
Procedures with Variable Number of Parameters
268(4)
Summary
272(1)
Addressing Modes
273(18)
Introduction
273(1)
Memory Addressing Modes
274(4)
Arrays
278(3)
Our First Program
281(1)
Illustrative Examples
282(7)
Summary
289(2)
Arithmetic Instructions
291(26)
Introduction
291(1)
Status Flags
292(10)
Arithmetic Instructions
302(7)
Our First Program
309(1)
Illustrative Examples
310(6)
Summary
316(1)
Conditional Execution
317(24)
Introduction
317(1)
Unconditional Jump
318(3)
Compare Instruction
321(1)
Conditional Jumps
322(5)
Looping Instructions
327(1)
Our First Program
328(2)
Illustrative Examples
330(5)
Indirect Jumps
335(4)
Summary
339(2)
Logical and Bit Operations
341(20)
Introduction
341(1)
Logical Instructions
342(5)
Shift Instructions
347(6)
Rotate Instructions
353(1)
Bit Instructions
354(1)
Our First Program
355(2)
Illustrative Examples
357(3)
Summary
360(1)
PART VI Advanced Assembly Language
361(98)
String Processing
363(16)
String Representation
363(1)
String Instructions
364(8)
Our First Program
372(1)
Illustrative Examples
373(3)
Testing String Procedures
376(2)
Summary
378(1)
ASCII and BCD Arithmetic
379(12)
Introduction
379(2)
Processing in ASCII Representation
381(3)
Our First Program
384(1)
Processing Packed BCD Numbers
385(2)
Illustrative Example
387(2)
Decimal Versus Binary Arithmetic
389(1)
Summary
390(1)
Recursion
391(12)
Introduction
391(1)
Our First Program
392(2)
Illustrative Examples
394(6)
Recursion Versus Iteration
400(1)
Summary
401(2)
Protected-Mode Interrupt Processing
403(20)
Introduction
403(1)
A Taxonomy of Interrupts
404(1)
Interrupt Processing in the Protected Mode
405(3)
Exceptions
408(2)
Software Interrupts
410(1)
File I/O
411(4)
Our First Program
415(1)
Illustrative Examples
415(3)
Hardware Interrupts
418(1)
Direct Control of I/O Devices
419(1)
Summary
420(3)
High-Level Language Interface
423(20)
Introduction
423(1)
Calling Assembly Procedures from C
424(3)
Our First Program
427(1)
Illustrative Examples
428(4)
Calling C Functions from Assembly
432(2)
Inline Assembly
434(7)
Summary
441(2)
Floating-Point Operations
443(16)
Introduction
443(1)
Floating-Point Unit Organization
444(3)
Floating-Point Instructions
447(6)
Our First Program
453(2)
Illustrative Examples
455(3)
Summary
458(1)
APPENDICES
459(2)
A Number Systems
461(12)
Positional Number Systems
461(2)
Conversion to Decimal
463(1)
Conversion from Decimal
463(1)
Binary/Octal/Hexadecimal Conversion
464(2)
Unsigned Integers
466(1)
Signed Integers
466(3)
Floating-Point Representation
469(2)
Summary
471(2)
B Character Representation
473(4)
Character Representation
473(1)
ASCII Character Set
474(3)
C Programming Exercises
477(8)
D IA-32 Instruction Set
485(32)
Instruction Format
485(2)
Selected Instructions
487(30)
E Glossary
517(10)
Index 527


Sivarama P. Dandamudi is a professor of computer science at Carleton University in Ottawa, Ontario, Canada, as well as associate editor responsible for computer architecture at the International Journal of Computers and Their Applications.  He has more than two decades of experience teaching about computer systems and organization.