اپلیکیشن اندرویدی فلشکارت آموزشی اشکالزدایی با نوار اکتال: فنون پنهان بهینهسازی حافظه در عصر PDP-8
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره اشکالزدایی با نوار اکتال: فنون پنهان بهینهسازی حافظه در عصر PDP-8
موضوع کلی: بهینهسازی و اشکالزدایی سیستمهای کامپیوتری
موضوع میانی: تکنیکهای اشکالزدایی و بهینهسازی حافظه در سیستمهای قدیمی
📋 سرفصلهای دوره
- 1. مقدمهای بر عصر مینیکامپیوترها و ظهور PDP-8
- 2. چرا اشکالزدایی در سیستمهای اولیه یک چالش بود؟
- 3. فلسفه پشت "حداقل حافظه اشغالی"
- 4. آشنایی با سیستم اعداد اکتال (هشتهشتی) و اهمیت آن در PDP-8
- 5. مروری بر معماری PDP-8: ثباتها، حافظه و کلمه ۱۲ بیتی
- 6. آشنایی با پنل جلویی: کلیدها و چراغها به عنوان اولین رابط کاربری
- 7. حافظه مغناطیسی هستهای (Core Memory): ویژگیها و محدودیتها
- 8. مجموعه دستورالعملهای پایه PDP-8 (فقط ۸ دستور اصلی)
- 9. ساختار یک دستورالعمل ۱۲ بیتی: Opcode و آدرس
- 10. حالتهای آدرسدهی: مستقیم، غیرمستقیم و صفحه صفر
- 11. نقش ثبات Accumulator (AC) و Link Bit
- 12. برنامهنویسی اولین حلقه: روشن و خاموش کردن یک چراغ
- 13. ورود دستی برنامه با استفاده از کلیدهای پنل جلویی
- 14. بوتاسترپینگ (Bootstrapping): چگونه اولین برنامه را بارگذاری کنیم؟
- 15. آشنایی با لودرهای نوار کاغذی: RIM و BIN Loader
- 16. مفهوم نوار اشکالزدای اکتال (ODT)
- 17. تحلیل ساختار ODT: چگونه در چند بایت جای میگیرد؟
- 18. بارگذاری ODT در حافظه و اجرای آن
- 19. اولین فرمان در ODT: بازرسی یک خانه حافظه (Location/)
- 20. اصلاح محتوای حافظه به صورت مستقیم از طریق ODT
- 21. اجرای برنامه از یک آدرس خاص با دستور G (Go)
- 22. مفهوم نقطه شکست (Breakpoint) در ODT
- 23. ایجاد اولین نقطه شکست و تحلیل توقف برنامه
- 24. بررسی محتوای ثباتها پس از رسیدن به نقطه شکست
- 25. حرکت در حافظه: بازرسی خانههای متوالی
- 26. تفاوت بین داده و کد در حافظه PDP-8
- 27. تکنیکهای پایه اشکالزدایی: بررسی متغیرها
- 28. تکنیکهای پایه اشکالزدایی: ردیابی پرشها (Jumps)
- 29. اصلاح کد در حافظه به صورت زنده (Live Patching)
- 30. جستجو در حافظه برای یافتن یک مقدار خاص
- 31. درک و تحلیل یک دامپ حافظه (Memory Dump) اکتال
- 32. اشکالزدایی محاسبات ریاضی: سرریز (Overflow) و Link Bit
- 33. برنامهنویسی ورودی/خروجی: کار با تلهتایپ (Teletype)
- 34. اشکالزدایی روتینهای ورودی/خروجی
- 35. تکنیک اجرای گامبهگام (Single-Stepping) با استفاده از ODT و پنل جلویی
- 36. تحلیل جریان کنترل برنامه با نقاط شکست متعدد
- 37. ایجاد نقاط شکست شرطی (Conditional Breakpoints) با ترفندهای نرمافزاری
- 38. مفهوم خود-اصلاحگری کد (Self-Modifying Code) و دلایل استفاده از آن
- 39. اشکالزدایی کدهای خود-اصلاحگر: یک چالش بزرگ
- 40. هنر بهینهسازی حافظه: مقدمه
- 41. فنون کاهش حجم کد: انتخاب دستورالعملهای کوتاهتر
- 42. استفاده هوشمندانه از صفحه صفر (Zero Page) برای متغیرهای پرکاربرد
- 43. تکنیک Auto-Indexing برای پردازش آرایهها و جداول
- 44. فشردهسازی دادهها: ذخیره چندین مقدار در یک کلمه ۱۲ بیتی
- 45. استفاده از بیتها به عنوان پرچم (Bit Packing)
- 46. طراحی زیربرنامههای (Subroutines) بهینه و قابل استفاده مجدد
- 47. تکنیکهای مدیریت پشته (Stack) در معماری بدون پشته سختافزاری
- 48. بهینهسازی حلقهها: چگونه یک بایت میتواند تفاوت ایجاد کند
- 49. استفاده از جداول جستجو (Lookup Tables) به جای محاسبات پیچیده
- 50. کاهش تعداد پرشها برای افزایش سرعت و کاهش حجم
- 51. تکنیک Overlay: اجرای برنامههای بزرگتر از حافظه موجود
- 52. مدیریت حافظه در سیستمهای Overlay
- 53. اشکالزدایی برنامههای چندبخشی (Overlayed Programs)
- 54. بهینهسازی زمانبندی (Timing) در حلقههای حساس
- 55. نوشتن کدهای مستقل از مکان (Position-Independent Code)
- 56. ترفندهای ریاضی: ضرب و تقسیم بدون دستورالعمل سختافزاری
- 57. اشکالزدایی الگوریتمهای ضرب و تقسیم نرمافزاری
- 58. هنر کامنتگذاری در کد اسمبلی برای اشکالزدایی آینده
- 59. ساخت ابزارهای اشکالزدایی سفارشی و کوچک
- 60. تحلیل و مهندسی معکوس یک برنامه باینری با ODT
- 61. یافتن و اصلاح باگهای رایج: خطاهای Off-by-One
- 62. یافتن و اصلاح باگهای رایج: پرش به آدرس اشتباه
- 63. یافتن و اصلاح باگهای رایج: تخریب حافظه تصادفی
- 64. استفاده از Link Bit برای منطقهای شرطی پیچیده
- 65. چگونه ODT خود را برای نیازهای خاص تغییر دهیم؟
- 66. محدودیتهای ODT و زمانهایی که باید به پنل جلویی بازگشت
- 67. مطالعه موردی ۱: اشکالزدایی یک برنامه مرتبسازی ساده
- 68. تحلیل حافظه در مطالعه موردی ۱: یافتن متغیرهای کلیدی
- 69. اصلاح باگ در مطالعه موردی ۱ با استفاده از پچ زنده
- 70. مطالعه موردی ۲: بهینهسازی یک روتین ریاضی برای کاهش حجم
- 71. مقایسه نسخه اولیه و بهینهشده در مطالعه موردی ۲
- 72. مطالعه موردی ۳: اشکالزدایی یک برنامه ارتباطی با تلهتایپ
- 73. تحلیل بافر ورودی/خروجی در مطالعه موردی ۳
- 74. تکنیکهای پیشرفته ODT: استفاده از دستورات کمتر شناختهشده
- 75. ایجاد یک "Trace" دستی از اجرای برنامه
- 76. مدیریت حافظه صفحهبندی شده (Memory Paging) در مدلهای پیشرفتهتر PDP-8
- 77. اشکالزدایی کدی که بین صفحات حافظه جابجا میشود
- 78. توسعه یک ODT پیشرفتهتر: افزودن قابلیتهای جدید
- 79. چالشهای کار با وقفهها (Interrupts)
- 80. اشکالزدایی روتینهای پردازش وقفه (Interrupt Service Routines)
- 81. بهینهسازی ISR برای حداقل تأخیر
- 82. تأثیر بهینهسازی حافظه بر سرعت اجرا
- 83. موازنه بین حجم کد، سرعت اجرا و خوانایی
- 84. مستندسازی پچها و تغییرات اعمال شده با ODT
- 85. بازسازی کد منبع از یک برنامه باینری موجود در حافظه
- 86. شبیهسازی PDP-8: تمرین تکنیکها روی نرمافزار مدرن
- 87. مقایسه ODT با دیباگرهای مدرن مانند GDB
- 88. چه درسهایی از اشکالزدایی با محدودیت شدید میآموزیم؟
- 89. میراث PDP-8 و ODT در سیستمهای نهفته (Embedded Systems) امروزی
- 90. تفکر الگوریتمیک در دنیای محدودیتها
- 91. روانشناسی اشکالزدایی: صبوری و نگاه دقیق به جزئیات
- 92. چگونه این مهارتها به یک برنامهنویس بهتر در دنیای مدرن کمک میکند؟
- 93. پروژه نهایی: نوشتن، اشکالزدایی و بهینهسازی یک برنامه کامل
- 94. نگاهی به آینده: از نوار کاغذی تا هوش مصنوعی در اشکالزدایی
- 95. سخن پایانی: تفکر یک هکر در عصر PDP-8
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.