Assembly Language StepbyStep Programming with DOS and Linux 2nd Ed [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Assembly Language StepbyStep Programming with DOS and Linux 2nd Ed [Electronic resources] - نسخه متنی

Jeff Duntemann

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










Sitemap

Table of Contents


BackCover


Assembly Language Step-by-Step-Programming with DOS and Linux, Second Edition


Foreword


Introduction: "Why Would You Want to Do That?


Chapter 1: Another Pleasant Valley Saturday Understanding What Computers Really Do


Had This Been the Real Thing


Do Not Pass GO


Chapter 2: Alien Bases Getting Your Arms around Binary and Hexadecimal


Counting in Martian


Octal: How the Grinch Stole Eight and Nine


Hexadecimal: Solving the Digit Shortage


From Hex to Decimal and from Decimal to Hex


Arithmetic in Hex


Binary


Hexadecimal as Shorthand for Binary


Chapter 3: Lifting the Hood Discovering What Computers Actually Are


Switches, Transistors, and Memory


The Shop Foreman and the Assembly Line


The Box That Follows a Plan


Chapter 4: The Right to Assemble The Process of Making Assembly Language Programs


DOS and DOS files


Compilers and Assemblers


The Assembly Language Development Process


DEBUG and How to Use It


Chapter 5: NASM-IDE: A Place to Stand Give me a lever long enough, and a place to stand, and I will move the Earth.


NASM-IDE''''s Place to Stand


Using NASM-IDE''''s Tools


NASM-IDE''''s Editor in Detail


Other NASM-IDE Features


Chapter 6: An Uneasy Alliance The x86 CPU and Its Segmented Memory System


The Nature of Segments


16-Bit and 32-Bit Registers


The Three Major Assembly Programming Models


Reading and Changing Registers with DEBUG


Chapter 7: Following Your Instructions Meeting Machine Instructions up Close and Personal


Assembling and Executing Machine Instructions with DEBUG


Machine Instructions and Their Operands


Reading and Using an Assembly Language Reference


Rally Round the Flags, Boys!


Using Type Specifiers


Chapter 8: Our Object All Sublime Creating Programs that Work


The Bones of an Assembly Language Program


Assembling and Running EAT.ASM


One Program, Three Segments


Last In, First Out via the Stack


Using DOS Services through INT


Chapter 9: Dividing and Conquering Using Procedures and Macros to Battle Complexity


Boxes within Boxes


Using BIOS Services


Building External Libraries of Procedures


Creating and Using Macros


Chapter 10: Bits, Flags, Branches, and Tables Easing into Mainstream Assembly Programming


Bits Is Bits (and Bytes Is Bits)


Shifting Bits


Flags, Tests, and Branches


Assembly Odds ''''n Ends


Chapter 11: Stringing Them Up Those Amazing String Instructions


The Notion of an Assembly Language String


REP STOSW, the Software Machine Gun


The Semiautomatic Weapon: STOSW without REP


Storing Data to Discontinuous Strings


Chapter 12: The Programmer''''s View of Linux Tools and Skills to Help You Write Assembly Code under a True 32-Bit OS


Prerequisites-Yukkh!


NASM for Linux


What''''s GNU?


The make Utility and Dependencies


Understanding AT&T Instruction Mnemonics


Using the GNU Debugger


Your Work Strategy


Chapter 13: Coding for Linux Applying What You''''ve Learned to a True Protected Mode Operating System


Genuflecting to the C Culture


A Framework to Build On


The Perks of Protected Mode


Characters Out


Characters In


Be a Time Lord


Generating Random Numbers


Accessing Command-Line Arguments


Simple File I/O


Conclusion: Not the End, But Only the Beginning


Where to Now?


Stepping off Square One


Appendix A: Partial 8086/8088 Instruction Set Reference


Notes on the Instruction Set Reference


AAA Adjust AL after BCD Addition


ADC Arithmetic Addition with Carry


ADD Arithmetic Addition


AND Logical AND


BT Bit Test (386+)


CALL Call Procedure


CLC Clear Carry Flag (CF)


CLD Clear Direction Flag (DF)


CMP Arithmetic Comparison


DEC Decrement Operand


IMUL Signed Integer Multiplication


INC Increment Operand


INT Software Interrupt


IRET Return from Interrupt


J? Jump on Condition


JCXZ Jump If CX=0


JECXZ Jump If ECX=0


JMP Unconditional Jump


LEA Load Effective Address


LOOP Loop until CX/ECX=0


LOOPNZ/LOOPNE Loop While CX/ECX > 0 and ZF=0


LOOPZ/LOOPE Loop While CX/ECX > 0 and ZF=1


MOV Move (Copy) Right Operand into Left Operand


NEG Negate (Two''''s Complement; i.e., Multiply by −1)


NOP No Operation


NOT Logical NOT (One''''s Complement)


OR Logical OR


POP Pop Top of Stack into Operand


POPA Pop All 16-Bit Registers (286+)


POPF Pop Top of Stack into Flags


POPFD Pop Top of Stack into EFlags (386+)


PUSH Push Operand onto Top of Stack


PUSHA Push All 16-Bit GP Registers (286+)


PUSHAD Push All 32-Bit GP Registers (386+)


PUSHF Push 16-Bit Flags onto Stack


PUSHFD Push 32-Bit EFlags onto Stack (386+)


RET Return from Procedure


ROL Rotate Left


ROR Rotate Right


SBB Arithmetic Subtraction with Borrow


SHL Shift Left


SHR Shift Right


STC Set Carry Flag (CF)


STD Set Direction Flag (DF)


STOS Store String


SUB Arithmetic Subtraction


XCHG Exchange Operands


XOR Exclusive Or


Appendix B: Segment Register Assumptions for Real Mode Segmented Model


Appendix C: Web URLs for Assembly Programmers


Appendix D: Segment Register Assumptions


Appendix E: What''''s on the CD-ROM?


Index


Index_A


Index_B


Index_C


Index_D


Index_E


Index_F


Index_G


Index_H


Index_I


Index_J


Index_K


Index_L


Index_M


Index_N


Index_O


Index_P


Index_Q


Index_R


Index_S


Index_T


Index_U


Index_V


Index_W


Index_X


Index_Z


List of Figures


List of Tables


/ 166