کتاب صوتی تسلط بر برنامهنویسی x86 با زبان اسمبلی: دروازهای به اعماق سختافزار
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب تسلط بر برنامهنویسی x86 با زبان اسمبلی: دروازهای به اعماق سختافزار
موضوع کلی: معماری کامپیوتر و برنامهنویسی سیستمی
موضوع میانی: مبانی زبان اسمبلی و ساختار پردازندههای x86
📋 سرفصلهای کتاب (100 موضوع)
- 1. مقدمه: چرا زبان اسمبلی یاد بگیریم؟
- 2. مروری بر معماری کامپیوتر: مدل Von Neumann
- 3. سیستمهای عددی: باینری، هگزادسیمال و دسیمال
- 4. تبدیل بین سیستمهای عددی
- 5. نمایش اعداد صحیح علامتدار: مکمل دو
- 6. عملیات حسابی باینری: جمع و تفریق
- 7. مفاهیم پایه منطق دیجیتال: گیتهای AND, OR, NOT, XOR
- 8. ساختار پردازندههای x86: از 8086 تا مدرن
- 9. حالتهای عملیاتی پردازنده: Real-Address, Protected, Long Mode
- 10. معرفی ثباتهای (Registers) عمومی x86
- 11. ثباتهای EFLAGS و EIP
- 12. معرفی حافظه و آدرسدهی
- 13. نصب و راهاندازی محیط برنامهنویسی (MASM/NASM)
- 14. ساختار یک برنامه اسمبلی پایه
- 15. اولین برنامه: "Hello, World!" در اسمبلی
- 16. دستورالعمل MOV: انتقال دادهها
- 17. دستورالعملهای حسابی پایه: ADD و SUB
- 18. دستورالعملهای INC و DEC
- 19. معرفی دستورالعملهای منطقی: AND, OR, XOR
- 20. دستورالعمل NOT: معکوس کردن بیتها
- 21. تعریف دادهها: بایت، کلمه و کلمه مضاعف (BYTE, WORD, DWORD)
- 22. تعریف متغیرهای مقداردهی نشده در سگمنت .BSS
- 23. آدرسدهی مستقیم حافظه
- 24. آدرسدهی غیرمستقیم حافظه
- 25. اپراتورهای OFFSET و PTR
- 26. دستورالعمل XCHG: تعویض مقادیر
- 27. دستورالعمل LEA: بارگذاری آدرس مؤثر
- 28. دستورالعملهای پرچم (Flag): بررسی نتایج عملیات
- 29. پرچمهای Carry و Overflow
- 30. پرچمهای Zero و Sign
- 31. دستورالعمل CMP و مقایسه دادهها
- 32. پرشهای بدون شرط: JMP
- 33. پرشهای شرطی بر اساس پرچمها (JZ, JNZ, JC, JNC)
- 34. پرشهای شرطی برای اعداد علامتدار (JG, JL, JGE, JLE)
- 35. پرشهای شرطی برای اعداد بدون علامت (JA, JB, JAE, JBE)
- 36. ساختار حلقهها با استفاده از JMP و CMP
- 37. دستورالعمل LOOP
- 38. مثال عملی: محاسبه فاکتوریل با حلقه
- 39. ساختارهای شرطی: پیادهسازی if-else
- 40. پیادهسازی ساختار switch-case
- 41. پشته (Stack): مفاهیم پایه
- 42. دستورالعملهای PUSH و POP
- 43. بررسی ثباتهای ESP و EBP
- 44. تعریف رویهها (Procedures) با PROC و ENDP
- 45. دستورالعملهای CALL و RET
- 46. ایجاد رویههای تو در تو (Nested Procedures)
- 47. فریم پشته (Stack Frame) چیست؟
- 48. پاس دادن آرگومانها به رویهها از طریق ثباتها
- 49. پاس دادن آرگومانها به رویهها از طریق پشته
- 50. ایجاد متغیرهای محلی روی پشته
- 51. حفظ و بازیابی ثباتها در رویهها
- 52. قراردادهای فراخوانی (Calling Conventions): cdecl, stdcall
- 53. کتابخانههای لینک (Linking Libraries): معرفی Irvine32/Irvine64
- 54. استفاده از رویههای کتابخانهای برای ورودی/خروجی
- 55. بازگشت (Recursion): پیادهسازی تابع بازگشتی
- 56. آرایهها: تعریف و دسترسی به عناصر
- 57. پردازش آرایهها با حلقهها
- 58. آدرسدهی ایندکسدار (Indexed Addressing)
- 59. رشتهها در اسمبلی: تعریف و نمایش
- 60. دستورالعملهای پایه پردازش رشته (LODS, STOS)
- 61. دستورالعملهای پیشرفته پردازش رشته (MOVS, CMPS, SCAS)
- 62. پیشوندهای تکرار: REP, REPE, REPNE
- 63. آرایههای دو بعدی: پیادهسازی و پیمایش
- 64. دستورالعملهای ضرب: MUL و IMUL
- 65. دستورالعملهای تقسیم: DIV و IDIV
- 66. دستورالعملهای شیفت منطقی: SHL و SHR
- 67. دستورالعملهای شیفت حسابی: SAL و SAR
- 68. دستورالعملهای چرخش: ROL و ROR
- 69. دستورالعملهای چرخش با کری: RCL و RCR
- 70. مثال کاربردی: رمزنگاری ساده با XOR و چرخش
- 71. وقفهها (Interrupts): مفاهیم و کاربردها
- 72. جدول توصیفگر وقفه (IDT)
- 73. فراخوانیهای سیستمی (System Calls) در ویندوز
- 74. فراخوانیهای سیستمی (System Calls) در لینوکس
- 75. برنامهنویسی فایل: ایجاد و نوشتن در فایل
- 76. برنامهنویسی فایل: خواندن از فایل
- 77. مدیریت حافظه در سطح سیستمعامل
- 78. تخصیص حافظه دینامیک
- 79. ترکیب کدهای اسمبلی و C/C++: مقدمه
- 80. فراخوانی توابع C از اسمبلی
- 81. فراخوانی توابع اسمبلی از C
- 82. پاس دادن متغیرهای ساده بین C و اسمبلی
- 83. پاس دادن آرایهها و رشتهها بین C و اسمبلی
- 84. پاس دادن ساختارها (Structs) بین C و اسمبلی
- 85. اسمبلی درونخطی (Inline Assembly) در C/C++
- 86. معماری x86-64: حالت ۶۴ بیتی (Long Mode)
- 87. ثباتهای ۶۴ بیتی (RAX, RBX, ...) و ثباتهای جدید (R8-R15)
- 88. آدرسدهی نسبی RIP
- 89. قرارداد فراخوانی در x86-64 (System V AMD64 ABI)
- 90. برنامهنویسی ممیز شناور (Floating-Point): مقدمهای بر FPU
- 91. ثباتهای x87 FPU و پشته ممیز شناور
- 92. دستورالعملهای پایه ممیز شناور (FLD, FST, FADD, FSUB)
- 93. مقایسه اعداد ممیز شناور
- 94. مقدمهای بر SIMD: پردازش موازی دادهها
- 95. دستورالعملهای MMX
- 96. دستورالعملهای SSE: ثباتهای XMM و عملیات اسکالر/پک شده
- 97. دستورالعملهای AVX: ثباتهای YMM
- 98. مدیریت حافظه پیشرفته: سگمنتیشن و صفحهبندی (Paging)
- 99. بهینهسازی کد اسمبلی: همراستاسازی و زمانبندی دستورالعملها
- 100. نگاهی به بوت لودرها و فرآیند راهاندازی سیستم
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
sp.express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.