کتاب راهنمای جامع برنامهنویسی 80386/80486 با رویکرد Microsoft: از مقدمات تا بهینهسازی با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
دوره جامع برنامهنویسی 80386/80486 با رویکرد Microsoft راهنمای جامع برنامهنویسی 80386/80486 با رویکرد Microsoft: از مقدمات تا بهینهسازی سفری به قلب تپنده کامپیوتر: معماری پردازندههای 386 و 486 را ت...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره راهنمای جامع برنامهنویسی 80386/80486 با رویکرد Microsoft: از مقدمات تا بهینهسازی
موضوع کلی: معماری و برنامهنویسی سطح پایین کامپیوتر
موضوع میانی: برنامهنویسی اسمبلی برای پردازندههای 80386 و 80486
📋 سرفصلهای دوره
- 1. مقدمهای بر معماری کامپیوتر و زبان اسمبلی
- 2. چرا برنامهنویسی اسمبلی برای 80386/80486؟
- 3. مروری بر سیر تکاملی پردازندههای X86
- 4. محیط توسعه: اسمبلر، لینکر، دیباگر
- 5. اولین برنامه اسمبلی: Hello World در حالت حقیقی (Real Mode)
- 6. رجیسترهای عمومی (General Purpose Registers): EAX, EBX, ECX, EDX
- 7. رجیسترهای اشارهگر و اندیس (Pointer and Index Registers): ESI, EDI, EBP, ESP
- 8. رجیسترهای سگمنت (Segment Registers): CS, DS, SS, ES, FS, GS
- 9. رجیستر پرچمها (EFLAGS) و بیتهای وضعیت
- 10. رجیستر اشارهگر دستورالعمل (EIP)
- 11. انواع دادهها و مقادیر فوری (Immediate Values)
- 12. سازماندهی حافظه: آدرسهای منطقی، خطی و فیزیکی
- 13. حالتهای عملیاتی پردازنده: Real Mode, Protected Mode, Virtual 8086 Mode
- 14. ساختار حافظه و نواحی RAM/ROM
- 15. مد آدرسدهی (Addressing Modes) در 80386/80486
- 16. MOV: جابجایی عمومی دادهها
- 17. PUSH و POP: عملیات پشته (Stack)
- 18. LEA: بارگذاری آدرس موثر (Load Effective Address)
- 19. XCHG: تعویض محتوای رجیستر/حافظه
- 20. CWD, CDQ: توسعه علامت (Sign Extension)
- 21. MOVSX, MOVZX: توسعه علامت و صفر برای دادهها
- 22. BSWAP: معکوس کردن ترتیب بایتها
- 23. LODS, STOS, MOVS: دستورات رشتهای (String Operations)
- 24. IN و OUT: ورودی/خروجی پورت (Port I/O)
- 25. ADD, ADC: جمع و جمع با رقم نقلی (Carry)
- 26. SUB, SBB: تفریق و تفریق با رقم قرضی (Borrow)
- 27. INC, DEC: افزایش و کاهش
- 28. NEG: منفی کردن (Negation)
- 29. CMP: مقایسه
- 30. MUL, IMUL: ضرب (بدون علامت و علامتدار)
- 31. DIV, IDIV: تقسیم (بدون علامت و علامتدار)
- 32. AND, OR, XOR: عملیات منطقی بیتی
- 33. NOT: NOT بیتی
- 34. TEST: تست بیتی
- 35. SHL, SHR, SAL, SAR: شیفت بیتی (Logical and Arithmetic Shifts)
- 36. ROL, ROR, RCL, RCR: چرخش بیتی (Rotates)
- 37. BT, BTC, BTR, BTS: تست و دستکاری بیتها
- 38. DAA, DAS: تنظیم اعشاری (Decimal Adjust)
- 39. AAA, AAS, AAM, AAD: تنظیم ASCII
- 40. JMP: پرش بدون قید و شرط
- 41. Jcc: پرشهای شرطی (Conditional Jumps)
- 42. CALL و RET: فراخوانی و بازگشت از زیرروالها
- 43. LOOP, LOOPE, LOOPNE: حلقهها
- 44. فراخوانیهای داخل سگمنت و بین سگمنت (Near and Far Calls/Jumps)
- 45. پیادهسازی ساختارهای کنترلی سطح بالا (IF/ELSE, WHILE) در اسمبلی
- 46. استفاده از دستورات SETcc
- 47. آشنایی با Protected Mode و اهمیت آن
- 48. جدول توصیفگر جهانی (GDT) و توصیفگرها (Descriptors)
- 49. توصیفگرهای سگمنت: کد، داده، پشته
- 50. انتخابگرهای سگمنت (Segment Selectors) و ساختار آنها
- 51. جدول توصیفگر محلی (LDT)
- 52. سطوح امتیاز (Privilege Levels) و حلقههای حفاظتی (Rings)
- 53. دروازههای فراخوانی (Call Gates) برای تغییر سطح امتیاز
- 54. فعالسازی Protected Mode
- 55. مقدمهای بر Paging و ترجمه آدرسها
- 56. ساختار دایرکتوری صفحه (Page Directory)
- 57. ساختار جدول صفحه (Page Table)
- 58. ترجمه آدرس خطی به فیزیکی با Paging
- 59. رجیسترهای کنترلی (CR0, CR3) برای Paging
- 60. مدیریت حافظه مجازی و نقش Paging
- 61. حفاظت حافظه (Memory Protection) در Protected Mode
- 62. آدرسدهی 32 بیتی در Protected Mode
- 63. تخصیص و آزادسازی حافظه در Protected Mode (مفاهیم)
- 64. تفاوت وقفهها (Interrupts) و استثناها (Exceptions)
- 65. جدول توصیفگر وقفه (IDT)
- 66. توصیفگرهای گیت وقفه و تله (Interrupt Gate, Trap Gate)
- 67. بردارهای وقفه و انواع آنها
- 68. وقفههای سختافزاری (IRQs)
- 69. وقفههای نرمافزاری (INT n) و استفاده از آنها
- 70. نوشتن روالهای سرویس وقفه (ISRs) سفارشی
- 71. مدیریت استثناها (مانند تقسیم بر صفر، خطای حفاظت عمومی)
- 72. اولویتبندی وقفهها
- 73. وقفههای تودرتو (Nested Interrupts)
- 74. دستورات STI, CLI, IRET, IRETD
- 75. سگمنت وضعیت وظیفه (TSS): ساختار و کاربرد
- 76. دروازههای وظیفه (Task Gates)
- 77. مکانیزم سوییچ وظیفه (Task Switching)
- 78. چندوظیفگی (Multitasking) در Protected Mode
- 79. رجیسترهای کنترلی (CR0) برای مدیریت وظایف
- 80. معرفی واحد ممیز شناور (FPU) یا 80387/80486DX
- 81. رجیسترهای FPU و مدل پشتهای (Stack Model)
- 82. انواع دادههای FPU (ممیز شناور تک، دو، و ده برابر دقت)
- 83. دستورات پایه FPU: بارگذاری، ذخیره، انتقال (FLD, FST, FADD, FMUL, FDIV)
- 84. دستورات مقایسه و کنترل FPU
- 85. FPU: انجام محاسبات پیچیده ریاضی
- 86. افزایش کارایی در 80486: Cache On-Chip و Pipelining
- 87. مدیریت Cache: سیاستهای Write-Through و Write-Back
- 88. دستورات کنترل Cache (مانند INVD, WBINVD)
- 89. بهینهسازی کد برای عملکرد بهتر روی 80386/80486
- 90. تشخیص نوع پردازنده (CPU ID)
- 91. استفاده از ویژگیهای خاص 80486 برای حداکثر کارایی
- 92. فراخوانی کدهای اسمبلی از C/C++
- 93. فراخوانی توابع C/C++ از کد اسمبلی
- 94. قراردادهای ارسال پارامتر (Calling Conventions)
- 95. لینک کردن ماژولهای اسمبلی با کدهای C/C++
- 96. انتقال داده بین اسمبلی و زبانهای سطح بالا
- 97. استفاده از دیباگرهای پیشرفته (مانند SoftICE، OllyDbg، WinDbg - مفاهیم)
- 98. نقاط توقف (Breakpoints) و ردیابی (Tracing)
- 99. تحلیل حافظه و رجیسترها در حین عیبیابی
- 100. نکات و ترفندهای بهینهسازی و عیبیابی پیشرفته
تگها:
80386
80486
Assembly Language
Intel 80386
Intel 80486
Microsoft 80386/80486
آموزش اسمبلی
برنامهنویسی اسمبلی
برنامهنویسی سطح پایین
برنامهنویسی سیستم
بهینهسازی کد
راهنمای برنامهنویسی 80386
معماری x86
معماری کامپیوتر
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.