کتاب زبان اسمبلی IBM-PC: از صفر تا قهرمانی (با رویکرد آسان و جذاب) با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
زبان اسمبلی IBM-PC: از صفر تا قهرمانی (با رویکرد آسان و جذاب) | یک گام تا تسلط بر معماری کامپیوتر زبان اسمبلی IBM-PC: از صفر تا قهرمانی (با رویکرد آسان و جذاب) آیا تا به حال آرزو کردهاید که بدانید کا...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره زبان اسمبلی IBM-PC: از صفر تا قهرمانی (با رویکرد آسان و جذاب)
موضوع کلی: برنامهنویسی و معماری کامپیوتر
موضوع میانی: زبان اسمبلی x86
📋 سرفصلهای دوره
- 1. به دنیای اسمبلی خوش آمدید: چرا باید اسمبلی یاد بگیریم؟
- 2. نگاهی به کامپیوتر IBM-PC و معماری x86 (Real Mode)
- 3. سیستمهای عددی: باینری، هگزادسیمال، دسیمال (از صفر)
- 4. تبدیلهای سریع بین سیستمهای عددی: رمزگشایی دادهها
- 5. مفهوم بیت، بایت، کلمه و کلمه دوگانه
- 6. ابزارهای برنامهنویسی: اسمبلر (NASM/MASM)، لینکر، دیباگر
- 7. ساختار یک برنامه اسمبلی IBM-PC
- 8. اولین برنامه شما: "Hello, World!" با رویکرد آسان
- 9. اسمبل کردن، لینک کردن و اجرای برنامهها
- 10. حل مشکلات رایج و مقدمهای بر دیباگینگ
- 11. معرفی کلی CPU و نقش آن در معماری IBM-PC
- 12. رجیسترهای همهمنظوره: AX, BX, CX, DX (کاربرد پایه)
- 13. رجیسترهای همهمنظوره: AX, BX, CX, DX (بخشهای H و L)
- 14. رجیسترهای اشارهگر: SP (Stack Pointer) و BP (Base Pointer)
- 15. رجیسترهای اندیس: SI (Source Index) و DI (Destination Index)
- 16. رجیستر پرچمها (Flags Register): شناسایی نتایج عملیات
- 17. فلگ Carry, Zero, Sign: کنترل جریان برنامه
- 18. فلگ Overflow, Parity, Auxiliary Carry: جزئیات بیشتر
- 19. رجیسترهای قطعهای (Segment Registers): CS, DS, ES, SS
- 20. مفهوم سگمنت و آفست: آدرسدهی در حافظه
- 21. محاسبه آدرس فیزیکی: فرمول اصلی
- 22. بخشبندی حافظه در Real Mode: ۱ مگابایت افسانهای
- 23. حالتهای آدرسدهی: Immediate, Register
- 24. حالتهای آدرسدهی: Direct, Register Indirect
- 25. حالتهای آدرسدهی: Base, Index, Base+Index
- 26. دستور MOV: قلب انتقال دادهها
- 27. محدودیتهای MOV: جایی که MOV نمیتواند برود
- 28. دستور PUSH و POP: مدیریت پشته به سادگی
- 29. مثالهای کاربردی از PUSH و POP: حفظ وضعیت رجیسترها
- 30. دستور XCHG: تعویض محتوای دو مکان به سرعت
- 31. مقدمهای بر عملیات حسابی و تاثیر بر فلگها
- 32. دستور ADD: جمع اعداد با یا بدون Carry
- 33. دستور ADC: جمع با Carry (اضافه کردن Carry به جمع)
- 34. دستور SUB: تفریق اعداد با یا بدون Borrow
- 35. دستور SBB: تفریق با Borrow (کاهش با Borrow)
- 36. دستور INC و DEC: افزایش و کاهش سریع
- 37. دستور NEG: تغییر علامت یک عدد
- 38. ضرب در اسمبلی: MUL (بدون علامت) و IMUL (علامتدار)
- 39. تقسیم در اسمبلی: DIV (بدون علامت) و IDIV (علامتدار)
- 40. مثال جامع از عملیات حسابی و تاثیر فلگها
- 41. دستور CMP: مقایسه اعداد بدون تغییر آنها
- 42. دستور AND: عملیات منطقی "و" بیتی و ماسک کردن
- 43. دستور OR: عملیات منطقی "یا" بیتی و تنظیم بیتها
- 44. دستور XOR: عملیات "یا انحصاری" و کاربردهای خاص (مثلاً صفر کردن رجیستر)
- 45. دستور NOT: معکوس کردن بیتها
- 46. دستور TEST: مقایسه منطقی بدون تغییر رجیستر
- 47. شیفت منطقی: SHL (Left Shift) و SHR (Right Shift)
- 48. شیفت حسابی: SAL (Arithmetic Left Shift) و SAR (Arithmetic Right Shift)
- 49. چرخش بیتها: ROL (Rotate Left) و ROR (Rotate Right)
- 50. چرخش با Carry: RCL (Rotate Through Carry Left) و RCR (Rotate Through Carry Right)
- 51. پرشهای بدون قید و شرط: JMP (Near, Far, Short)
- 52. پرشهای شرطی: JZ, JNZ, JC, JNC (بر اساس فلگها)
- 53. پرشهای شرطی برای اعداد علامتدار و بدون علامت (JG, JL, JA, JB و ... )
- 54. حلقهها: دستور LOOP و کاربرد رجیستر CX
- 55. حلقههای شرطی: LOOPE/LOOPZ و LOOPNE/LOOPNZ
- 56. تعریف متغیرها: DB, DW, DD, DQ, DT
- 57. مقداردهی اولیه به متغیرها و استفاده از DUP
- 58. آرایهها: تعریف، دسترسی و پیمایش
- 59. رشتههای متنی: ذخیرهسازی و پایان رشته (Null-terminated)
- 60. ساختارهای دادهای ساده: رکوردها و فیلدها (با EQU و STRUCT)
- 61. رویهها (Procedures): سازماندهی کد با CALL و RET
- 62. ارسال پارامترها به رویهها از طریق پشته
- 63. حفظ و بازیابی رجیسترها در رویهها
- 64. رویههای تودرتو و بازگشتی (مقدمهای بر Recursion)
- 65. تکنیکهای اشکالزدایی پیشرفتهتر: بررسی حافظه و پشته
- 66. معرفی مفهوم وقفه (Interrupt) و جدول بردارهای وقفه (IVT)
- 67. وقفه DOS: INT 21h (مقدمهای بر توابع سیستمعامل)
- 68. تابع 01h (INT 21h): خواندن یک کاراکتر از کیبورد (با اکو)
- 69. تابع 02h (INT 21h): نمایش یک کاراکتر بر روی صفحه
- 70. تابع 09h (INT 21h): نمایش یک رشته متنی ($ Terminated)
- 71. تابع 0Ah (INT 21h): خواندن رشته از کیبورد (با بافر)
- 72. وقفه BIOS: INT 10h (خدمات ویدئویی)
- 73. تابع 00h (INT 10h): تنظیم حالت ویدئویی
- 74. تابع 02h (INT 10h): تنظیم موقعیت مکاننما (Cursor)
- 75. تابع 03h (INT 10h): خواندن موقعیت و شکل مکاننما
- 76. تابع 06h و 07h (INT 10h): اسکرول کردن صفحه
- 77. تابع 09h (INT 10h): نمایش کاراکتر با رنگ در موقعیت دلخواه
- 78. تابع 0Ah (INT 10h): نوشتن کاراکتر در موقعیت مکاننما
- 79. وقفه BIOS: INT 16h (خدمات کیبورد)
- 80. تابع 00h (INT 16h): خواندن کاراکتر از کیبورد
- 81. تابع 01h (INT 16h): بررسی وجود کلید فشرده شده (بدون انتظار)
- 82. تابع 02h (INT 16h): خواندن وضعیت کلیدهای Shift, Ctrl, Alt
- 83. وقفه BIOS: INT 1Ah (خدمات ساعت و تاریخ)
- 84. تابع 00h (INT 1Ah): خواندن ساعت سیستم
- 85. تابع 04h (INT 1Ah): خواندن تاریخ سیستم
- 86. مقدمهای بر کار با فایلها (با INT 21h)
- 87. تابع 3Ch (INT 21h): ایجاد فایل جدید
- 88. تابع 3Dh (INT 21h): باز کردن فایل موجود
- 89. تابع 3Eh (INT 21h): بستن فایل
- 90. تابع 3Fh و 40h (INT 21h): خواندن و نوشتن در فایل
- 91. ماکروها (Macros): تعریف، کاربرد و مزایا
- 92. پارامترها در ماکروها و اپراتورهای ماکرو
- 93. استفاده از INCLUDE: سازماندهی کد با فایلهای جداگانه
- 94. برنامهنویسی ساختاریافته در اسمبلی: IF, ELSE, WHILE
- 95. کاربرد آدرسهای نزدیک و دور (NEAR vs. FAR)
- 96. مدیریت خطاهای رایج در برنامهنویسی اسمبلی
- 97. ساخت یک بازی متنی ساده: "Space Invaders" کوچک!
- 98. پیادهسازی یک ماشینحساب ساده خط فرمان
- 99. بهینهسازی کد اسمبلی: سرعت و اندازه
- 100. فراتر از Real Mode: نگاهی کوتاه به آینده وProtected Mode (با تاکید بر "فقط برای شناخت")
تگها:
Assembler
assembly programming
Computer Architecture
DOS Programming
low-level programming
MIPS (اگر در ادامه به آن پرداخته شود)
PC architecture
x86 Assembly
آموزش اسمبلی
زبان اسمبلی، اسمبلی x86، برنامهنویسی اسمبلی، IBM-PC assembly language
مقدمات اسمبلی
یادگیری اسمبلی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.