1215
مجموعه آموزش های ابزارنویسی و مهندسی معکوس وبسایت مسترپایتون : https://mrpythonblog.ir ارتباط با ادمین : @MrPythonAdmin آپارات : https://aparat.com/mrpythonblog یوتیوب : https://youtube.com/@mrpythonblog
سلام خدمت دوستان عزیز . امیدوارم حالتون خوب باشه .
این دو قسمتی که الان خدمتتون ارسال شد 👆 تنها قسمت هایی بود که تونستم این مدت ضبط کنم طی این دو هفته . یعنی قسمت های ۳۱ و ۳۲ که بسیار هم قسمت های مهمی هستند از نظر مفاهیم مطرح شده .
متاسفانه من دچار یک بیماری شدم و توانایی ضبط ویدیو نداشتم برای همین وقفه زیادی برای ضبط قسمت های بعدی پیش اومد .
از این به بعد طبق روال قبل ، ویدیو ها ضبط و منتشر میشوند .
🟣 اسمبلی x86 - قسمت 31 : قاب های پشته و قرارداد های فراخوانی (Calling Convention)
این قسمت بی شک یکی از مهمترین قسمت های دوره هست و میتوان گفت بعد از یادگیری مفاهیم این قسمت سطح درک شما از زبان اسمبلی در یک سطح کاملا جدیدی قرار خواهد گرفت .
در این قسمت به بررسی عمیق تر procedure ها و قاب های پشته مورد استفاده توسط آن ها خواهیم پرداخت . در مورد مدیریت قاب پشته (Stack Frame) ، دسترسی به آرگومان های داده شده به توابع ، مدیریت متغییر ها و حافظه محلی Procedure ها در پشته خواهیم پرداخت .
همچنین به این موضوع که قواعد فراخوانی (Calling Convention) چیست خواهیم پرداخت و دو نوع از مرسوم ترین آن ها یعنی CDECL و STDCALL را بررسی خواهیم کرد .
Aparat : https://www.aparat.com/v/csc0g62
Youtube : https://youtu.be/xyt4q3d9oiA
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 30 : Procedure ها
در این قسمت به معرفی مفهوم Procedure یا Subroutine ها خواهیم پرداخت که همان توابع در زبان های برنامه نویسی سطح بالا هستند . با دستورالعمل های CALL و RET برای فراخوانی و بازگشت از Procedure ها آشنا خواهیم شد . به عبارتی اینجا یاد میگیریم چطور در زبان اسمبلی تابع تعریف کنیم .
Aparat : https://www.aparat.com/v/qigbu1g
Youtube : https://youtu.be/nHJ93hjs9Kc
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 28 : حل چالش فیبوناچی
در این قسمت به حل آخرین تمرین مطرح شده در قسمت 25 یعنی حل چالش پیدا کردن جملات دنباله فیبوناچی خواهیم پرداخت .
Aparat : https://www.aparat.com/v/vmpez06
Youtube : https://youtu.be/QczOjB2AKeE
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 26 : حل تمرین الگوریتم تشخیص اعداد اول
در این قسمت به حل اولین تمرین مطرح شده در قسمت 25 یعنی نوشتن برنامه ای در زبان اسمبلی که اعداد اول را تشخیص دهد پرداخته ایم .
Aparat : https://www.aparat.com/v/ymbai9v
Youtube : https://youtu.be/rGIktackBTI
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 24 : حل تمرینات قسمت قبلی
در این قسمت به حل تمرینات مطرح شده در قسمت قبلی با استفاده از ساختار های شرطی خواهیم پرداخت .
سه تمرین حل شده در این قسمت :
1 - برنامه ای که تعداد اعضای زوج و فرد یک آرایه را بشمارد .
2 - برنامه ای که بزرگترین عضو یک آرایه را پیدا کند .
3 - برنامه محاسبه قدرمطلق یک عدد .
Aparat : https://www.aparat.com/v/tvcfwn7
Youtube : https://youtu.be/kGxTzvqwdps
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 22 : دستورالعمل LOOP و JCXZ
در این ویدیو به معرفی دستورالعمل LOOP و حالات شرطی آن برای ایجاد حلقه ها و همچنین پیمایش آرایه ها به وسیله آن خواهیم پرداخت . همچنین به معرفی دستورالعمل JCXZ نیز پرداخته ایم .
Aparat : https://www.aparat.com/v/jelpd0d
Youtube : https://youtu.be/ewUhdVLyZ7A
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 20 : حل تمرین محاسبه مجموع اعداد ۱ تا ۱۰۰
در این ویدیو به پیاده سازی تمرین مطرح شده در جلسه قبل یعنی محاسبه مجموع اعداد ۱ تا ۱۰۰ در زبان اسمبلی x86 خواهیم پرداخت .
Aparat : https://www.aparat.com/v/eoix8gr
Youtube : https://youtu.be/r9qZpYvf77M
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 18 : دستورالعمل پرش (JMP)
در این ویدیو به بررسی دستورالعمل پرش خواهیم پرداخت که به ما اجازه خواهد داد به نقطه ای دلخواه از برنامه خود پرش کنیم و اجرا را از سر بگیریم . با بهره گیری از این نوع دستورالعمل خاص و انواع شرطی آن که در آینده یاد خواهیم گرفت قادر خواهیم بود تا ساختار های دستور شرطی ، حلقه های شرط و ... را پیاده سازی کنیم .
Aparat : https://www.aparat.com/v/uyk1lvz
Youtube : https://youtu.be/yry1vBQJr8c
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 16 : دستورالعمل های منطقی
در این قسمت به بررسی دستورالعمل های منطقی AND , OR , NOT و XOR و کاربرد آن ها پرداخته ایم .
Aparat : https://www.aparat.com/v/pxym3a7
Youtube : https://youtu.be/F0ZHDCkWYAc
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 14 : دستورالعمل های ریاضیاتی
در این قسمت به بررسی دستورالعمل های ریاضیاتی INC , DEC , NEG , ADD , SUB خواهیم پرداخت که اعمال ریاضیاتی نظیر جمع و تفریق را برای ما انجام میدهند . همچنین تاثیر این دستورالعمل ها روی ثبات پرچم ها (FLAG) را نیز بررسی کرده ایم .
Aparat : https://www.aparat.com/v/aphag7c
Youtube : https://youtu.be/BNugNESKtmA
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 12 : حالت های آدرس دهی 8086
هر پردازنده ای چندین حالت آدرس دهی را پشتیبانی میکند . به طور کلی یک حالت آدرس دهی مشخص میکند پردازنده مورد نظر به چه صورت میتواند به عملوند یا داده دستورالعمل های خود دسترسی پیدا کند .
در این قسمت به بررسی و تشریح حالت های آدرس دهی پردازنده 8086 پرداخته ایم .
همچنین نحوه تعریف آرایه ها در اسبملی و دسترسی به اعضای آن با استفاده از حالت های آدرس دهی مناسب نیز بررسی شده است .
Aparat : https://www.aparat.com/v/doydpzf
Youtube : https://youtu.be/m7hnZgot5uw
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 10 : شروع برنامه نویسی اسمبلی و معرفی شبیه ساز EMU8086
با بررسی پیش نیاز های تئوری در بخش های قبلی ، از این قسمت وارد بخش جدیدی از دوره خواهیم شد که قراره برای سیستم عامل قدیمی MS-DOS و روی پردازنده 8086 به زبان اسمبلی برنامه بنویسیم !
در این قسمت به بررسی و معرفی اولیه نرم افزار شبیه ساز 8086 به نام emu8086 پرداخته ایم و همچنین ساختار کلی برنامه های اسمبلی در این نرم افزار را معرفی کرده ایم .
Aparat : https://www.aparat.com/v/why3lh3
Youtube : https://youtu.be/BelMV4g7ID4
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 8 : مدل حافظه قطعه بندی (Segmentation) در 8086
در این ویدیو به بررسی مدل حافظه مورد استفاده از ریزپردازنده 8086 به نام قطعه بندی (Segmentation) خواهیم پرداخت .
01:00 مدل حافظه (Memory Model) چیست ؟
03:13 مدل قطعه بندی (Segmentation) چیست ؟
08:10 حافظه 8086
13:36 آدرس های حافظه (منطقی و فیزیکی) در 8086
19:34 الگوریتم تبدیل آدرس منطقی به فیزیکی در قطعه بندی 8086
24:27 نکاتی در مورد قطعه بندی 8086
26:46 مروری بر ثبات های قطعه (Segment Registers) در 8086
Aparat : https://www.aparat.com/v/phvb3j9
Youtube : https://youtu.be/0DWjnkXruUo
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 6 : چرخه اجرای 8086
از این قسمت وارد بخشی از دوره خواهیم شد که اختصاصا به ریزپردازنده 8086 که پایه ی خانواده x86 حساب میشه میپردازیم . در این قسمت به معرفی نمای کلی داخلی 8086 که شامل بخش های EU و BIU هست میپردازیم ، چرخه اجرای (Execution Cycle) این ریزپردازنده را بررسی کرده و در مورد قابلیت خط لوله (Pipeline) که موجب تسریع و بهینه سازی اجرای دستورالعمل ها خواهد شد صحبت میکنیم .
02:08 معرفی و یادآوری ریزپردازنده 8086
08:17 چرخه اجرا (Execution Cycle)
12:40 نمای کلی داخلی 8086 شامل بخش های BIU و EU
22:07 قابلیت خط لوله (Pipeline) در 8086
Aparat : https://www.aparat.com/v/bpww31t
Youtube : https://youtu.be/xgZ2AmyrDKI
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 32 : حل تمرین تعریف تابع محاسبه فاکتوریل
در این قسمت به حل تمرین مطرح شده در قسمت قبلی یعنی نوشتن یک Procedure برای محاسبه فاکتوریل خواهیم پرداخت . این Procedure یک ورودی دریافت کرده و طبق قرارداد های CDECL یا STDCALL تعریف میشود . همچنین از روش مدیریت قاب پشته (Stack Frame) که در جلسه قبل مطرح شد برای مدیریت پشته و دسترسی به آرگومان ها استفاده کرده ایم
Aparat : https://www.aparat.com/v/ewrn70w
Youtube : https://youtu.be/rP3TrIuLcFU
🆔 : @MrPythonBlog | BOOST
سلام خدمت دوستان عزیز وقتتون بخیر
خدمتتون عرض کنم الان سایت ما با اختلال رو به رو هست و به دلیل اختلالات اینترنت ممکنه برای بعضی از دوستان باز نشه .
محتوای آموزشی ما طبق روال عادی حداقل روی آپارات آپلود خواهد شد . حالا اگر تونستیم و دسترسی داشتیم هم تلگرام اطلاع رسانی میکنیم و هم روی یوتیوب آپلودش میکنیم .
کانال آپارات مستر پایتون:
https://aparat.com/mrpythonblog
کانال یوتیوب مستر پایتون :
mrpythonblog" rel="nofollow">https://youtube.com/@mrpythonblog
🟣 اسمبلی x86 - قسمت 29 : دستورالعمل های PUSH و POP
در این قسمت به بررسی دستورالعمل های PUSH و POP برای کار با حافظه پشته (STACK) خواهیم پرداخت . حافظه پشته و ویژگی های آن را در قسمت نهم دوره بررسی کرده ایم . در صورت عدم آشنایی با حافظه پشته ، پیشنهاد میشود ابتدا مفاهیم قسمت 9 مرور شود و سپس این قسمت دیده شود .
Aparat : https://www.aparat.com/v/aoy1ja1
Youtube : https://youtu.be/jAawiF6gvrs
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 27 : حل چالش FizzBuzz
در این قسمت به بررسی دومین تمرین مطرح شده در قسمت ۲۵ خواهیم پرداخت و آن هم چالش FizzBuzz است . این چالش به این صورت است که برنامه ما باید اعداد یک بازه (مثلا ۱ تا ۱۰۰)را پردازش کند ، به جای اعدادی که مضرب ۳ هستند عبارت Fuzz را بنویسد و به جای اعدادی که مضرب ۵ هستندذ عبارت Bizz را بنویسد و به جای اعدادی که هم مضرب ۳ و هم مضرب ۵ هستند عبارت FizzBuzz را بنویسد .
Aparat : https://www.aparat.com/v/tyt63vw
Youtube : https://youtu.be/c6_4bTeLR9g
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 25 : پیاده سازی حلقه های شرطی while و for
یکی از پرکاربردترین ساختار ها در زبان های برنامه نویسی سطح بالا ، حلقه های شرطی نظیر FOR و WHILE هستند که در پیاده سازی بسیاری از الگوریتم ها به کار میروند . در این قسمت به بررسی نحوه پیاده سازی این حلقه ها در زبان اسمبلی با استفاده از دستورات مقایسه و پرش شرطی خواهیم پرداخت .
01:12 پیاده سازی حلقه WHILE
05:33 پیاده سازی حلقه DO WHILE
08:37 پیاده سازی حلقه FOR
14:51 ارائه سه تمرین جهت تثبیت مطالب مطرح شده
Aparat : https://www.aparat.com/v/tdgj0n8
Youtube : https://youtu.be/lYKBq-eZJlM
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 23 : پیاده سازی دستورات شرطی IF-ELSE
در این قسمت به بررسی نحوه پیاده سازی انواع حالات ساختار های شرطی if , if-else , if-elseif-else در زبان اسمبلی با استفاده از دستورالعمل های مقایسه و پرش های شرطی پرداخته ایم
00:46 پیاده سازی IF ساده بدون ELSE
07:00 پیاده سازی IF همراه با ELSE
10:19 پیاده سازی IF همره با ELSE IF و ELSE
18:50 پیاده سازی IF های تو در تو و عملگر AND بین چندین شرط
22:08 پیاده سازی IF های مستقل و عملگر OR بین چندین شرط
26:02 ارائه چند تمرین جهت حل و بررسی برای قسمت بعدی
Aparat : https://www.aparat.com/v/zwtv7x3
Youtube : https://youtu.be/9bXj0hXsvrM
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 21 :تست بیت ها با دستورالعمل TEST
در این ویدیو به بررسی دستورالعمل TEST و نحوه استفاده از آن برای تست کردن یک بیت خاص در یک عدد خواهیم پرداخت .
همچنین به عنوان تمرین عملی برنامه ای برای تشخیص زوج یا فرد بودن یک عدد دلخواه با استفاده از دستورالعمل TEST پیاده خواهیم کرد .
Aparat : https://www.aparat.com/v/zee6oc3
Youtube : https://youtu.be/trVeaeD2b4Y
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 19 : دستورالعمل های مقایسه و پرش شرطی
در این قسمت به بررسی دستورالعمل های مقایسه (CMP) و پرش های شرطی خواهیم پرداخت که به وسیله ی آن ها میتوان بر اساس نتیجه یک شرط خاص و مقایسه ، به بخشی از برنامه پرش کرد . آن ها پایه ای برای پیاده سازی ساختار هایی نظیر دستورات شرط (IF/ELSE) و حلقه های شرط (WHILE , FOR , ...) هستند .
Aparat : https://www.aparat.com/v/kyxa36x
Youtube : https://youtu.be/2yqAkoIq6ZE
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 17 - دستورالعمل های Shift و Rotate
در این قسمت به بررسی دستورالعمل های SHR , SHL , SAR , SAL , ROR , ROL , RCR , RCL پرداخته که برای انجام عملگر های SHIFT و ROTATE میباشند . همچنین تاثیر آن ها روی اعداد و پرچم ها نیز بررسی شده است .
Aparat : https://www.aparat.com/v/nrslg33
Youtube : https://youtu.be/dm7i4dLfudU
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 15 : ادامه دستورالعمل های ریاضیاتی
در این قسمت و در ادامه قسمت قبلی به بررسی دستورالعمل های ریاضیاتی ضرب و تقسیم علامت دار و بدون علامت و دستورالعمل های توسعه علامت دار (Sign-Extention) CWD و CBW پرداخته ایم .
Aparat : https://www.aparat.com/v/ydhsg17
Youtube : https://youtu.be/69mevt_QFCw
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 13 : مفهوم Endianness و دستورالعمل های LEA و XCHG
در این قسمت ابتدا به بررسی مفهوم Endianness پرداخته که مشخص کننده ترتیب ذخیره داده های چند بایتی توسط پردازنده ها در حافظه است . سپس به معرفی دستورالعمل های LEA و XCHG پرداخته شده است .
Aparat : https://www.aparat.com/v/qpium1k
Youtube : https://youtu.be/NWzpzb5qd7s
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 11 : تعریف داده و دسترسی به حافظه داده
در این قسمت به بررسی نحوه تعریف داده های دلخواه در قطعه (Segment) داده پرداخته ایم و یاد میگیرم چطور میتونیم به هر کجای حافظه داده با آدرس دلخواه دسترسی پیدا کنیم ، از آن داده بخوانیم یا در آن داده بنویسیم . همچنین به بررسی حالت های مختلف بکارگیری دستورالعمل MOV نیز پرداخته ایم .
Aparat : https://www.aparat.com/v/gvhr426
Youtube : https://youtu.be/GFph31QvzDI
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 9 : حافظه پشته (Stack)
در این قسمت به بررسی حافظه پشته یا Stack خواهیم پرداخت . به طور کلی پشته یک قطعه یا ناحیه از حافظه میباشد که جهت ذخیره داده های موقتی ، اطلاعات مربوط به توابع نظیر متغییر های محلی آن ها و ... به کار میرود .
00:08 حافظه پشته (Stack) چیست ؟
01:50 جهت رشد پشته
05:32 عملیات های PUSH و POP
15:03 تشریح عملیات PUSH
16:48 تشریح عملیات POP
18:59 جمع بندی ساختار داخلی 8086
Aparat : https://www.aparat.com/v/hbjl89x
Youtube : https://youtu.be/XqmQXUhGXmk
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 7 : ثبات ها (Register) در 8086
در این ویدیو به بررسی ثبات ها یا Register ها در پردازنده میپردازیم که بخش بنیادی و مهم هر پردازنده محسوب میشوند .
00:41 ثبات (Register) چیست ؟
05:34 ثبات های عمومی (General-Purpose) در 8086
19:24 ثبات های قطعه (Segment Register)
27:43 ثبات پرچم (Flags)
Aparat : https://www.aparat.com/v/afm384e
Youtube : https://youtu.be/vSARAaTzN9I
🆔 : @MrPythonBlog | BOOST
🟣 اسمبلی x86 - قسمت 5 : عملگرهای بیتی
در این قسمت به بررسی عملگر های بیتی پراستفاده نظیر AND , OR , NOT ,XOR پرداخته ، مرسوم ترین کاربرد های آن ها را معرفی کرده و با عملگر های shift و rotate آشنا میشویم .
00:55 عملگر بیتی (Bitwise Operator) چیست ؟
03:43 عملگر NOT
06:52 عملگر AND
10:41 پاکسازی بیت (bit clearing) توسط عملگر AND
15:10 تست بیت (bit testing) توسط عملگر AND
19:04 عملگر OR
20:40 انجام bit setting توسط عملگر OR
23:09 عملگر XOR
24:21 انجام bit toggling توسط عملگر XOR
28:25 عملگر Shift
35:51 عملگر Rotate
Aparat : https://www.aparat.com/v/ycj35fu
youtube : https://youtu.be/l3NiAcOB_EE
🆔 : @MrPythonBlog | BOOST