کتاب برنامهنویسی برای کامپیوترهای دیجیتال: کاوشی در قلب ماشین با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
برنامهنویسی برای کامپیوترهای دیجیتال: کاوشی در قلب ماشین | دروازهای به دنیای برنامهنویسی سطح پایین برنامهنویسی برای کامپیوترهای دیجیتال: کاوشی در قلب ماشین آیا همیشه کنجکاو بودهاید که کامپیوترها ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره برنامهنویسی برای کامپیوترهای دیجیتال: کاوشی در قلب ماشین
موضوع کلی: مبانی برنامهنویسی و علوم کامپیوتر
موضوع میانی: برنامهنویسی سطح پایین و معماری سختافزار
📋 سرفصلهای دوره
- 1. مقدمهای بر کامپیوترهای دیجیتال
- 2. تاریخچه ماشینهای محاسبه: از پاسکال تا فون نویمان
- 3. مفهوم برنامه و الگوریتم
- 4. معماری فون نویمان: قلب کامپیوتر مدرن
- 5. واحد پردازش مرکزی (CPU): مغز عملیات
- 6. حافظه اصلی (Main Memory): انبار دادهها و دستورالعملها
- 7. واحدهای ورودی و خروجی (I/O): پل ارتباطی با جهان
- 8. چرخه پردازش دستورالعمل: Fetch-Decode-Execute
- 9. زبان ماشین: زبان مادری کامپیوتر
- 10. از زبان ماشین تا زبانهای سطح بالا: یک نمای کلی
- 11. سیستم اعداد دودویی (باینری): مبنای محاسبات دیجیتال
- 12. نمایش اعداد صحیح بدون علامت
- 13. نمایش اعداد صحیح علامتدار: مکمل دو
- 14. سیستمهای اعداد هشت (اکتال) و شانزده (هگزادسیمال)
- 15. عملیات حسابی باینری: جمع و تفریق
- 16. عملیات منطقی بیتی: AND, OR, NOT, XOR
- 17. شیفتهای منطقی و حسابی
- 18. نمایش اعداد ممیز شناور
- 19. کدهای کاراکتری: از ASCII تا یونیکد
- 20. مفهوم کلمه (Word) و بایت (Byte) در حافظه
- 21. آناتومی دقیق CPU: واحد محاسبه و منطق (ALU)
- 22. واحد کنترل (Control Unit) و نقش آن
- 23. ثباتها (Registers): حافظه فوق سریع پردازنده
- 24. ثباتهای خاص: شمارنده برنامه (PC) و اشارهگر پشته (SP)
- 25. گذرگاهها (Buses): شاهراههای انتقال داده
- 26. سیگنال ساعت (Clock) و همگامسازی عملیات
- 27. ساختار حافظه و آدرسدهی
- 28. حافظه فقط خواندنی (ROM) و حافظه با دسترسی تصادفی (RAM)
- 29. سلسله مراتب حافظه: کش، حافظه اصلی، حافظه جانبی
- 30. ارتباط بین CPU و حافظه
- 31. مجموعه دستورالعمل (Instruction Set Architecture - ISA)
- 32. فرمت دستورالعملها: کد عملیات (Opcode) و عملوندها (Operands)
- 33. دستورالعملهای انتقال داده
- 34. دستورالعملهای حسابی
- 35. دستورالعملهای منطقی
- 36. دستورالعملهای پرش شرطی و غیرشرطی
- 37. دستورالعملهای فراخوانی زیرروال
- 38. دستورالعملهای کار با پشته
- 39. حالتهای مختلف آدرسدهی: فوری، مستقیم، غیرمستقیم
- 40. تحلیل یک برنامه ساده در زبان ماشین
- 41. معرفی زبان اسمبلی: چرا به آن نیاز داریم؟
- 42. نمادهای حافظه (Mnemonics) در برابر کدهای باینری
- 43. ساختار یک برنامه اسمبلی
- 44. اسمبلر (Assembler): مترجم زبان اسمبلی
- 45. دستورات شبه (Pseudo-operations) و دایرکتیوها
- 46. تعریف دادهها و متغیرها در اسمبلی
- 47. برچسبها (Labels) و کنترل جریان برنامه
- 48. پیادهسازی حلقهها در اسمبلی
- 49. پیادهسازی ساختارهای شرطی (if-then-else)
- 50. کار با آرایهها و رشتهها
- 51. عملیات ریاضی پیچیدهتر: ضرب و تقسیم
- 52. ماکروها در اسمبلی: اتوماسیون کدنویسی
- 53. پیوند (Linking) فایلهای اسمبلی مجزا
- 54. اشکالزدایی (Debugging) برنامههای سطح پایین
- 55. مقایسه معماریهای RISC و CISC از دیدگاه اسمبلی
- 56. نقشه حافظه یک فرآیند
- 57. بخش کد (Code Segment)، بخش داده (Data Segment)
- 58. مفهوم پشته (Stack) و کاربردهای آن
- 59. مفهوم هیپ (Heap) و تخصیص حافظه پویا
- 60. اشارهگرها و محاسبات آدرس
- 61. تراز بندی دادهها در حافظه
- 62. Endianness: کوچک-پایان در برابر بزرگ-پایان
- 63. مقدمهای بر حافظه مجازی
- 64. خطای صفحه (Page Fault) چیست؟
- 65. مدیریت حافظه توسط سیستمعامل: یک نمای کلی
- 66. زیرروالها (Subroutines) و توابع (Functions)
- 67. مکانیزم فراخوانی و بازگشت
- 68. پشته فراخوانی (Call Stack) و قاب پشته (Stack Frame)
- 69. قراردادهای فراخوانی (Calling Conventions)
- 70. ارسال پارامترها به توابع: از طریق ثباتها
- 71. ارسال پارامترها به توابع: از طریق پشته
- 72. متغیرهای محلی و ذخیرهسازی آنها
- 73. بازگشت مقدار از توابع
- 74. توابع بازگشتی (Recursive Functions) در سطح ماشین
- 75. کتابخانههای استاندارد و پیوند با آنها
- 76. اصول ورودی/خروجی (I/O)
- 77. دستگاههای ورودی/خروجی متداول
- 78. کنترلرهای دستگاه (Device Controllers)
- 79. ورودی/خروجی با نگاشت حافظه (Memory-Mapped I/O)
- 80. ورودی/خروجی با نگاشت پورت (Port-Mapped I/O)
- 81. ورودی/خروجی برنامهریزی شده (Polling)
- 82. ورودی/خروجی مبتنی بر وقفه (Interrupt-Driven I/O)
- 83. جدول بردار وقفه (Interrupt Vector Table)
- 84. دسترسی مستقیم به حافظه (Direct Memory Access - DMA)
- 85. بافرینگ (Buffering) در عملیات ورودی/خروجی
- 86. پیادهسازی آرایهها در سطح حافظه
- 87. پیادهسازی لیستهای پیوندی
- 88. الگوریتم جستجوی خطی
- 89. الگوریتم جستجوی دودویی
- 90. الگوریتم مرتبسازی حبابی
- 91. الگوریتم مرتبسازی درجی
- 92. جداول درهمسازی (Hash Tables) از دیدگاه حافظه
- 93. دستکاری بیتها برای بهینهسازی
- 94. تولید اعداد شبه تصادفی
- 95. تحلیل پیچیدگی الگوریتمها در سطح دستورالعمل
- 96. کامپایلرها: پل بین زبان سطح بالا و اسمبلی
- 97. لینکرها (Linkers): ترکیب قطعات کد
- 98. لودرها (Loaders): آمادهسازی برنامه برای اجرا
- 99. نقش سیستم عامل در اجرای برنامه
- 100. آینده برنامهنویسی سطح پایین و اهمیت درک ماشین
تگها:
algorithmic thinking
Assembly Language
computer fundamentals
Computer Organization
CPU Architecture
Data Structures
Digital Computers
Hardware Architecture
low-level programming
Programming for Digital Computers
برنامهنویسی سطح پایین
علوم کامپیوتر
مبانی برنامهنویسی
معماری سختافزار
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.