0 رای
وضعیت موجودی نا موجود

قیمت قبلی: 7,800,000 ریال
قیمت: 7,400,000 ریال

 



Product details

  • Publisher ‏ : ‎ Prentice Hall; Subsequent edition (September 1, 2002)
  • Language ‏ : ‎ English
  • Hardcover ‏ : ‎ 700 pages
  • ISBN-10 ‏ : ‎ 0130910139
  • ISBN-13 ‏ : ‎ 978-0130910134

 

کتاب Assembly Language for Intel-Based Computers (4th Edition) Subsequent Edition

Editorial Reviews

Excerpt. © Reprinted by permission. All rights reserved.

Assembly Language for Intel-Based Computers, Fourth Edition is based on the Intel IA-32 Processor architecture, seen from a programmer's point of view. It is appropriate as a text in the following types of college courses for computer science majors:

·         {C}{C}{C}Assembly Language Programming

·         {C}{C}{C}Fundamentals of Computer Systems

·         {C}{C}{C}Fundamentals of Computer Architecture

Although this book was originally designed as a programming textbook for community college students, it has gradually developed into much more. Currently, many universities use the book for their introductory computer architecture courses. At Florida International University, for example, this book is used in a course named Fundamentals of Computer Systems, which leads to a more comprehensive course in Computer Architecture.

The present edition includes topics that lead naturally into subsequent courses in computer architecture, operating systems, and compiler writing:

·         {C}{C}{C}Virtual machine concept

·         {C}{C}{C}Elementary boolean operations

·         {C}{C}{C}Instruction execution cycle

·         {C}{C}{C}Memory access using clock cycles

·         {C}{C}{C}Interrupts and polling

·         {C}{C}{C}Multi-stage pipeline

·         {C}{C}{C}Superscalar architecture

·         {C}{C}{C}Multitasking

·         {C}{C}{C}Loading and executing programs

·         {C}{C}{C}Floating-point binary representation

Other topics relate specifically to Intel IA-32 architecture, using information gained from its manuals:

·         {C}{C}{C}IA-32 Protected Memory addressing and paging

·         {C}{C}{C}Memory segmentation in Real-address mode

·         {C}{C}{C}Interrupt handling

·         {C}{C}{C}Direct hardware I/O

·         {C}{C}{C}Instruction encoding

Certain examples presented in the book lend themselves to courses that occur later in a computer science curriculum:

·         {C}{C}{C}Searching and sorting algorithms

·         {C}{C}{C}High-level language structures

·         {C}{C}{C}Finite-state machines

·         {C}{C}{C}Code optimization examples

There are a number of new features in this edition that relate to programming:

·         {C}{C}{C}A more comprehensive and logical explanation of data definition.

·         {C}{C}{C}A more careful explanation of addressing modes.

·         {C}{C}{C}A simplified link library that requires fewer input parameters for nearly all procedures. There are new procedures to dump the CPU registers and sections of memory, as well as a delay timer.

·         {C}{C}{C}An explanation and demonstration of top-down program design.

·         {C}{C}{C}Use of flowcharts as code-generation tools.

·         {C}{C}{C}Even more thorough coverage of assembly language directives, macros, and operators. For example, the PROC, PROTO, and INVOKE directives are thoroughly explained and demonstrated.

·         {C}{C}{C}More complete coverage of structures, including nested structures and arrays of structures.

·         {C}{C}{C}Block-structured IF, WHILE, and REPEAT statements (an advanced feature of MASM).

·         {C}{C}{C}Introduction to video graphics, using both BIOS and direct-memory mapping techniques.

·         {C}{C}{C}Mouse programming.

·         {C}{C}{C}Win32 Console programming, using calls to the Kernel32 Windows library.

·         {C}{C}{C}More array manipulation examples.

Still a Programming Book. It is important to note that this book is still focused on its original mission: to teach students how to write and debug programs at the machine level. It will never replace a complete book on computer architecture, but it does give students the first-hand experience of writing software in an environment that teaches them how the computer really works. The value of this cannot be underestimated, because they will retain a great deal more theoretical knowledge by having immediate contact with the machine. In an engineering course, students construct prototypes; in a software course, students write programs. In both cases, they have a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.

Real Mode and Protected Mode. Many professors have indicated a desire to move to 32-bit programming, using Intel's protected memory model. This edition primarily emphasizes 32-bit Protected mode, but it still has three chapters devoted exclusively to Real-mode programming. For example, there is an entire chapter on BIOS programming for the keyboard, video display (including graphics), and mouse. There is another chapter exclusively on MS-DOS programming using interrupt (function) calls. It is very beneficial for students to have some experience programming directly for firmware and hardware.

The examples in the first part of the book are nearly all presented as 32-bit text-oriented applications running in Protected mode using the flat memory model. This is extremely straightforward. No longer do students have to deal with segment-offset addressing. There are specially marked paragraphs and popup boxes that note the small differences between Protected mode and Real-mode programming. Most of the differences are hidden away in the book's two link libraries.

Link Libraries. There are two versions of the link library that students use for basic input-output in this book. The 32-bit version (Irvine32.lib) works in Win32 Console mode, under any version of MS-Windows. The 16-bit version (Irvinel6.lib) works under MS-DOS, MS-Windows, and a Linux DOS emulator. In later chapters, all the functions in these two libraries are exposed, and readers can modify the libraries as they wish. It is important to realize that the link libraries are there only for convenience, not to prevent students from learning how to program input-output themselves.

Included Software and Examples. All the example programs have been tested with the Microsoft Macro Assembler Version 6.15. For the most part, the programs will assemble with Borland TASM 4.0 and 5.0, but there are some features that Borland does not fully support.

Web Site Information. Updates and corrections to this book may be found at the book's Web site, including additional programming projects for professors to assign at the ends of chapters.

If for some reason you cannot access this site, information about the book and a link to its current Web site can be found by searching for the book title or for the full author name "Kip Irvine." The author's e-mail address is kip@nuvisionmiami.com

Overall Goals

Each of the following goals of this book is designed to broaden the student's interest and knowledge in topics related to assembly language:

·         {C}{C}{C}The Intel IA-32 processor architecture and programming

·         {C}{C}{C}Assembly language directives, macros, operators, and program structure

·         {C}{C}{C}Programming methodology, showing how to use assembly language to create both system-level software tools and application programs

·         {C}{C}{C}Computer hardware manipulation

·         {C}{C}{C}Interaction between assembly language programs, the operating system, and other application programs

One of my goals is to help students approach programming problems with a machine-level mind set. It is important to think of the CPU as an interactive tool, and to learn to monitor each of its actions as directly as possible. A debugger is a programmer's best friend, not only for catching errors, but as an educational tool that teaches about the CPU and operating system. I encourage students to look beneath the surface of high-level languages, and to realize that most programming languages are designed to be portable and, therefore, independent of their host machines.

In addition to the short examples, Assembly Language for Intel-Based Computers contains more than 115 ready-to-run programs that demonstrate instructions or ideas as they are presented in the text. Reference materials, such as guides to MS-DOS interrupts and instruction mnemonics, are available at the end of the book. There is a comprehensive link library that makes the user interface much more accessible for students writing their first programs. The macro library included with the book may also provide inspiration for further development by professors and students.

Required Background. The reader should already be able to program confidently in at least one other programming language, preferably Pascal, Java, C, or C++. One chapter goes into C++ interfacing in some depth, so it is very helpful to have a compiler on hand. I have used this book in the classroom with majors in both computer science and management information systems, and it has been used elsewhere in engineering courses. I used Microsoft Visual C++ 6.0 and Borland C++ 5.0 for the examples that deal with high-level language interfacing.

Features

Complete Program Listings. A companion CD-ROM contains all the source code from the examples in this book. Additional listings are available on the author's Web page. An extensive link library is supplied with the book, containing more than 30 procedures that simplify user input-output, numeric processing, disk and file handling, and string handling. In the beginning stages of the course, students can use this library to enhance their programs. Later, they can create their own procedures and add them to the library. Students are given the complete source code for the 16-bit and 32-bit link libraries.

Programming Logic. Two chapters emphasize boolean logic and bit-level manipulation. A conscious attempt is made to relate high-level programming logic to the low-level details of the machine. This helps students to create more efficient implementations and to better understand how language compilers generate object code.

Hardware and Operating System Concepts. The first two chapters introduce basic hardware and data representation concepts, including binary numbers, CPU architecture, status flags, and memory mapping. A survey of the computer's ha...

 Editorial Reviews

Excerpt. © Reprinted by permission. All rights reserved.

Assembly Language for Intel-Based Computers, Fourth Edition is based on the Intel IA-32 Processor architecture, seen from a programmer's point of view. It is appropriate as a text in the following types of college courses for computer science majors:

·         {C}{C}{C}Assembly Language Programming

·         {C}{C}{C}Fundamentals of Computer Systems

·         {C}{C}{C}Fundamentals of Computer Architecture

Although this book was originally designed as a programming textbook for community college students, it has gradually developed into much more. Currently, many universities use the book for their introductory computer architecture courses. At Florida International University, for example, this book is used in a course named Fundamentals of Computer Systems, which leads to a more comprehensive course in Computer Architecture.

The present edition includes topics that lead naturally into subsequent courses in computer architecture, operating systems, and compiler writing:

·         {C}{C}{C}Virtual machine concept

·         {C}{C}{C}Elementary boolean operations

·         {C}{C}{C}Instruction execution cycle

·         {C}{C}{C}Memory access using clock cycles

·         {C}{C}{C}Interrupts and polling

·         {C}{C}{C}Multi-stage pipeline

·         {C}{C}{C}Superscalar architecture

·         {C}{C}{C}Multitasking

·         {C}{C}{C}Loading and executing programs

·         {C}{C}{C}Floating-point binary representation

Other topics relate specifically to Intel IA-32 architecture, using information gained from its manuals:

·         {C}{C}{C}IA-32 Protected Memory addressing and paging

·         {C}{C}{C}Memory segmentation in Real-address mode

·         {C}{C}{C}Interrupt handling

·         {C}{C}{C}Direct hardware I/O

·         {C}{C}{C}Instruction encoding

Certain examples presented in the book lend themselves to courses that occur later in a computer science curriculum:

·         {C}{C}{C}Searching and sorting algorithms

·         {C}{C}{C}High-level language structures

·         {C}{C}{C}Finite-state machines

·         {C}{C}{C}Code optimization examples

There are a number of new features in this edition that relate to programming:

·         {C}{C}{C}A more comprehensive and logical explanation of data definition.

·         {C}{C}{C}A more careful explanation of addressing modes.

·         {C}{C}{C}A simplified link library that requires fewer input parameters for nearly all procedures. There are new procedures to dump the CPU registers and sections of memory, as well as a delay timer.

·         {C}{C}{C}An explanation and demonstration of top-down program design.

·         {C}{C}{C}Use of flowcharts as code-generation tools.

·         {C}{C}{C}Even more thorough coverage of assembly language directives, macros, and operators. For example, the PROC, PROTO, and INVOKE directives are thoroughly explained and demonstrated.

·         {C}{C}{C}More complete coverage of structures, including nested structures and arrays of structures.

·         {C}{C}{C}Block-structured IF, WHILE, and REPEAT statements (an advanced feature of MASM).

·         {C}{C}{C}Introduction to video graphics, using both BIOS and direct-memory mapping techniques.

·         {C}{C}{C}Mouse programming.

·         {C}{C}{C}Win32 Console programming, using calls to the Kernel32 Windows library.

·         {C}{C}{C}More array manipulation examples.

Still a Programming Book. It is important to note that this book is still focused on its original mission: to teach students how to write and debug programs at the machine level. It will never replace a complete book on computer architecture, but it does give students the first-hand experience of writing software in an environment that teaches them how the computer really works. The value of this cannot be underestimated, because they will retain a great deal more theoretical knowledge by having immediate contact with the machine. In an engineering course, students construct prototypes; in a software course, students write programs. In both cases, they have a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.

Real Mode and Protected Mode. Many professors have indicated a desire to move to 32-bit programming, using Intel's protected memory model. This edition primarily emphasizes 32-bit Protected mode, but it still has three chapters devoted exclusively to Real-mode programming. For example, there is an entire chapter on BIOS programming for the keyboard, video display (including graphics), and mouse. There is another chapter exclusively on MS-DOS programming using interrupt (function) calls. It is very beneficial for students to have some experience programming directly for firmware and hardware.

The examples in the first part of the book are nearly all presented as 32-bit text-oriented applications running in Protected mode using the flat memory model. This is extremely straightforward. No longer do students have to deal with segment-offset addressing. There are specially marked paragraphs and popup boxes that note the small differences between Protected mode and Real-mode programming. Most of the differences are hidden away in the book's two link libraries.

Link Libraries. There are two versions of the link library that students use for basic input-output in this book. The 32-bit version (Irvine32.lib) works in Win32 Console mode, under any version of MS-Windows. The 16-bit version (Irvinel6.lib) works under MS-DOS, MS-Windows, and a Linux DOS emulator. In later chapters, all the functions in these two libraries are exposed, and readers can modify the libraries as they wish. It is important to realize that the link libraries are there only for convenience, not to prevent students from learning how to program input-output themselves.

Included Software and Examples. All the example programs have been tested with the Microsoft Macro Assembler Version 6.15. For the most part, the programs will assemble with Borland TASM 4.0 and 5.0, but there are some features that Borland does not fully support.

Web Site Information. Updates and corrections to this book may be found at the book's Web site, including additional programming projects for professors to assign at the ends of chapters.

If for some reason you cannot access this site, information about the book and a link to its current Web site can be found by searching for the book title or for the full author name "Kip Irvine." The author's e-mail address is kip@nuvisionmiami.com

Overall Goals

Each of the following goals of this book is designed to broaden the student's interest and knowledge in topics related to assembly language:

·         {C}{C}{C}The Intel IA-32 processor architecture and programming

·         {C}{C}{C}Assembly language directives, macros, operators, and program structure

·         {C}{C}{C}Programming methodology, showing how to use assembly language to create both system-level software tools and application programs

·         {C}{C}{C}Computer hardware manipulation

·         {C}{C}{C}Interaction between assembly language programs, the operating system, and other application programs

One of my goals is to help students approach programming problems with a machine-level mind set. It is important to think of the CPU as an interactive tool, and to learn to monitor each of its actions as directly as possible. A debugger is a programmer's best friend, not only for catching errors, but as an educational tool that teaches about the CPU and operating system. I encourage students to look beneath the surface of high-level languages, and to realize that most programming languages are designed to be portable and, therefore, independent of their host machines.

In addition to the short examples, Assembly Language for Intel-Based Computers contains more than 115 ready-to-run programs that demonstrate instructions or ideas as they are presented in the text. Reference materials, such as guides to MS-DOS interrupts and instruction mnemonics, are available at the end of the book. There is a comprehensive link library that makes the user interface much more accessible for students writing their first programs. The macro library included with the book may also provide inspiration for further development by professors and students.

Required Background. The reader should already be able to program confidently in at least one other programming language, preferably Pascal, Java, C, or C++. One chapter goes into C++ interfacing in some depth, so it is very helpful to have a compiler on hand. I have used this book in the classroom with majors in both computer science and management information systems, and it has been used elsewhere in engineering courses. I used Microsoft Visual C++ 6.0 and Borland C++ 5.0 for the examples that deal with high-level language interfacing.

Features

Complete Program Listings. A companion CD-ROM contains all the source code from the examples in this book. Additional listings are available on the author's Web page. An extensive link library is supplied with the book, containing more than 30 procedures that simplify user input-output, numeric processing, disk and file handling, and string handling. In the beginning stages of the course, students can use this library to enhance their programs. Later, they can create their own procedures and add them to the library. Students are given the complete source code for the 16-bit and 32-bit link libraries.

Programming Logic. Two chapters emphasize boolean logic and bit-level manipulation. A conscious attempt is made to relate high-level programming logic to the low-level details of the machine. This helps students to create more efficient implementations and to better understand how language compilers generate object code.

Hardware and Operating System Concepts. The first two chapters introduce basic hardware and data representation concepts, including binary numbers, CPU architecture, status flags, and memory mapping. A survey of the computer's ha...

 Editorial Reviews

Excerpt. © Reprinted by permission. All rights reserved.

Assembly Language for Intel-Based Computers, Fourth Edition is based on the Intel IA-32 Processor architecture, seen from a programmer's point of view. It is appropriate as a text in the following types of college courses for computer science majors:

·         {C}{C}{C}Assembly Language Programming

·         {C}{C}{C}Fundamentals of Computer Systems

·         {C}{C}{C}Fundamentals of Computer Architecture

Although this book was originally designed as a programming textbook for community college students, it has gradually developed into much more. Currently, many universities use the book for their introductory computer architecture courses. At Florida International University, for example, this book is used in a course named Fundamentals of Computer Systems, which leads to a more comprehensive course in Computer Architecture.

The present edition includes topics that lead naturally into subsequent courses in computer architecture, operating systems, and compiler writing:

·         {C}{C}{C}Virtual machine concept

·         {C}{C}{C}Elementary boolean operations

·         {C}{C}{C}Instruction execution cycle

·         {C}{C}{C}Memory access using clock cycles

·         {C}{C}{C}Interrupts and polling

·         {C}{C}{C}Multi-stage pipeline

·         {C}{C}{C}Superscalar architecture

·         {C}{C}{C}Multitasking

·         {C}{C}{C}Loading and executing programs

·         {C}{C}{C}Floating-point binary representation

Other topics relate specifically to Intel IA-32 architecture, using information gained from its manuals:

·         {C}{C}{C}IA-32 Protected Memory addressing and paging

·         {C}{C}{C}Memory segmentation in Real-address mode

·         {C}{C}{C}Interrupt handling

·         {C}{C}{C}Direct hardware I/O

·         {C}{C}{C}Instruction encoding

Certain examples presented in the book lend themselves to courses that occur later in a computer science curriculum:

·         {C}{C}{C}Searching and sorting algorithms

·         {C}{C}{C}High-level language structures

·         {C}{C}{C}Finite-state machines

·         {C}{C}{C}Code optimization examples

There are a number of new features in this edition that relate to programming:

·         {C}{C}{C}A more comprehensive and logical explanation of data definition.

·         {C}{C}{C}A more careful explanation of addressing modes.

·         {C}{C}{C}A simplified link library that requires fewer input parameters for nearly all procedures. There are new procedures to dump the CPU registers and sections of memory, as well as a delay timer.

·         {C}{C}{C}An explanation and demonstration of top-down program design.

·         {C}{C}{C}Use of flowcharts as code-generation tools.

·         {C}{C}{C}Even more thorough coverage of assembly language directives, macros, and operators. For example, the PROC, PROTO, and INVOKE directives are thoroughly explained and demonstrated.

·         {C}{C}{C}More complete coverage of structures, including nested structures and arrays of structures.

·         {C}{C}{C}Block-structured IF, WHILE, and REPEAT statements (an advanced feature of MASM).

·         {C}{C}{C}Introduction to video graphics, using both BIOS and direct-memory mapping techniques.

·         {C}{C}{C}Mouse programming.

·         {C}{C}{C}Win32 Console programming, using calls to the Kernel32 Windows library.

·         {C}{C}{C}More array manipulation examples.

Still a Programming Book. It is important to note that this book is still focused on its original mission: to teach students how to write and debug programs at the machine level. It will never replace a complete book on computer architecture, but it does give students the first-hand experience of writing software in an environment that teaches them how the computer really works. The value of this cannot be underestimated, because they will retain a great deal more theoretical knowledge by having immediate contact with the machine. In an engineering course, students construct prototypes; in a software course, students write programs. In both cases, they have a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.

Real Mode and Protected Mode. Many professors have indicated a desire to move to 32-bit programming, using Intel's protected memory model. This edition primarily emphasizes 32-bit Protected mode, but it still has three chapters devoted exclusively to Real-mode programming. For example, there is an entire chapter on BIOS programming for the keyboard, video display (including graphics), and mouse. There is another chapter exclusively on MS-DOS programming using interrupt (function) calls. It is very beneficial for students to have some experience programming directly for firmware and hardware.

The examples in the first part of the book are nearly all presented as 32-bit text-oriented applications running in Protected mode using the flat memory model. This is extremely straightforward. No longer do students have to deal with segment-offset addressing. There are specially marked paragraphs and popup boxes that note the small differences between Protected mode and Real-mode programming. Most of the differences are hidden away in the book's two link libraries.

Link Libraries. There are two versions of the link library that students use for basic input-output in this book. The 32-bit version (Irvine32.lib) works in Win32 Console mode, under any version of MS-Windows. The 16-bit version (Irvinel6.lib) works under MS-DOS, MS-Windows, and a Linux DOS emulator. In later chapters, all the functions in these two libraries are exposed, and readers can modify the libraries as they wish. It is important to realize that the link libraries are there only for convenience, not to prevent students from learning how to program input-output themselves.

Included Software and Examples. All the example programs have been tested with the Microsoft Macro Assembler Version 6.15. For the most part, the programs will assemble with Borland TASM 4.0 and 5.0, but there are some features that Borland does not fully support.

Web Site Information. Updates and corrections to this book may be found at the book's Web site, including additional programming projects for professors to assign at the ends of chapters.

If for some reason you cannot access this site, information about the book and a link to its current Web site can be found by searching for the book title or for the full author name "Kip Irvine." The author's e-mail address is kip@nuvisionmiami.com

Overall Goals

Each of the following goals of this book is designed to broaden the student's interest and knowledge in topics related to assembly language:

·         {C}{C}{C}The Intel IA-32 processor architecture and programming

·         {C}{C}{C}Assembly language directives, macros, operators, and program structure

·         {C}{C}{C}Programming methodology, showing how to use assembly language to create both system-level software tools and application programs

·         {C}{C}{C}Computer hardware manipulation

·         {C}{C}{C}Interaction between assembly language programs, the operating system, and other application programs

One of my goals is to help students approach programming problems with a machine-level mind set. It is important to think of the CPU as an interactive tool, and to learn to monitor each of its actions as directly as possible. A debugger is a programmer's best friend, not only for catching errors, but as an educational tool that teaches about the CPU and operating system. I encourage students to look beneath the surface of high-level languages, and to realize that most programming languages are designed to be portable and, therefore, independent of their host machines.

In addition to the short examples, Assembly Language for Intel-Based Computers contains more than 115 ready-to-run programs that demonstrate instructions or ideas as they are presented in the text. Reference materials, such as guides to MS-DOS interrupts and instruction mnemonics, are available at the end of the book. There is a comprehensive link library that makes the user interface much more accessible for students writing their first programs. The macro library included with the book may also provide inspiration for further development by professors and students.

Required Background. The reader should already be able to program confidently in at least one other programming language, preferably Pascal, Java, C, or C++. One chapter goes into C++ interfacing in some depth, so it is very helpful to have a compiler on hand. I have used this book in the classroom with majors in both computer science and management information systems, and it has been used elsewhere in engineering courses. I used Microsoft Visual C++ 6.0 and Borland C++ 5.0 for the examples that deal with high-level language interfacing.

Features

Complete Program Listings. A companion CD-ROM contains all the source code from the examples in this book. Additional listings are available on the author's Web page. An extensive link library is supplied with the book, containing more than 30 procedures that simplify user input-output, numeric processing, disk and file handling, and string handling. In the beginning stages of the course, students can use this library to enhance their programs. Later, they can create their own procedures and add them to the library. Students are given the complete source code for the 16-bit and 32-bit link libraries.

Programming Logic. Two chapters emphasize boolean logic and bit-level manipulation. A conscious attempt is made to relate high-level programming logic to the low-level details of the machine. This helps students to create more efficient implementations and to better understand how language compilers generate object code.

Hardware and Operating System Concepts. The first two chapters introduce basic hardware and data representation concepts, including binary numbers, CPU architecture, status flags, and memory mapping. A survey of the computer's ha...

 Editorial Reviews

Excerpt. © Reprinted by permission. All rights reserved.

 

 

Assembly Language for Intel-Based Computers, Fourth Edition is based on the Intel IA-32 Processor architecture, seen from a programmer's point of view. It is appropriate as a text in the following types of college courses for computer science majors:

  • Assembly Language Programming
  • Fundamentals of Computer Systems
  • Fundamentals of Computer Architecture

Although this book was originally designed as a programming textbook for community college students, it has gradually developed into much more. Currently, many universities use the book for their introductory computer architecture courses. At Florida International University, for example, this book is used in a course named Fundamentals of Computer Systems, which leads to a more comprehensive course in Computer Architecture.

The present edition includes topics that lead naturally into subsequent courses in computer architecture, operating systems, and compiler writing:

  • Virtual machine concept
  • Elementary boolean operations
  • Instruction execution cycle
  • Memory access using clock cycles
  • Interrupts and polling
  • Multi-stage pipeline
  • Superscalar architecture
  • Multitasking
  • Loading and executing programs
  • Floating-point binary representation

Other topics relate specifically to Intel IA-32 architecture, using information gained from its manuals:

  • IA-32 Protected Memory addressing and paging
  • Memory segmentation in Real-address mode
  • Interrupt handling
  • Direct hardware I/O
  • Instruction encoding

Certain examples presented in the book lend themselves to courses that occur later in a computer science curriculum:

  • Searching and sorting algorithms
  • High-level language structures
  • Finite-state machines
  • Code optimization examples

There are a number of new features in this edition that relate to programming:

  • A more comprehensive and logical explanation of data definition.
  • A more careful explanation of addressing modes.
  • A simplified link library that requires fewer input parameters for nearly all procedures. There are new procedures to dump the CPU registers and sections of memory, as well as a delay timer.
  • An explanation and demonstration of top-down program design.
  • Use of flowcharts as code-generation tools.
  • Even more thorough coverage of assembly language directives, macros, and operators. For example, the PROC, PROTO, and INVOKE directives are thoroughly explained and demonstrated.
  • More complete coverage of structures, including nested structures and arrays of structures.
  • Block-structured IF, WHILE, and REPEAT statements (an advanced feature of MASM).
  • Introduction to video graphics, using both BIOS and direct-memory mapping techniques.
  • Mouse programming.
  • Win32 Console programming, using calls to the Kernel32 Windows library.
  • More array manipulation examples.

Still a Programming Book. It is important to note that this book is still focused on its original mission: to teach students how to write and debug programs at the machine level. It will never replace a complete book on computer architecture, but it does give students the first-hand experience of writing software in an environment that teaches them how the computer really works. The value of this cannot be underestimated, because they will retain a great deal more theoretical knowledge by having immediate contact with the machine. In an engineering course, students construct prototypes; in a software course, students write programs. In both cases, they have a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.

Real Mode and Protected Mode. Many professors have indicated a desire to move to 32-bit programming, using Intel's protected memory model. This edition primarily emphasizes 32-bit Protected mode, but it still has three chapters devoted exclusively to Real-mode programming. For example, there is an entire chapter on BIOS programming for the keyboard, video display (including graphics), and mouse. There is another chapter exclusively on MS-DOS programming using interrupt (function) calls. It is very beneficial for students to have some experience programming directly for firmware and hardware.

The examples in the first part of the book are nearly all presented as 32-bit text-oriented applications running in Protected mode using the flat memory model. This is extremely straightforward. No longer do students have to deal with segment-offset addressing. There are specially marked paragraphs and popup boxes that note the small differences between Protected mode and Real-mode programming. Most of the differences are hidden away in the book's two link libraries.

Link Libraries. There are two versions of the link library that students use for basic input-output in this book. The 32-bit version (Irvine32.lib) works in Win32 Console mode, under any version of MS-Windows. The 16-bit version (Irvinel6.lib) works under MS-DOS, MS-Windows, and a Linux DOS emulator. In later chapters, all the functions in these two libraries are exposed, and readers can modify the libraries as they wish. It is important to realize that the link libraries are there only for convenience, not to prevent students from learning how to program input-output themselves.

Included Software and Examples. All the example programs have been tested with the Microsoft Macro Assembler Version 6.15. For the most part, the programs will assemble with Borland TASM 4.0 and 5.0, but there are some features that Borland does not fully support.

Web Site Information. Updates and corrections to this book may be found at the book's Web site, including additional programming projects for professors to assign at the ends of chapters.

If for some reason you cannot access this site, information about the book and a link to its current Web site can be found by searching for the book title or for the full author name "Kip Irvine." The author's e-mail address is kip@nuvisionmiami.com

Overall Goals

 

 

Each of the following goals of this book is designed to broaden the student's interest and knowledge in topics related to assembly language:

  • The Intel IA-32 processor architecture and programming
  • Assembly language directives, macros, operators, and program structure
  • Programming methodology, showing how to use assembly language to create both system-level software tools and application programs
  • Computer hardware manipulation
  • Interaction between assembly language programs, the operating system, and other application programs

One of my goals is to help students approach programming problems with a machine-level mind set. It is important to think of the CPU as an interactive tool, and to learn to monitor each of its actions as directly as possible. A debugger is a programmer's best friend, not only for catching errors, but as an educational tool that teaches about the CPU and operating system. I encourage students to look beneath the surface of high-level languages, and to realize that most programming languages are designed to be portable and, therefore, independent of their host machines.

In addition to the short examples, Assembly Language for Intel-Based Computers contains more than 115 ready-to-run programs that demonstrate instructions or ideas as they are presented in the text. Reference materials, such as guides to MS-DOS interrupts and instruction mnemonics, are available at the end of the book. There is a comprehensive link library that makes the user interface much more accessible for students writing their first programs. The macro library included with the book may also provide inspiration for further development by professors and students.

Required Background. The reader should already be able to program confidently in at least one other programming language, preferably Pascal, Java, C, or C++. One chapter goes into C++ interfacing in some depth, so it is very helpful to have a compiler on hand. I have used this book in the classroom with majors in both computer science and management information systems, and it has been used elsewhere in engineering courses. I used Microsoft Visual C++ 6.0 and Borland C++ 5.0 for the examples that deal with high-level language interfacing.

Features

 

 

Complete Program Listings. A companion CD-ROM contains all the source code from the examples in this book. Additional listings are available on the author's Web page. An extensive link library is supplied with the book, containing more than 30 procedures that simplify user input-output, numeric processing, disk and file handling, and string handling. In the beginning stages of the course, students can use this library to enhance their programs. Later, they can create their own procedures and add them to the library. Students are given the complete source code for the 16-bit and 32-bit link libraries.

Programming Logic. Two chapters emphasize boolean logic and bit-level manipulation. A conscious attempt is made to relate high-level programming logic to the low-level details of the machine. This helps students to create more efficient implementations and to better understand how language compilers generate object code.

Hardware and Operating System Concepts. The first two chapters introduce basic hardware and data representation concepts, including binary numbers, CPU architecture, status flags, and memory mapping. A survey of the computer's ha...

Editorial Reviews

Excerpt. © Reprinted by permission. All rights reserved.

Assembly Language for Intel-Based Computers, Fourth Edition is based on the Intel IA-32 Processor architecture, seen from a programmer's point of view. It is appropriate as a text in the following types of college courses for computer science majors:

·         {C}{C}{C}{C}Assembly Language Programming

·         {C}{C}{C}{C}Fundamentals of Computer Systems

·         {C}{C}{C}{C}Fundamentals of Computer Architecture

Although this book was originally designed as a programming textbook for community college students, it has gradually developed into much more. Currently, many universities use the book for their introductory computer architecture courses. At Florida International University, for example, this book is used in a course named Fundamentals of Computer Systems, which leads to a more comprehensive course in Computer Architecture.

The present edition includes topics that lead naturally into subsequent courses in computer architecture, operating systems, and compiler writing:

·         {C}{C}{C}{C}Virtual machine concept

·         {C}{C}{C}{C}Elementary boolean operations

·         {C}{C}{C}{C}Instruction execution cycle

·         {C}{C}{C}{C}Memory access using clock cycles

·         {C}{C}{C}{C}Interrupts and polling

·         {C}{C}{C}{C}Multi-stage pipeline

·         {C}{C}{C}{C}Superscalar architecture

·         {C}{C}{C}{C}Multitasking

·         {C}{C}{C}{C}Loading and executing programs

·         {C}{C}{C}{C}Floating-point binary representation

Other topics relate specifically to Intel IA-32 architecture, using information gained from its manuals:

·         {C}{C}{C}{C}IA-32 Protected Memory addressing and paging

·         {C}{C}{C}{C}Memory segmentation in Real-address mode

·         {C}{C}{C}{C}Interrupt handling

·         {C}{C}{C}{C}Direct hardware I/O

·         {C}{C}{C}{C}Instruction encoding

Certain examples presented in the book lend themselves to courses that occur later in a computer science curriculum:

·         {C}{C}{C}{C}Searching and sorting algorithms

·         {C}{C}{C}{C}High-level language structures

·         {C}{C}{C}{C}Finite-state machines

·         {C}{C}{C}{C}Code optimization examples

There are a number of new features in this edition that relate to programming:

·         {C}{C}{C}{C}A more comprehensive and logical explanation of data definition.

·         {C}{C}{C}{C}A more careful explanation of addressing modes.

·         {C}{C}{C}{C}A simplified link library that requires fewer input parameters for nearly all procedures. There are new procedures to dump the CPU registers and sections of memory, as well as a delay timer.

·         {C}{C}{C}{C}An explanation and demonstration of top-down program design.

·         {C}{C}{C}{C}Use of flowcharts as code-generation tools.

·         {C}{C}{C}{C}Even more thorough coverage of assembly language directives, macros, and operators. For example, the PROC, PROTO, and INVOKE directives are thoroughly explained and demonstrated.

·         {C}{C}{C}{C}More complete coverage of structures, including nested structures and arrays of structures.

·         {C}{C}{C}{C}Block-structured IF, WHILE, and REPEAT statements (an advanced feature of MASM).

·         {C}{C}{C}{C}Introduction to video graphics, using both BIOS and direct-memory mapping techniques.

·         {C}{C}{C}{C}Mouse programming.

·         {C}{C}{C}{C}Win32 Console programming, using calls to the Kernel32 Windows library.

·         {C}{C}{C}{C}More array manipulation examples.

Still a Programming Book. It is important to note that this book is still focused on its original mission: to teach students how to write and debug programs at the machine level. It will never replace a complete book on computer architecture, but it does give students the first-hand experience of writing software in an environment that teaches them how the computer really works. The value of this cannot be underestimated, because they will retain a great deal more theoretical knowledge by having immediate contact with the machine. In an engineering course, students construct prototypes; in a software course, students write programs. In both cases, they have a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.

Real Mode and Protected Mode. Many professors have indicated a desire to move to 32-bit programming, using Intel's protected memory model. This edition primarily emphasizes 32-bit Protected mode, but it still has three chapters devoted exclusively to Real-mode programming. For example, there is an entire chapter on BIOS programming for the keyboard, video display (including graphics), and mouse. There is another chapter exclusively on MS-DOS programming using interrupt (function) calls. It is very beneficial for students to have some experience programming directly for firmware and hardware.

The examples in the first part of the book are nearly all presented as 32-bit text-oriented applications running in Protected mode using the flat memory model. This is extremely straightforward. No longer do students have to deal with segment-offset addressing. There are specially marked paragraphs and popup boxes that note the small differences between Protected mode and Real-mode programming. Most of the differences are hidden away in the book's two link libraries.

Link Libraries. There are two versions of the link library that students use for basic input-output in this book. The 32-bit version (Irvine32.lib) works in Win32 Console mode, under any version of MS-Windows. The 16-bit version (Irvinel6.lib) works under MS-DOS, MS-Windows, and a Linux DOS emulator. In later chapters, all the functions in these two libraries are exposed, and readers can modify the libraries as they wish. It is important to realize that the link libraries are there only for convenience, not to prevent students from learning how to program input-output themselves.

Included Software and Examples. All the example programs have been tested with the Microsoft Macro Assembler Version 6.15. For the most part, the programs will assemble with Borland TASM 4.0 and 5.0, but there are some features that Borland does not fully support.

Web Site Information. Updates and corrections to this book may be found at the book's Web site, including additional programming projects for professors to assign at the ends of chapters.

If for some reason you cannot access this site, information about the book and a link to its current Web site can be found by searching for the book title or for the full author name "Kip Irvine." The author's e-mail address is kip@nuvisionmiami.com

Overall Goals

Each of the following goals of this book is designed to broaden the student's interest and knowledge in topics related to assembly language:

·         {C}{C}{C}{C}The Intel IA-32 processor architecture and programming

·         {C}{C}{C}{C}Assembly language directives, macros, operators, and program structure

·         {C}{C}{C}{C}Programming methodology, showing how to use assembly language to create both system-level software tools and application programs

·         {C}{C}{C}{C}Computer hardware manipulation

·         {C}{C}{C}{C}Interaction between assembly language programs, the operating system, and other application programs

One of my goals is to help students approach programming problems with a machine-level mind set. It is important to think of the CPU as an interactive tool, and to learn to monitor each of its actions as directly as possible. A debugger is a programmer's best friend, not only for catching errors, but as an educational tool that teaches about the CPU and operating system. I encourage students to look beneath the surface of high-level languages, and to realize that most programming languages are designed to be portable and, therefore, independent of their host machines.

In addition to the short examples, Assembly Language for Intel-Based Computers contains more than 115 ready-to-run programs that demonstrate instructions or ideas as they are presented in the text. Reference materials, such as guides to MS-DOS interrupts and instruction mnemonics, are available at the end of the book. There is a comprehensive link library that makes the user interface much more accessible for students writing their first programs. The macro library included with the book may also provide inspiration for further development by professors and students.

Required Background. The reader should already be able to program confidently in at least one other programming language, preferably Pascal, Java, C, or C++. One chapter goes into C++ interfacing in some depth, so it is very helpful to have a compiler on hand. I have used this book in the classroom with majors in both computer science and management information systems, and it has been used elsewhere in engineering courses. I used Microsoft Visual C++ 6.0 and Borland C++ 5.0 for the examples that deal with high-level language interfacing.

Features

Complete Program Listings. A companion CD-ROM contains all the source code from the examples in this book. Additional listings are available on the author's Web page. An extensive link library is supplied with the book, containing more than 30 procedures that simplify user input-output, numeric processing, disk and file handling, and string handling. In the beginning stages of the course, students can use this library to enhance their programs. Later, they can create their own procedures and add them to the library. Students are given the complete source code for the 16-bit and 32-bit link libraries.

Programming Logic. Two chapters emphasize boolean logic and bit-level manipulation. A conscious attempt is made to relate high-level programming logic to the low-level details of the machine. This helps students to create more efficient implementations and to better understand how language compilers generate object code.

Hardware and Operating System Concepts. The first two chapters introduce basic hardware and data representation concepts, including binary numbers, CPU architecture, status flags, and memory mapping. A survey of the computer's ha...

 

 

Editorial Reviews

Excerpt. © Reprinted by permission. All rights reserved.

 

Assembly Language for Intel-Based Computers, Fourth Edition is based on the Intel IA-32 Processor architecture, seen from a programmer's point of view. It is appropriate as a text in the following types of college courses for computer science majors:

  • Assembly Language Programming
  • Fundamentals of Computer Systems
  • Fundamentals of Computer Architecture

Although this book was originally designed as a programming textbook for community college students, it has gradually developed into much more. Currently, many universities use the book for their introductory computer architecture courses. At Florida International University, for example, this book is used in a course named Fundamentals of Computer Systems, which leads to a more comprehensive course in Computer Architecture.

The present edition includes topics that lead naturally into subsequent courses in computer architecture, operating systems, and compiler writing:

  • Virtual machine concept
  • Elementary boolean operations
  • Instruction execution cycle
  • Memory access using clock cycles
  • Interrupts and polling
  • Multi-stage pipeline
  • Superscalar architecture
  • Multitasking
  • Loading and executing programs
  • Floating-point binary representation

Other topics relate specifically to Intel IA-32 architecture, using information gained from its manuals:

  • IA-32 Protected Memory addressing and paging
  • Memory segmentation in Real-address mode
  • Interrupt handling
  • Direct hardware I/O
  • Instruction encoding

Certain examples presented in the book lend themselves to courses that occur later in a computer science curriculum:

  • Searching and sorting algorithms
  • High-level language structures
  • Finite-state machines
  • Code optimization examples

There are a number of new features in this edition that relate to programming:

  • A more comprehensive and logical explanation of data definition.
  • A more careful explanation of addressing modes.
  • A simplified link library that requires fewer input parameters for nearly all procedures. There are new procedures to dump the CPU registers and sections of memory, as well as a delay timer.
  • An explanation and demonstration of top-down program design.
  • Use of flowcharts as code-generation tools.
  • Even more thorough coverage of assembly language directives, macros, and operators. For example, the PROC, PROTO, and INVOKE directives are thoroughly explained and demonstrated.
  • More complete coverage of structures, including nested structures and arrays of structures.
  • Block-structured IF, WHILE, and REPEAT statements (an advanced feature of MASM).
  • Introduction to video graphics, using both BIOS and direct-memory mapping techniques.
  • Mouse programming.
  • Win32 Console programming, using calls to the Kernel32 Windows library.
  • More array manipulation examples.

Still a Programming Book. It is important to note that this book is still focused on its original mission: to teach students how to write and debug programs at the machine level. It will never replace a complete book on computer architecture, but it does give students the first-hand experience of writing software in an environment that teaches them how the computer really works. The value of this cannot be underestimated, because they will retain a great deal more theoretical knowledge by having immediate contact with the machine. In an engineering course, students construct prototypes; in a software course, students write programs. In both cases, they have a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.

Real Mode and Protected Mode. Many professors have indicated a desire to move to 32-bit programming, using Intel's protected memory model. This edition primarily emphasizes 32-bit Protected mode, but it still has three chapters devoted exclusively to Real-mode programming. For example, there is an entire chapter on BIOS programming for the keyboard, video display (including graphics), and mouse. There is another chapter exclusively on MS-DOS programming using interrupt (function) calls. It is very beneficial for students to have some experience programming directly for firmware and hardware.

The examples in the first part of the book are nearly all presented as 32-bit text-oriented applications running in Protected mode using the flat memory model. This is extremely straightforward. No longer do students have to deal with segment-offset addressing. There are specially marked paragraphs and popup boxes that note the small differences between Protected mode and Real-mode programming. Most of the differences are hidden away in the book's two link libraries.

Link Libraries. There are two versions of the link library that students use for basic input-output in this book. The 32-bit version (Irvine32.lib) works in Win32 Console mode, under any version of MS-Windows. The 16-bit version (Irvinel6.lib) works under MS-DOS, MS-Windows, and a Linux DOS emulator. In later chapters, all the functions in these two libraries are exposed, and readers can modify the libraries as they wish. It is important to realize that the link libraries are there only for convenience, not to prevent students from learning how to program input-output themselves.

Included Software and Examples. All the example programs have been tested with the Microsoft Macro Assembler Version 6.15. For the most part, the programs will assemble with Borland TASM 4.0 and 5.0, but there are some features that Borland does not fully support.

Web Site Information. Updates and corrections to this book may be found at the book's Web site, including additional programming projects for professors to assign at the ends of chapters.

If for some reason you cannot access this site, information about the book and a link to its current Web site can be found by searching for the book title or for the full author name "Kip Irvine." The author's e-mail address is kip@nuvisionmiami.com

Overall Goals

Each of the following goals of this book is designed to broaden the student's interest and knowledge in topics related to assembly language:

  • The Intel IA-32 processor architecture and programming
  • Assembly language directives, macros, operators, and program structure
  • Programming methodology, showing how to use assembly language to create both system-level software tools and application programs
  • Computer hardware manipulation
  • Interaction between assembly language programs, the operating system, and other application programs

One of my goals is to help students approach programming problems with a machine-level mind set. It is important to think of the CPU as an interactive tool, and to learn to monitor each of its actions as directly as possible. A debugger is a programmer's best friend, not only for catching errors, but as an educational tool that teaches about the CPU and operating system. I encourage students to look beneath the surface of high-level languages, and to realize that most programming languages are designed to be portable and, therefore, independent of their host machines.

In addition to the short examples, Assembly Language for Intel-Based Computers contains more than 115 ready-to-run programs that demonstrate instructions or ideas as they are presented in the text. Reference materials, such as guides to MS-DOS interrupts and instruction mnemonics, are available at the end of the book. There is a comprehensive link library that makes the user interface much more accessible for students writing their first programs. The macro library included with the book may also provide inspiration for further development by professors and students.

Required Background. The reader should already be able to program confidently in at least one other programming language, preferably Pascal, Java, C, or C++. One chapter goes into C++ interfacing in some depth, so it is very helpful to have a compiler on hand. I have used this book in the classroom with majors in both computer science and management information systems, and it has been used elsewhere in engineering courses. I used Microsoft Visual C++ 6.0 and Borland C++ 5.0 for the examples that deal with high-level language interfacing.

Features

Complete Program Listings. A companion CD-ROM contains all the source code from the examples in this book. Additional listings are available on the author's Web page. An extensive link library is supplied with the book, containing more than 30 procedures that simplify user input-output, numeric processing, disk and file handling, and string handling. In the beginning stages of the course, students can use this library to enhance their programs. Later, they can create their own procedures and add them to the library. Students are given the complete source code for the 16-bit and 32-bit link libraries.

Programming Logic. Two chapters emphasize boolean logic and bit-level manipulation. A conscious attempt is made to relate high-level programming logic to the low-level details of the machine. This helps students to create more efficient implementations and to better understand how language compilers generate object code.

Hardware and Operating System Concepts. The first two chapters introduce basic hardware and data representation concepts, including binary numbers, CPU architecture, status flags, and memory mapping. A survey of the computer's ha...

 

منابع کتاب کتاب Assembly Language for Intel-Based Computers (4th Edition) Subsequent Edition

بررسی های سرمقاله

گزیده. © تجدید چاپ با اجازه. تمامی حقوق محفوظ است.

زبان اسمبلی برای کامپیوترهای مبتنی بر اینتل، نسخه چهارم بر اساس معماری پردازنده Intel IA-32 است که از دیدگاه یک برنامه نویس دیده می شود. به عنوان یک متن در انواع دوره های کالج زیر برای رشته های علوم کامپیوتر مناسب است:

  • برنامه نویسی به زبان اسمبلی
  • مبانی سیستم های کامپیوتری
  • مبانی معماری کامپیوتر

اگرچه این کتاب در ابتدا به عنوان یک کتاب درسی برنامه نویسی برای دانشجویان دانشگاه طراحی شده بود، اما به تدریج به موارد بسیار بیشتری تبدیل شد. در حال حاضر بسیاری از دانشگاه ها از این کتاب برای دوره های مقدماتی معماری کامپیوتر خود استفاده می کنند. به عنوان مثال، در دانشگاه بین المللی فلوریدا، این کتاب در دوره ای به نام مبانی سیستم های کامپیوتری استفاده می شود که منجر به دوره جامع تری در معماری کامپیوتر می شود.

نسخه حاضر شامل موضوعاتی است که به طور طبیعی به دوره های بعدی در معماری کامپیوتر، سیستم عامل ها و نوشتن کامپایلر منتهی می شود:

  • مفهوم ماشین مجازی
  • عملیات بولی ابتدایی
  • چرخه اجرای دستورالعمل
  • دسترسی به حافظه با استفاده از چرخه های ساعت
  • قطع و رای گیری
  • خط لوله چند مرحله ای
  • معماری سوپراسکالر
  • چند وظیفه ای
  • بارگذاری و اجرای برنامه ها
  • نمایش دودویی ممیز شناور

سایر موضوعات به طور خاص به معماری اینتل IA-32، با استفاده از اطلاعات به دست آمده از راهنماهای آن مربوط می شود:

  • آدرس دهی و صفحه بندی حافظه حفاظت شده IA-32
  • تقسیم بندی حافظه در حالت آدرس واقعی
  • وقفه در رسیدگی
  • ورودی/خروجی مستقیم سخت افزار
  • رمزگذاری دستورالعمل

نمونه‌های معینی که در کتاب ارائه شده‌اند، خود را به دوره‌هایی که بعداً در برنامه درسی علوم کامپیوتر رخ می‌دهند، می‌رسانند:

  • الگوریتم های جستجو و مرتب سازی
  • ساختارهای زبانی سطح بالا
  • ماشین های حالت محدود
  • نمونه های بهینه سازی کد

تعدادی ویژگی جدید در این نسخه وجود دارد که به برنامه نویسی مربوط می شود:

  • توضیح جامع تر و منطقی تر از تعریف داده ها.
  • توضیح دقیق تر در مورد حالت های آدرس دهی.
  • یک کتابخانه پیوند ساده که به پارامترهای ورودی کمتری برای تقریباً همه رویه ها نیاز دارد. رویه های جدیدی برای تخلیه رجیسترهای CPU و بخش های حافظه و همچنین تایمر تاخیر وجود دارد.
  • توضیح و نمایش طراحی برنامه از بالا به پایین.
  • استفاده از فلوچارت ها به عنوان ابزار تولید کد.
  • حتی پوشش کامل تر دستورالعمل ها، ماکروها و اپراتورهای زبان اسمبلی. به عنوان مثال، دستورالعمل های PROC، PROTO، و INVOKE به طور کامل توضیح داده شده و نشان داده شده است.
  • پوشش کامل تر سازه ها، از جمله ساختارهای تو در تو و آرایه های سازه ها.
  • دستورات IF، WHILE و REPEAT با ساختار بلوکی (یک ویژگی پیشرفته MASM).
  • مقدمه ای بر گرافیک ویدیویی، با استفاده از تکنیک های BIOS و نگاشت مستقیم حافظه.
  • برنامه نویسی موس
  • برنامه نویسی کنسول Win32، با استفاده از فراخوانی به کتابخانه Kernel32 Windows.
  • نمونه های بیشتر دستکاری آرایه.

هنوز کتاب برنامه نویسی. توجه به این نکته ضروری است که این کتاب همچنان بر مأموریت اصلی خود متمرکز است: آموزش به دانش آموزان نحوه نوشتن و اشکال زدایی برنامه ها در سطح ماشین. این کتاب هرگز جایگزین یک کتاب کامل در مورد معماری کامپیوتر نخواهد شد، اما تجربه دست اول نوشتن نرم افزار را در محیطی به دانش آموزان می دهد که به آنها یاد می دهد کامپیوتر واقعا چگونه کار می کند. ارزش این را نمی توان دست کم گرفت، زیرا آنها با داشتن تماس فوری با ماشین، دانش نظری بسیار بیشتری را حفظ خواهند کرد. در یک دوره مهندسی، دانش آموزان نمونه های اولیه را می سازند. در یک دوره نرم افزاری، دانش آموزان برنامه می نویسند. در هر دو مورد، آنها تجربه ای به یاد ماندنی دارند که به آنها اعتماد به نفس می دهد تا در هر محیط سیستم عامل/ماشین محور کار کنند.

حالت واقعی و حالت محافظت شده. بسیاری از اساتید تمایل به انتقال به برنامه نویسی 32 بیتی با استفاده از مدل حافظه محافظت شده اینتل را نشان داده اند. این نسخه در درجه اول بر حالت محافظت شده 32 بیتی تأکید دارد، اما هنوز هم سه فصل دارد که منحصراً به برنامه نویسی در حالت واقعی اختصاص دارد. به عنوان مثال، یک فصل کامل در مورد برنامه نویسی بایوس برای صفحه کلید، صفحه نمایش ویدیو (از جمله گرافیک)، و ماوس وجود دارد. فصل دیگری به طور انحصاری در مورد برنامه نویسی MS-DOS با استفاده از تماس های وقفه (تابع) وجود دارد. برای دانش آموزان بسیار سودمند است که به طور مستقیم برنامه نویسی را برای سیستم عامل و سخت افزار تجربه کنند.

نمونه‌های بخش اول کتاب تقریباً همه به‌عنوان برنامه‌های کاربردی متن‌گرا 32 بیتی ارائه شده‌اند که در حالت محافظت شده با استفاده از مدل حافظه تخت اجرا می‌شوند. این بسیار ساده است. دیگر نیازی نیست که دانش‌آموزان با آدرس‌دهی افست بخش سر و کار داشته باشند. پاراگراف ها و کادرهای بازشوی مشخص شده ای وجود دارد که تفاوت های کوچک بین برنامه نویسی Protected mode و Real-Mode را نشان می دهد. بیشتر تفاوت ها در دو کتابخانه پیوندی کتاب پنهان شده است.

پیوند کتابخانه ها دو نسخه از کتابخانه پیوند وجود دارد که دانش آموزان برای ورودی-خروجی اولیه در این کتاب استفاده می کنند. نسخه 32 بیتی ( Irvine32.lib ) در حالت کنسول Win32، تحت هر نسخه ای از MS-Windows کار می کند. نسخه 16 بیتی ( Irvinel6.lib ) تحت MS-DOS، MS-Windows و شبیه ساز Linux DOS کار می کند. در فصل‌های بعدی، تمام عملکردهای این دو کتابخانه در معرض دید قرار می‌گیرند و خوانندگان می‌توانند کتابخانه‌ها را به دلخواه خود تغییر دهند. توجه به این نکته مهم است که کتابخانه های پیوند فقط برای راحتی وجود دارند، نه اینکه مانع از یادگیری نحوه برنامه ریزی ورودی-خروجی توسط دانش آموزان شوند.

شامل نرم افزار و نمونه. همه برنامه های نمونه با Microsoft Macro Assembler نسخه 6.15 تست شده اند. در بیشتر موارد، برنامه ها با Borland TASM 4.0 و 5.0 مونتاژ می شوند، اما برخی از ویژگی ها وجود دارد که Borland به طور کامل از آنها پشتیبانی نمی کند.

اطلاعات وب سایت. به‌روزرسانی‌ها و اصلاحات این کتاب را می‌توانید در وب‌سایت کتاب پیدا کنید، از جمله پروژه‌های برنامه‌نویسی اضافی برای استادان که در انتهای فصل‌ها به آنها اختصاص دهند.

اگر به دلایلی نمی توانید به این سایت دسترسی پیدا کنید، اطلاعات مربوط به کتاب و پیوندی به وب سایت فعلی آن را می توان با جستجوی عنوان کتاب یا نام کامل نویسنده «کیپ ایروین» پیدا کرد. آدرس ایمیل نویسنده kip@nuvisionmiami.com است

اهداف کلی

هر یک از اهداف زیر این کتاب برای گسترش علاقه و دانش دانش آموزان در موضوعات مرتبط با زبان اسمبلی طراحی شده است:

  • معماری و برنامه نویسی پردازنده IA-32 اینتل
  • دستورات زبان اسمبلی، ماکروها، عملگرها و ساختار برنامه
  • روش برنامه نویسی، نشان می دهد که چگونه از زبان اسمبلی برای ایجاد ابزارهای نرم افزاری در سطح سیستم و برنامه های کاربردی استفاده شود.
  • دستکاری سخت افزار کامپیوتر
  • تعامل بین برنامه های زبان اسمبلی، سیستم عامل و سایر برنامه های کاربردی

یکی از اهداف من این است که به دانش‌آموزان کمک کنم تا با یک مجموعه ذهنی در سطح ماشین به مسائل برنامه‌نویسی نزدیک شوند. مهم است که CPU را به عنوان یک ابزار تعاملی در نظر بگیرید و یاد بگیرید که هر یک از اقدامات آن را تا حد امکان مستقیماً نظارت کنید. دیباگر بهترین دوست یک برنامه نویس است، نه تنها برای کشف خطاها، بلکه به عنوان یک ابزار آموزشی که در مورد CPU و سیستم عامل آموزش می دهد. من دانش‌آموزان را تشویق می‌کنم که به زیر سطح زبان‌های سطح بالا نگاه کنند و متوجه شوند که بیشتر زبان‌های برنامه‌نویسی به گونه‌ای طراحی شده‌اند که قابل حمل باشند و بنابراین مستقل از ماشین‌های میزبان خود باشند.

علاوه بر مثال‌های کوتاه، زبان اسمبلی برای رایانه‌های مبتنی بر اینتل شامل بیش از 115 برنامه آماده اجرا می‌شود که دستورالعمل‌ها یا ایده‌هایی را همانطور که در متن ارائه می‌شوند نشان می‌دهند. مواد مرجع، مانند راهنماهای وقفه های MS-DOS و یادداشت های دستورالعمل، در انتهای کتاب موجود است. یک کتابخانه پیوند جامع وجود دارد که رابط کاربری را برای دانش آموزانی که اولین برنامه های خود را می نویسند بسیار در دسترس تر می کند. کتابخانه کلان همراه با کتاب نیز ممکن است الهام بخش اساتید و دانشجویان برای توسعه بیشتر باشد.

پس زمینه مورد نیاز خواننده باید بتواند با اطمینان حداقل به یک زبان برنامه نویسی دیگر، ترجیحاً پاسکال، جاوا، سی یا سی پلاس پلاس برنامه نویسی کند. یک فصل به رابط C++ تا حدودی می‌پردازد، بنابراین داشتن یک کامپایلر در دسترس بسیار مفید است. من از این کتاب در کلاس درس با گرایش های علوم کامپیوتر و سیستم های اطلاعات مدیریت استفاده کرده ام و در جاهای دیگر در دروس مهندسی استفاده شده است. من از Microsoft Visual C++ 6.0 و Borland C++ 5.0 برای نمونه هایی که با رابط زبان سطح بالا سروکار دارند، استفاده کردم.

امکانات

لیست کامل برنامه یک CD-ROM همراه شامل تمام کد منبع نمونه‌های این کتاب است. لیست های اضافی در صفحه وب نویسنده موجود است. یک کتابخانه پیوند گسترده همراه با کتاب ارائه شده است که شامل بیش از 30 رویه است که ورودی-خروجی کاربر، پردازش عددی، مدیریت دیسک و فایل و مدیریت رشته را ساده می‌کند. در مراحل ابتدایی دوره، دانشجویان می توانند از این کتابخانه برای ارتقای برنامه های خود استفاده کنند. بعداً آنها می توانند رویه های خود را ایجاد کرده و به کتابخانه اضافه کنند. کد منبع کامل کتابخانه های پیوند 16 بیتی و 32 بیتی به دانش آموزان داده می شود.

منطق برنامه نویسی دو فصل بر منطق بولی و دستکاری سطح بیت تاکید دارند. تلاش آگاهانه ای برای مرتبط کردن منطق برنامه نویسی سطح بالا با جزئیات سطح پایین ماشین انجام می شود. این به دانش‌آموزان کمک می‌کند تا پیاده‌سازی‌های کارآمدتری ایجاد کنند و درک بهتری داشته باشند که چگونه کامپایلرهای زبان کد شی تولید می‌کنند.

مفاهیم سخت افزار و سیستم عامل دو فصل اول مفاهیم پایه ای سخت افزار و نمایش داده ها، از جمله اعداد باینری، معماری CPU، پرچم های وضعیت و نگاشت حافظه را معرفی می کند. بررسی سطح کامپیوتر ...

 

نظرات کاربران درباره کتاب Assembly Language for Intel-Based Computers (4th Edition) Subsequent Edition

نظری در مورد این محصول توسط کاربران ارسال نگردیده است.
اولین نفری باشید که در مورد کتاب Assembly Language for Intel-Based Computers (4th Edition) Subsequent Edition نظر می دهد.

ارسال نظر درباره کتاب Assembly Language for Intel-Based Computers (4th Edition) Subsequent Edition

لطفا توجه داشته باشید که ایمیل شما منتشر نخواهد شد.

بر اساس سلیقه شما...

  Publisher ‏ : ‎ Independently published (November 2, 2020) ...
2,870,000 ریال
  Product details Publisher ‏ : ‎  Packt Publi ...
5,460,000 ریال

codebazan

طراحی و اجرا: فروشگاه ساز سبدخرید