کتاب برنامهنویسی 6809: هنر کنترل سختافزار با کدهای ماشین با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
برنامهنویسی 6809: فتح قلب سختافزار با کدهای ماشین برنامهنویسی 6809: هنر کنترل سختافزار با کدهای ماشین - دورهای برای فتح دنیای میکروپروسسورها آیا رویای تسلط بر دنیای میکروپروسسورهای کلاسیک را در س...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره برنامهنویسی 6809: هنر کنترل سختافزار با کدهای ماشین
موضوع کلی: برنامهنویسی سطح پایین
موضوع میانی: برنامهنویسی میکروپروسسورهای کلاسیک
📋 سرفصلهای دوره
- 1. مقدمهای بر برنامهنویسی سطح پایین
- 2. تاریخچه میکروپروسسورها و ظهور 6809
- 3. کامپیوتر چگونه کار میکند؟ چرخه Fetch-Decode-Execute
- 4. سیستمهای عددی: باینری، هگزادسیمال و دسیمال
- 5. تبدیل بین سیستمهای عددی
- 6. محاسبات باینری: جمع و تفریق
- 7. نمایش اعداد علامتدار: مکمل دو
- 8. بیت، بایت، کلمه و حافظه
- 9. سازماندهی حافظه و فضای آدرسدهی
- 10. گذرگاههای آدرس، داده و کنترل
- 11. تفاوت کد ماشین و زبان اسمبلی
- 12. ابزارهای برنامهنویسی: اسمبلر، دیباگر و مانیتور
- 13. معماری داخلی میکروپروسسور 6809
- 14. رجیسترهای اصلی: انباشتگرهای A, B و رجیستر 16 بیتی D
- 15. رجیسترهای اندیس: X و Y
- 16. اشارهگرهای پشته: U و S
- 17. شمارنده برنامه (Program Counter - PC)
- 18. رجیستر صفحه مستقیم (Direct Page Register - DP)
- 19. رجیستر کدهای شرطی (CCR) و فلگها
- 20. بررسی دقیق فلگها: کری، سرریز، صفر، منفی، نیمکری
- 21. نقشه حافظه در یک سیستم مبتنی بر 6809
- 22. مفهوم پشته (Stack) و عملکرد آن
- 23. دستورات انتقال داده: LDA, LDB, STA, STB
- 24. کار با رجیستر 16 بیتی D: LDD, STD
- 25. دستورات انتقال بین رجیسترها: TFR, EXG
- 26. مقدمهای بر حالتهای آدرسدهی 6809
- 27. حالت ذاتی (Inherent Addressing)
- 28. حالت فوری (Immediate Addressing)
- 29. حالت مستقیم (Direct Addressing)
- 30. حالت توسعهیافته (Extended Addressing)
- 31. دستورات محاسباتی پایه: ADDA, ADDB, SUBA, SUBB
- 32. جمع و تفریق 16 بیتی: ADDD, SUBD
- 33. دستورات افزایش و کاهش: INC, DEC, INX, DEX
- 34. دستورات جمع و تفریق با رقم نقلی: ADC, SBC
- 35. دستورات منطقی: AND, OR, EOR
- 36. دستور تست بیت: BIT
- 37. دستورات متمم و منفی کردن: COM, NEG
- 38. دستورات پاک کردن: CLR
- 39. دستورات شیفت منطقی: LSR, LSL
- 40. دستورات شیفت محاسباتی: ASR
- 41. دستورات چرخش: ROR, ROL
- 42. کنترل جریان برنامه: پرش بدون شرط (JMP, BRA)
- 43. انشعابهای شرطی ساده: BEQ, BNE
- 44. انشعابهای شرطی بر اساس فلگها: BCC, BCS, BPL, BMI
- 45. انشعابهای شرطی برای اعداد بدون علامت: BHI, BLS
- 46. انشعابهای شرطی برای اعداد با علامت: BGT, BLT, BGE, BLE
- 47. ساختار حلقهها با استفاده از دستورات انشعاب
- 48. مقایسه مقادیر: CMPA, CMPB, CMPD, CMPX
- 49. حالت آدرسدهی اندیسدار (Indexed Addressing) - مقدمه
- 50. اندیسدار با آفست ثابت صفر
- 51. اندیسدار با آفست ثابت 5، 8 و 16 بیتی
- 52. اندیسدار با آفست انباشتگر (A, B, D)
- 53. اندیسدار با افزایش/کاهش خودکار (Auto-increment/decrement)
- 54. حالت آدرسدهی نسبی (Relative Addressing)
- 55. حالت آدرسدهی توسعهیافته غیرمستقیم (Extended Indirect)
- 56. حالت آدرسدهی اندیسدار غیرمستقیم (Indexed Indirect)
- 57. انتخاب حالت آدرسدهی مناسب: کارایی و حجم کد
- 58. مفهوم زیربرنامهها (Subroutines)
- 59. فراخوانی زیربرنامه: JSR و BSR
- 60. بازگشت از زیربرنامه: RTS
- 61. عملکرد پشته در فراخوانی زیربرنامه
- 62. روشهای ارسال پارامتر به زیربرنامهها
- 63. ارسال پارامتر از طریق رجیسترها
- 64. ارسال پارامتر از طریق پشته
- 65. ایجاد متغیرهای محلی روی پشته
- 66. دستورات کار با پشته: PSHS/PULS و PSHU/PULU
- 67. زیربرنامههای بازگشتی (Re-entrant Subroutines)
- 68. پیادهسازی توابع بازگشتی (Recursion)
- 69. جداول و آرایهها: تعریف و دسترسی
- 70. پردازش رشتهها و جداول جستجو (Look-up Tables)
- 71. مبانی ورودی/خروجی (I/O)
- 72. ورودی/خروجی نقشهشده در حافظه (Memory-Mapped I/O)
- 73. برنامهنویسی ورودی/خروجی موازی (PIO)
- 74. معرفی تراشه 6821 PIA (Peripheral Interface Adapter)
- 75. پیکربندی رجیسترهای داده، جهت و کنترل در PIA
- 76. مثال عملی: خواندن از سوییچها با PIA
- 77. مثال عملی: نوشتن روی LEDها با PIA
- 78. مفهوم Handshaking در ارتباطات موازی
- 79. برنامهنویسی ورودی/خروجی سریال (SIO)
- 80. معرفی تراشه 6850 ACIA (Asynchronous Communications Interface Adapter)
- 81. روش سرکشی (Polling) برای مدیریت I/O
- 82. مفهوم وقفهها (Interrupts)
- 83. جدول بردار وقفه (Interrupt Vector Table)
- 84. وقفههای سختافزاری: IRQ و FIRQ
- 85. تفاوت و اولویتبندی وقفهها
- 86. نوشتن یک روال سرویس وقفه (Interrupt Service Routine - ISR)
- 87. ذخیره و بازیابی وضعیت پردازنده در ISR
- 88. دستورات RTI و CWAI
- 89. وقفههای نرمافزاری: SWI, SWI2, SWI3
- 90. ایجاد تاخیرهای زمانی دقیق
- 91. ضرب نرمافزاری ۸ بیتی و ۱۶ بیتی
- 92. تقسیم نرمافزاری
- 93. محاسبات BCD (Binary-Coded Decimal)
- 94. تبدیل بین باینری و BCD
- 95. تکنیکهای اشکالزدایی (Debugging) کد ماشین
- 96. ساخت یک برنامه مانیتور ساده
- 97. بهینهسازی کد برای سرعت
- 98. بهینهسازی کد برای حجم
- 99. دسترسی مستقیم به حافظه (DMA) و کنترلر 6844
- 100. جمعبندی دوره و نگاهی به میکروکنترلرها
تگها:
6809
Assembly Language
classic microprocessors
embedded systems
Hardware control
low-level programming
Machine code
Microcontroller programming
Reverse Engineering
System Programming
Vintage Computing
برنامهنویسی اسمبلی
برنامهنویسی ماشین
سیستمهای نهفته
میکروکنترلر
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.