کتاب از صفر تا قهرمانی با 80386: یک کتاب جامع برنامه نویسی اسمبلی

249,950 تومان

📚 کتاب آموزشی جامع

📚 اطلاعات کتاب

عنوان کتاب: کتاب از صفر تا قهرمانی با 80386: یک کتاب جامع برنامه نویسی اسمبلی

موضوع کلی: معماری کامپیوتر و برنامه نویسی اسمبلی

موضوع میانی: معماری و برنامه نویسی پردازنده 80386

📋 سرفصل‌های کتاب (100 موضوع)

  • 1. مقدمه‌ای بر معماری کامپیوتر
  • 2. چرا برنامه نویسی اسمبلی؟
  • 3. معرفی پردازنده 80386: یک نگاه کلی
  • 4. مبانی سیستم‌های عددی: دودویی، شانزده‌دهی و دهدهی
  • 5. نمایندگی داده‌ها: اعداد صحیح، کاراکترها و رشته‌ها
  • 6. حافظه و آدرس‌دهی: مفاهیم پایه و سازماندهی
  • 7. ابزارهای برنامه نویسی اسمبلی: اسمبلر، لینکر، دیباگر
  • 8. اولین برنامه اسمبلی: "Hello World" و کامپایل آن
  • 9. ساختار یک برنامه اسمبلی استاندارد (MASM/NASM)
  • 10. مدل‌های حافظه در 80386 (مقدمه ای بر Flat, Tiny, Small, Compact, Large, Huge)
  • 11. ثبات‌های عمومی 80386: EAX, EBX, ECX, EDX و کاربردها
  • 12. ثبات‌های اشاره‌گر و اندیس: ESP, EBP, ESI, EDI و نقش آنها در پشته و آدرس‌دهی
  • 13. ثبات‌های Segment: CS, DS, SS, ES, FS, GS و سگمنت‌بندی
  • 14. ثبات پرچم (EFLAGS) و بیت‌های مهم آن
  • 15. ثبات اشاره‌گر دستور (EIP) و نقش آن در اجرای برنامه
  • 16. سازماندهی حافظه در Real Mode: سگمنت‌ها و آفست‌ها
  • 17. محاسبه آدرس فیزیکی در Real Mode
  • 18. مفهوم Segment Override Prefix و کاربردهای آن
  • 19. پشته (Stack) در Real Mode: اصول کار و مدیریت
  • 20. کار با پشته: دستورات PUSH و POP
  • 21. انواع داده‌ها در اسمبلی: BYTE, WORD, DWORD, QWORD
  • 22. تعریف متغیرها: DB, DW, DD, DQ, DT
  • 23. تعریف ثابت‌ها: EQU و استفاده از آن
  • 24. مقدمه‌ای بر دستورالعمل‌ها (Instruction Set) 80386
  • 25. فرمت و ساختار دستورالعمل‌ها: اپکد، عملوندها
  • 26. دستورات انتقال داده: MOV, MOVSX, MOVZX
  • 27. دستورات انتقال داده پشته‌ای: PUSHAD, POPAD, PUSHF, POPF
  • 28. دستورات بارگذاری آدرس: LEA
  • 29. دستورات مبادله: XCHG, BSWAP
  • 30. دستورات ورودی/خروجی پایه: IN, OUT
  • 31. دستورات محاسباتی پایه: ADD, SUB
  • 32. دستورات محاسباتی ضرب: MUL, IMUL
  • 33. دستورات محاسباتی تقسیم: DIV, IDIV
  • 34. دستورات افزایشی و کاهشی: INC, DEC
  • 35. دستورات مقایسه و نفی: CMP, NEG
  • 36. دستورات منطقی: AND, OR, XOR, NOT
  • 37. دستورات شیفت منطقی و حسابی: SHL, SHR, SAR, SAL
  • 38. دستورات چرخش: ROL, ROR, RCL, RCR
  • 39. دستورات تست بیتی: TEST
  • 40. مقدمه‌ای بر پرش‌ها و کنترل فلو (Conditional/Unconditional Jumps)
  • 41. پرش‌های بدون شرط: JMP
  • 42. فراخوانی توابع و زیربرنامه‌ها: CALL, RET
  • 43. پرش‌های شرطی بر اساس پرچم‌ها: JZ, JNZ, JC, JNC, JO, JNO و...
  • 44. دستورات حلقه: LOOP, LOOPE, LOOPNE, JECXZ
  • 45. طراحی توابع و زیربرنامه‌ها (Procedures) در اسمبلی
  • 46. فراخوانی توابع دور (FAR CALL/RET) و نزدیک (NEAR CALL/RET)
  • 47. ارسال پارامترها به توابع از طریق رجیسترها
  • 48. ارسال پارامترها به توابع از طریق پشته (Stack Frame)
  • 49. مدیریت حافظه محلی در توابع: ENTER, LEAVE
  • 50. توابع بازگشتی (Recursion) و پیاده‌سازی آن
  • 51. ماکروها: تعریف، استفاده و پارامترها
  • 52. تفاوت و انتخاب بین ماکروها و توابع
  • 53. پیاده‌سازی ساختارهای شرطی IF/ELSE در اسمبلی
  • 54. پیاده‌سازی ساختارهای تکرار WHILE/FOR در اسمبلی
  • 55. مبانی کار با رشته‌ها در اسمبلی
  • 56. دستکاری کاراکترها و رشته‌های ASCII
  • 57. دستورات انتقال رشته‌ای: MOVSB, MOVSW, MOVSD
  • 58. دستورات جستجوی رشته‌ای: SCASB, SCASW, SCASD
  • 59. دستورات بارگذاری و ذخیره رشته‌ای: LODSB, LODSW, LODSD, STOSB, STOSW, STOSD
  • 60. دستورات مقایسه رشته‌ای: CMPSB, CMPSW, CMPSD
  • 61. پیشوندهای تکرار: REP, REPE, REPNE (REPZ, REPNZ)
  • 62. عملیات BCD (Binary Coded Decimal) و دستورات آن
  • 63. دستورات تبدیل BCD به باینری و بالعکس
  • 64. دستورات تبدیل بایت/کلمه/دوکلمه/چهارکلمه (CBW, CWD, CDQ, CWDE, CDQE)
  • 65. دستکاری بیتی پیشرفته: BT, BTC, BTR, BTS
  • 66. دستورات XADD, CMPXCHG برای همگام‌سازی (Synchronization)
  • 67. مفهوم وقفه (Interrupt) و انواع آن
  • 68. جدول توصیف‌گر وقفه (IDT) در Real Mode (IVT)
  • 69. وقفه‌های سخت‌افزاری و نرم‌افزاری (INT n)
  • 70. دستورالعمل INT n و INTO
  • 71. دستورات CLI, STI, IRET برای مدیریت وقفه‌ها
  • 72. استفاده از توابع DOS (Int 21h) برای ورودی/خروجی کنسول و فایل
  • 73. استفاده از توابع BIOS (Int 10h, Int 16h, Int 13h)
  • 74. نوشتن روتین‌های سرویس وقفه (ISR) سفارشی
  • 75. اصول I/O Port و آدرس‌دهی آن
  • 76. دسترسی مستقیم به پورت‌های I/O با دستورات IN, OUT
  • 77. نیاز به Protected Mode: مزایا و اهداف
  • 78. تفاوت‌های اساسی Real Mode و Protected Mode
  • 79. ورود به Protected Mode و بازگشت از آن
  • 80. ثبات‌های کنترل (Control Registers): CR0, CR1, CR2, CR3, CR4
  • 81. ثبات‌های دیباگ (Debug Registers): DR0-DR7
  • 82. مفهوم جدول توصیف‌گر سراسری (GDT)
  • 83. توصیف‌گرهای سگمنت (Segment Descriptors): ساختار و انواع
  • 84. انتخاب‌گرهای سگمنت (Segment Selectors): RPL, TI, Index
  • 85. بارگذاری ثبات‌های سگمنت در Protected Mode
  • 86. آدرس‌دهی منطقی، خطی و فیزیکی در Protected Mode
  • 87. مفهوم Paging و نقش آن در حافظه مجازی
  • 88. جداول صفحه (Page Tables): ساختار و ورودی‌ها
  • 89. دایرکتوری صفحه (Page Directory): ساختار و ورودی‌ها
  • 90. ترجمه آدرس خطی به فیزیکی توسط Paging
  • 91. فعال‌سازی Paging و مدیریت آن
  • 92. مفهوم Task State Segment (TSS) و محتویات آن
  • 93. سوئیچینگ وظیفه (Task Switching) سخت‌افزاری
  • 94. مفهوم گیت‌ها (Gates): Call Gate, Interrupt Gate, Trap Gate, Task Gate
  • 95. حلقه‌های محافظت (Protection Rings): Ring 0 تا Ring 3
  • 96. مکانیزم‌های امنیتی و کنترل دسترسی در Protected Mode
  • 97. مفهوم Virtual 8086 Mode (V86 Mode)
  • 98. فعال‌سازی و مدیریت V86 Mode توسط یک Monitor
  • 99. برنامه نویسی در V86 Mode و محدودیت‌های آن
  • 100. بهینه‌سازی کد اسمبلی برای کارایی بهتر در 80386

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.