کتاب آموزش جامع زبان اسمبلی 8086/8088 و استفاده از پردازنده کمکی 8087 با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
آموزش جامع زبان اسمبلی 8086/8088: سفر به قلب ماشین آموزش جامع زبان اسمبلی 8086/8088: سفر به قلب ماشین معرفی دوره آیا همیشه کنجکاو بودهاید که کامپیوترها واقعاً چگونه کار میکنند؟ آیا میخواهید به لایه...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره آموزش جامع زبان اسمبلی 8086/8088 و استفاده از پردازنده کمکی 8087
موضوع کلی: برنامهنویسی سطح پایین
موضوع میانی: معماری و برنامهنویسی زبان اسمبلی x86
📋 سرفصلهای دوره
- 1. مقدمهای بر برنامهنویسی سطح پایین و زبان اسمبلی
- 2. سیستمهای عددی: مبنای 2، 10، 16
- 3. نمایش دادهها: اعداد صحیح، بدون علامت و علامتدار
- 4. مفهوم معماری کامپیوتر: CPU، حافظه، ورودی/خروجی
- 5. تاریخچه و معرفی پردازندههای 8086/8088
- 6. ابزارهای توسعه: اسمبلر، لینکر، لودر و دیباگر (MASM/TASM)
- 7. ساختار یک برنامه اسمبلی ساده
- 8. معماری داخلی 8086/8088: واحد رابط باس (BIU) و واحد اجرایی (EU)
- 9. ثباتهای همهمنظوره (General Purpose Registers): AX, BX, CX, DX
- 10. ثباتهای اشارهگر و اندیس (Pointer and Index Registers): SP, BP, SI, DI
- 11. ثباتهای قطعه (Segment Registers): CS, DS, ES, SS
- 12. ثبات پرچم (Flags Register) و بیتهای آن
- 13. سازماندهی حافظه در حالت حقیقی (Real Mode)
- 14. آدرسهای منطقی و فیزیکی
- 15. مدهای آدرسدهی حافظه: مد فوری (Immediate Addressing Mode)
- 16. مدهای آدرسدهی حافظه: مد ثباتی (Register Addressing Mode)
- 17. مدهای آدرسدهی حافظه: مد مستقیم (Direct Addressing Mode)
- 18. مدهای آدرسدهی حافظه: مد غیرمستقیم ثباتی (Register Indirect Addressing Mode)
- 19. مدهای آدرسدهی حافظه: مد مبتنی بر اندیس (Base-Indexed Addressing Mode)
- 20. مدهای آدرسدهی حافظه: مد مبتنی بر اندیس با جابجایی (Base-Indexed with Displacement)
- 21. دستورالعمل MOV: انتقال دادهها
- 22. دستورالعملهای PUSH و POP: کار با پشته
- 23. دستورالعمل LEA: بارگذاری آدرس موثر
- 24. دستورالعملهای ADD و SUB: جمع و تفریق
- 25. دستورالعملهای INC و DEC: افزایش و کاهش
- 26. دستورالعمل NEG: نقیض (تغییر علامت)
- 27. دستورالعملهای MUL و IMUL: ضرب (بدون علامت و علامتدار)
- 28. دستورالعملهای DIV و IDIV: تقسیم (بدون علامت و علامتدار)
- 29. عملیات ریاضی BCD: packed و unpacked
- 30. دستورالعملهای AND, OR, XOR, NOT: عملیات منطقی بیتی
- 31. دستورالعملهای SHL, SHR, SAR: شیفتهای بیتی
- 32. دستورالعملهای ROL, ROR, RCL, RCR: چرخشهای بیتی
- 33. دستورالعمل CMP: مقایسه
- 34. تعریف دادهها: DB, DW, DD, DQ, DT
- 35. تعریف متغیرها و ثابتها
- 36. استفاده از عملگر OFFSET
- 37. مفهوم NEAR و FAR برای آدرسدهی
- 38. دستورالعمل NOP: عملیات بدون کار
- 39. دستورالعمل JMP: پرشهای بدون شرط
- 40. دستورالعملهای پرش شرطی بر اساس پرچمها (JE, JNE, JL, JG, etc.)
- 41. ایجاد ساختارهای IF-THEN-ELSE
- 42. ایجاد ساختارهای LOOP (LOOP, LOOPE, LOOPNE)
- 43. دستورالعمل CALL و RET: فراخوانی و بازگشت از روالها
- 44. روالها (Procedures): تعریف و استفاده (NEAR/FAR)
- 45. عبور پارامتر به روالها از طریق ثباتها
- 46. عبور پارامتر به روالها از طریق پشته
- 47. ذخیره و بازیابی ثباتها در روالها
- 48. بازگشتی (Recursion) در اسمبلی: مفاهیم اولیه
- 49. ماکروها (Macros): تعریف و استفاده
- 50. دستورالعملهای رشتهای: MOVS (MOVSB, MOVSW)
- 51. دستورالعملهای رشتهای: LODS, STOS (LODSB, LODSW, STOSB, STOSW)
- 52. دستورالعملهای رشتهای: CMPS, SCAS (CMPSB, CMPSW, SCASB, SCASW)
- 53. استفاده از پرفیکس REP با دستورالعملهای رشتهای
- 54. پرچم جهت (Direction Flag - DF) و کار با رشتهها
- 55. دسترسی به پورتهای ورودی/خروجی (IN, OUT)
- 56. برنامهنویسی برای پورتهای ساده
- 57. کار با زمانسنج (Timer) و کنترلر وقفه (PIC) (مفاهیم اولیه)
- 58. معرفی وقفهها (Interrupts) و جدول بردار وقفه (IVT)
- 59. انواع وقفهها: سختافزاری، نرمافزاری، داخلی
- 60. فراخوانی وقفههای BIOS: وقفه 10h (خدمات ویدئویی)
- 61. فراخوانی وقفههای BIOS: وقفه 16h (خدمات صفحه کلید)
- 62. فراخوانی وقفههای BIOS: وقفه 13h (خدمات دیسک)
- 63. فراخوانی وقفههای BIOS: وقفه 1Ah (خدمات زمان)
- 64. فراخوانی وقفههای DOS: وقفه 21h (خدمات ورودی/خروجی)
- 65. نوشتن و نصب کنترلکنندههای وقفه (Interrupt Handlers)
- 66. ساختار روالهای سرویس وقفه (ISR)
- 67. زنجیرهای کردن وقفهها (Interrupt Chaining)
- 68. مدیریت وقفه و ذخیره/بازیابی زمینه (Context)
- 69. نقشه حافظه در DOS و حالت حقیقی
- 70. ناحیه PSP (Program Segment Prefix) و کاربرد آن
- 71. اشارهگرهای Far (Far Pointers) و آدرسدهی 20 بیتی
- 72. تخصیص حافظه دینامیک با DOS (تابع 48h)
- 73. تقسیمبندی برنامه به ماژولهای جداگانه
- 74. لینک کردن ماژولهای اسمبلی (OBJ Files)
- 75. معرفی پردازنده کمکی 8087 و نقش آن در محاسبات ممیز شناور
- 76. معماری 8087: ثباتهای داده (ST0-ST7) و ثباتهای کنترل/وضعیت
- 77. انواع دادههای 8087: اعداد حقیقی با دقت تک، دوگانه و توسعهیافته
- 78. انواع دادههای 8087: اعداد صحیح (Word, Short, Long) و BCD
- 79. دستورالعملهای بارگذاری داده: FLD, FILD, FBLD
- 80. دستورالعملهای ذخیرهسازی داده: FST, FSTP, FIST, FISTP, FBSTP
- 81. دستورالعملهای جمع و تفریق: FADD, FSUB, FSUBR
- 82. دستورالعملهای ضرب و تقسیم: FMUL, FDIV, FDIVR
- 83. دستورالعملهای مقایسه: FCOM, FCOMP, FCOMI, FCOMIP, FTST
- 84. دستورالعملهای توابع متعالی (Trigonometric): FSIN, FCOS, FPTAN, FPATAN
- 85. دستورالعملهای توابع لگاریتمی و توانی: FYL2X, F2XM1
- 86. دستورالعملهای مدیریت پشته 8087: FXCH, FCHS, FABS
- 87. دستورالعملهای کنترل 8087: FLDCW, FSTCW, FSTSW, FCLEX, FINIT
- 88. نحوه عملکرد پردازنده 8087 با 8086/8088
- 89. مدیریت خطاها و استثناها در 8087
- 90. شبیهسازی 8087 در محیطهای فاقد سختافزار آن
- 91. برنامهنویسی عملی با 8087: مثالهای محاسباتی
- 92. دقت عددی و مسائل گرد کردن (Rounding)
- 93. طراحی الگوریتمهای عددی برای 8087
- 94. ابزارهای اشکالزدایی: استفاده از DEBUG.EXE
- 95. اشکالزدایی: بررسی حافظه، ثباتها و اجرای گام به گام
- 96. نقاط توقف (Breakpoints) و ردیابی برنامه (Tracing)
- 97. تحلیل کدهای ماشین با DEBUG
- 98. بهینهسازی کدهای اسمبلی برای کارایی
- 99. واسط بین اسمبلی و زبانهای سطح بالا (C/C++): مفاهیم پایه
- 100. فراخوانی توابع C از اسمبلی و برعکس
تگها:
8087
8087 Coprocessor
8088
Assembly Language
assembly programming
assembly tutorial
Computer Architecture
low-level programming
Microprocessor 8086
Programming Course
x86 Assembly
آموزش اسمبلی
برنامهنویسی سطح پایین
زبان اسمبلی 8086
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.