SM Mazidi M.A. - 80x86 IBM PC and Compatible Computers (Volumes I and II). Assembly Language,...

1020

Transcript of SM Mazidi M.A. - 80x86 IBM PC and Compatible Computers (Volumes I and II). Assembly Language,...

  • HomeContentsPreface0 Introduction to Computing0.1 Numbering and Coding Systems0.2 Inside the Computer0.3 Brief History of the CPUAnswers to Review Questions

    1 The 80x86 Microprocessor1.1 Brief History of the 80x86 Family1.2 Inside the 8088/80861.3 Introduction to Assembly Programming1.4 Introduction to Program Segments1.5 More about Segments in the 80x861.6 80x86 Addressing ModesAnswers to Review Questions

    2 Assembly Language Programming2.1 Directives and a simple Program2.2 Assemble, Link, and Run a Program2.3 More Sample Programs2.4 Control Transfer Instructions2.5 Data Types and Data Definitions2.6 Full Segment Definition2.7Exe vs. COM Files Answers to Review Questions

    3 Arithmetic and Logic Instructions and Programs3.1 Unsigned Addition and Subtraction3.2 Unsigned Multiplication and Division3.3 Logic Instructions and Sample Programs3.4 BCD and ASCII Operands and Instructions3.5 Rotate Instructions3.6 Bitwise Operation in the C LanguageAnswers to Review Questions

    4 BIOS and DOS Programming in Assembly and C4.1 BIOS INT 10H Programming4.2 DOS INTERRUPT 21H4.3 INT 16H Keyboard Programming4.4 Interrupt Programming with CAnswers to Review Questions

    5 Macros and the Mouse5.1 What is a Macro and how is it used ?5.2 Mouse Programming with Interrupt 33HAnswers to Review Questions

    6 Signed Numbers, Strings, and Tables6.1 Signed Number Arithmetic Operations6.2 String and Table OperationsAnswers to Review Questions

    7 Modules: Modular and C Programing7.1 Writing and Linking Modules7.2 Some very useful Modules7.3 Passing Parameters among Modules7.4 Combining Assembly Language and C ProgramsAnswers to Review Questions

    8 32-Bit Programming for 386 and 486 Machines8.1 80386/80486 Machines in Real Mode8.2 Some Simple 386/486 Programs8.3 80x86 Performance ComparisonAnswers to Review Questions

    9 8088, 80286 Microprocesors and ISA Bus9.1 8088 Microprocessor9.2 8284 and 8288 Supporting Chips9.3 8-Bit Section of ISA Bus9.4 80286 Microprocessor9.5 16-Bit ISA BusAnswers to Review Questions

    10 Memory and Memory Interfacing10.1 Semiconductor Memory Fundamentals10.2 Memory Address Decoding10.3 IBM PC Memory Map10.4 Data Integrity in RAM and ROM10.5 16-Bit Memory Interfacing10.6 ISA Bus Memory InterfacingAnswers to Review Questions

    11 I/O and the 8255; ISA Bus Interfacing11.1 8088 Input/Output Instructions11.2 I/O Address Decoding and Design11.3 I/O Address Map of X86 PCs11.4 8255 PPI Chip11.5 PC Interface Trainer and Bus Extender11.6 I/O Programming with C/C++ and VB11.7 8-Bit and 16-Bit I/O Timing in ISA BusAnswers to Review Questions

    12 Interfacing to the PC: LCD, Motor,ADC, and Sensor 12.1 Interfacing an LCD to the PC12.2 Interfacing a Stepper Motor to the PC12.3 Interfacing DAC to the PC12.4 Interfacing ADC and Sensors to the PCAnswers to Review Questions

    13 8253/54 Timer and Music13.1 8253/54 Timer Description and Initialization13.2 IBM PC 8253/54 Timer Connections and Programming13.3 Generating Music on the IBM PC13.4 Shape of 8253/54 OutputsAnswers to Review Questions

    14 Interrupts and the 8259 Chip14.1 8088/86 Interrupts14.2 IBM PC and MS DOS Assignment of Interrupts14.3 8259 Programmable Interrupt Controller14.4 Use of the 8259 Chip in the IBM PC/XT14.5 Interrupts on 80286 and higher 80x86 PCsAnswers to Review Questions

    15 Direct Memory Accessing; The 8237 DMA Chip15.1 Concept of DMA15.2 8237 DMA Chip Programming15.3 8237 DMA Interfacing in the IBM PC/XT15.4 Refreshing DRAM Using Channel 0 of the 823715.5 DMA in 80x86-based PC AT-Type ComputersAnswers to Review Questions

    16 Video and Video Adapters16.1 Principles of Monitors and Video Adapters16.2 Video Adapters and Text Mode Programming16.3 Text Mode Programming using INT 10H16.4 Graphics and Graphics ProgrammingAnswers to Review Questions

    17 Serial Data Communication and the 16450/8250/51 Chips17.1 Basics of Serial Communication17.2 Accessing IBM PC COM Ports Using DOS and BIOS17.3 Interfacing the NS8250/16450 UART in the IBM PC17.4 Intel 8251 USART and Synchronous CommunicationAnswers to Review Questions

    18 Keyboard and Printer Interfacing18.1 Interfacing the Keyboard to the CPU18.2 PC Keyboard Interfacing and Programming18.3 Printer and Printer Interfacing in the IBM PC18.4 Bidirectional Data Bus in Parallel PortsAnswers to Review Questions

    19 Floppy Disks, Hard Disks, and Files19.1 Floppy Disk Organization19.2 Hard Disks19.3 Disk File ProgrammingAnswers to Review Questions

    20 The 80x87 Math Coprocessor20.1 Math Coprocessor and IEEE Floating-Point20.2 80x87 Instructions and Programming20.3 8087 Hardware Connections in the IBM PC/XT20.4 80x87 Instructions and TimingAnswers to Review Questions

    21 386 Microprocessor: Real vs. Protected Mode21.1 80386 in Real Mode21.2 80386: A Hardware View21.3 80386 Protected ModeAnswers to Review Questions

    22High-Speed Memory Interfacing and Cache 22.1 Memory Cycle Time of the 80x8622.2 Page, Static Column, and Nibble Mode DRAMs22.3 Cache Memory22.4 EDO, SDRAM, and RAMBUS MemoriesAnswers to Review Questions

    23 486, Pentium, Pentium Pro and MMX23.1 The 80486 Microprocessor23.2 Intel's Pentium23.3 RISC Architecture23.4 Pentium Pro Processor23.5 MMX Technology23.6 Processor Identification in Intel x86Answers to Review Questions

    24 MS DOS Structure, TSR, and Device Drivers24.1 MS DOS Structure24.2 TSR and Device DriversAnswers to Review Questions

    25 MS DOS Memory Management25.1 80x86 PC Memory Terminology and Concepts25.2 DOS Memory Management and Loading HighAnswers to Review Questions

    26 IC Technology and System Design Considerations26.1 Overview of IC Technology26.2 IC Interfacing and System Deisgn Considerations26.3 Data Integrity and Error Detection in DRAMAnswers to Review Questions

    27 ISA, PCI, and USB Buses27.1 ISA Buses27.2 PCI Local Buses27.3 USB PortAnswers to Review Questions

    28 Programming DOS, BIOS Hardware with C/C++28.1 BIOS and DOS Interrupt Programming with C28.2 Programming PC Hardware with C/C++Answers to Review Questions

    ADebug Programming A.1 Entering and Exiting DebugA.2 Examining and Altering teh Contents of RegistersA.3 Coding and Running Programs in DebugA.4 Data Manipulation in DebugA.5 Examining the Stack in DebugA.6 Examining/Altering the Flag Register in DebugA.7 Additional Debug Data Manipulation CommandsA.8 Loading and Writing Programs

    B 80x86 Instructions and TimingB.1 The 8086 Instruction SetB.2 Instruction Timing

    C Assembler Directives and Naming RulesC.1 80x86 Assembler DirectivesC.2 Rules for Labels and Reserved Names

    D DOS Interrupt 21H and 33H ListingD.1 DOS 21H InterruptsD.2 Mouse Interrupts 33H

    E BIOS InterruptsE.1 INT 10H Video Function CallsE.2 INT 11H - Equipment DeterminationE.3 INT 12H - Memory Size DeterminationE.4 INT 14H - Asynchronouos CommunicationE.5 INT 15H - System ServicesE.6 INT 16H - KeyboardE.7 INT 17H - PrinterE.8 INT 1AH - Timer and Real-Timer Clock Services

    F ASCII CodesG I/O Address MapsG.1 IBM PC AT I/O Address MapG.2 IBM PS/2 I/O Address MapG.3 ISA Standard I/O Address Ports

    H IBM PC/PS BIOS Data AreaI Data SheetsI.1 NS8250/NS16450 UART ChipI.2 Intel's 80486I.3 Intel's PentiumI.4 Intel Packaging

    ReferencesIndex