🟣 اسمبلی 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
در این قسمت به بررسی حافظه پشته یا 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
❤11👍2🔥2
🟣 اسمبلی x86 - قسمت 10 : شروع برنامه نویسی اسمبلی و معرفی شبیه ساز EMU8086
با بررسی پیش نیاز های تئوری در بخش های قبلی ، از این قسمت وارد بخش جدیدی از دوره خواهیم شد که قراره برای سیستم عامل قدیمی MS-DOS و روی پردازنده 8086 به زبان اسمبلی برنامه بنویسیم !
در این قسمت به بررسی و معرفی اولیه نرم افزار شبیه ساز 8086 به نام emu8086 پرداخته ایم و همچنین ساختار کلی برنامه های اسمبلی در این نرم افزار را معرفی کرده ایم .
Aparat : https://www.aparat.com/v/why3lh3
Youtube : https://youtu.be/BelMV4g7ID4
🆔 : @MrPythonBlog | BOOST
با بررسی پیش نیاز های تئوری در بخش های قبلی ، از این قسمت وارد بخش جدیدی از دوره خواهیم شد که قراره برای سیستم عامل قدیمی MS-DOS و روی پردازنده 8086 به زبان اسمبلی برنامه بنویسیم !
در این قسمت به بررسی و معرفی اولیه نرم افزار شبیه ساز 8086 به نام emu8086 پرداخته ایم و همچنین ساختار کلی برنامه های اسمبلی در این نرم افزار را معرفی کرده ایم .
Aparat : https://www.aparat.com/v/why3lh3
Youtube : https://youtu.be/BelMV4g7ID4
🆔 : @MrPythonBlog | BOOST
❤14👍3👏1
🟣 اسمبلی x86 - قسمت 11 : تعریف داده و دسترسی به حافظه داده
در این قسمت به بررسی نحوه تعریف داده های دلخواه در قطعه (Segment) داده پرداخته ایم و یاد میگیرم چطور میتونیم به هر کجای حافظه داده با آدرس دلخواه دسترسی پیدا کنیم ، از آن داده بخوانیم یا در آن داده بنویسیم . همچنین به بررسی حالت های مختلف بکارگیری دستورالعمل MOV نیز پرداخته ایم .
Aparat : https://www.aparat.com/v/gvhr426
Youtube : https://youtu.be/GFph31QvzDI
🆔 : @MrPythonBlog | BOOST
در این قسمت به بررسی نحوه تعریف داده های دلخواه در قطعه (Segment) داده پرداخته ایم و یاد میگیرم چطور میتونیم به هر کجای حافظه داده با آدرس دلخواه دسترسی پیدا کنیم ، از آن داده بخوانیم یا در آن داده بنویسیم . همچنین به بررسی حالت های مختلف بکارگیری دستورالعمل MOV نیز پرداخته ایم .
Aparat : https://www.aparat.com/v/gvhr426
Youtube : https://youtu.be/GFph31QvzDI
🆔 : @MrPythonBlog | BOOST
🔥8❤4👍2
🟣 اسمبلی x86 - قسمت 12 : حالت های آدرس دهی 8086
هر پردازنده ای چندین حالت آدرس دهی را پشتیبانی میکند . به طور کلی یک حالت آدرس دهی مشخص میکند پردازنده مورد نظر به چه صورت میتواند به عملوند یا داده دستورالعمل های خود دسترسی پیدا کند .
در این قسمت به بررسی و تشریح حالت های آدرس دهی پردازنده 8086 پرداخته ایم .
همچنین نحوه تعریف آرایه ها در اسبملی و دسترسی به اعضای آن با استفاده از حالت های آدرس دهی مناسب نیز بررسی شده است .
Aparat : https://www.aparat.com/v/doydpzf
Youtube : https://youtu.be/m7hnZgot5uw
🆔 : @MrPythonBlog | BOOST
هر پردازنده ای چندین حالت آدرس دهی را پشتیبانی میکند . به طور کلی یک حالت آدرس دهی مشخص میکند پردازنده مورد نظر به چه صورت میتواند به عملوند یا داده دستورالعمل های خود دسترسی پیدا کند .
در این قسمت به بررسی و تشریح حالت های آدرس دهی پردازنده 8086 پرداخته ایم .
همچنین نحوه تعریف آرایه ها در اسبملی و دسترسی به اعضای آن با استفاده از حالت های آدرس دهی مناسب نیز بررسی شده است .
Aparat : https://www.aparat.com/v/doydpzf
Youtube : https://youtu.be/m7hnZgot5uw
🆔 : @MrPythonBlog | BOOST
❤9🔥3👍1
🟣 اسمبلی x86 - قسمت 13 : مفهوم Endianness و دستورالعمل های LEA و XCHG
در این قسمت ابتدا به بررسی مفهوم Endianness پرداخته که مشخص کننده ترتیب ذخیره داده های چند بایتی توسط پردازنده ها در حافظه است . سپس به معرفی دستورالعمل های LEA و XCHG پرداخته شده است .
Aparat : https://www.aparat.com/v/qpium1k
Youtube : https://youtu.be/NWzpzb5qd7s
🆔 : @MrPythonBlog | BOOST
در این قسمت ابتدا به بررسی مفهوم Endianness پرداخته که مشخص کننده ترتیب ذخیره داده های چند بایتی توسط پردازنده ها در حافظه است . سپس به معرفی دستورالعمل های LEA و XCHG پرداخته شده است .
Aparat : https://www.aparat.com/v/qpium1k
Youtube : https://youtu.be/NWzpzb5qd7s
🆔 : @MrPythonBlog | BOOST
❤13👍2
🟣 اسمبلی x86 - قسمت 14 : دستورالعمل های ریاضیاتی
در این قسمت به بررسی دستورالعمل های ریاضیاتی INC , DEC , NEG , ADD , SUB خواهیم پرداخت که اعمال ریاضیاتی نظیر جمع و تفریق را برای ما انجام میدهند . همچنین تاثیر این دستورالعمل ها روی ثبات پرچم ها (FLAG) را نیز بررسی کرده ایم .
Aparat : https://www.aparat.com/v/aphag7c
Youtube : https://youtu.be/BNugNESKtmA
🆔 : @MrPythonBlog | BOOST
در این قسمت به بررسی دستورالعمل های ریاضیاتی INC , DEC , NEG , ADD , SUB خواهیم پرداخت که اعمال ریاضیاتی نظیر جمع و تفریق را برای ما انجام میدهند . همچنین تاثیر این دستورالعمل ها روی ثبات پرچم ها (FLAG) را نیز بررسی کرده ایم .
Aparat : https://www.aparat.com/v/aphag7c
Youtube : https://youtu.be/BNugNESKtmA
🆔 : @MrPythonBlog | BOOST
❤15👍1
🟣 اسمبلی x86 - قسمت 15 : ادامه دستورالعمل های ریاضیاتی
در این قسمت و در ادامه قسمت قبلی به بررسی دستورالعمل های ریاضیاتی ضرب و تقسیم علامت دار و بدون علامت و دستورالعمل های توسعه علامت دار (Sign-Extention) CWD و CBW پرداخته ایم .
Aparat : https://www.aparat.com/v/ydhsg17
Youtube : https://youtu.be/69mevt_QFCw
🆔 : @MrPythonBlog | BOOST
در این قسمت و در ادامه قسمت قبلی به بررسی دستورالعمل های ریاضیاتی ضرب و تقسیم علامت دار و بدون علامت و دستورالعمل های توسعه علامت دار (Sign-Extention) CWD و CBW پرداخته ایم .
Aparat : https://www.aparat.com/v/ydhsg17
Youtube : https://youtu.be/69mevt_QFCw
🆔 : @MrPythonBlog | BOOST
❤12👍1
🟣 اسمبلی x86 - قسمت 16 : دستورالعمل های منطقی
در این قسمت به بررسی دستورالعمل های منطقی AND , OR , NOT و XOR و کاربرد آن ها پرداخته ایم .
Aparat : https://www.aparat.com/v/pxym3a7
Youtube : https://youtu.be/F0ZHDCkWYAc
🆔 : @MrPythonBlog | BOOST
در این قسمت به بررسی دستورالعمل های منطقی AND , OR , NOT و XOR و کاربرد آن ها پرداخته ایم .
Aparat : https://www.aparat.com/v/pxym3a7
Youtube : https://youtu.be/F0ZHDCkWYAc
🆔 : @MrPythonBlog | BOOST
❤14👍3
🟣 اسمبلی 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
در این قسمت به بررسی دستورالعمل های SHR , SHL , SAR , SAL , ROR , ROL , RCR , RCL پرداخته که برای انجام عملگر های SHIFT و ROTATE میباشند . همچنین تاثیر آن ها روی اعداد و پرچم ها نیز بررسی شده است .
Aparat : https://www.aparat.com/v/nrslg33
Youtube : https://youtu.be/dm7i4dLfudU
🆔 : @MrPythonBlog | BOOST
❤14👍1
🟣 اسمبلی x86 - قسمت 18 : دستورالعمل پرش (JMP)
در این ویدیو به بررسی دستورالعمل پرش خواهیم پرداخت که به ما اجازه خواهد داد به نقطه ای دلخواه از برنامه خود پرش کنیم و اجرا را از سر بگیریم . با بهره گیری از این نوع دستورالعمل خاص و انواع شرطی آن که در آینده یاد خواهیم گرفت قادر خواهیم بود تا ساختار های دستور شرطی ، حلقه های شرط و ... را پیاده سازی کنیم .
Aparat : https://www.aparat.com/v/uyk1lvz
Youtube : https://youtu.be/yry1vBQJr8c
🆔 : @MrPythonBlog | BOOST
در این ویدیو به بررسی دستورالعمل پرش خواهیم پرداخت که به ما اجازه خواهد داد به نقطه ای دلخواه از برنامه خود پرش کنیم و اجرا را از سر بگیریم . با بهره گیری از این نوع دستورالعمل خاص و انواع شرطی آن که در آینده یاد خواهیم گرفت قادر خواهیم بود تا ساختار های دستور شرطی ، حلقه های شرط و ... را پیاده سازی کنیم .
Aparat : https://www.aparat.com/v/uyk1lvz
Youtube : https://youtu.be/yry1vBQJr8c
🆔 : @MrPythonBlog | BOOST
❤11👍1
🟣 اسمبلی x86 - قسمت 19 : دستورالعمل های مقایسه و پرش شرطی
در این قسمت به بررسی دستورالعمل های مقایسه (CMP) و پرش های شرطی خواهیم پرداخت که به وسیله ی آن ها میتوان بر اساس نتیجه یک شرط خاص و مقایسه ، به بخشی از برنامه پرش کرد . آن ها پایه ای برای پیاده سازی ساختار هایی نظیر دستورات شرط (IF/ELSE) و حلقه های شرط (WHILE , FOR , ...) هستند .
Aparat : https://www.aparat.com/v/kyxa36x
Youtube : https://youtu.be/2yqAkoIq6ZE
🆔 : @MrPythonBlog | BOOST
در این قسمت به بررسی دستورالعمل های مقایسه (CMP) و پرش های شرطی خواهیم پرداخت که به وسیله ی آن ها میتوان بر اساس نتیجه یک شرط خاص و مقایسه ، به بخشی از برنامه پرش کرد . آن ها پایه ای برای پیاده سازی ساختار هایی نظیر دستورات شرط (IF/ELSE) و حلقه های شرط (WHILE , FOR , ...) هستند .
Aparat : https://www.aparat.com/v/kyxa36x
Youtube : https://youtu.be/2yqAkoIq6ZE
🆔 : @MrPythonBlog | BOOST
❤13👍1😁1
🟣 اسمبلی x86 - قسمت 20 : حل تمرین محاسبه مجموع اعداد ۱ تا ۱۰۰
در این ویدیو به پیاده سازی تمرین مطرح شده در جلسه قبل یعنی محاسبه مجموع اعداد ۱ تا ۱۰۰ در زبان اسمبلی x86 خواهیم پرداخت .
Aparat : https://www.aparat.com/v/eoix8gr
Youtube : https://youtu.be/r9qZpYvf77M
🆔 : @MrPythonBlog | BOOST
در این ویدیو به پیاده سازی تمرین مطرح شده در جلسه قبل یعنی محاسبه مجموع اعداد ۱ تا ۱۰۰ در زبان اسمبلی x86 خواهیم پرداخت .
Aparat : https://www.aparat.com/v/eoix8gr
Youtube : https://youtu.be/r9qZpYvf77M
🆔 : @MrPythonBlog | BOOST
❤12👍2
🟣 اسمبلی x86 - قسمت 21 :تست بیت ها با دستورالعمل TEST
در این ویدیو به بررسی دستورالعمل TEST و نحوه استفاده از آن برای تست کردن یک بیت خاص در یک عدد خواهیم پرداخت .
همچنین به عنوان تمرین عملی برنامه ای برای تشخیص زوج یا فرد بودن یک عدد دلخواه با استفاده از دستورالعمل TEST پیاده خواهیم کرد .
Aparat : https://www.aparat.com/v/zee6oc3
Youtube : https://youtu.be/trVeaeD2b4Y
🆔 : @MrPythonBlog | BOOST
در این ویدیو به بررسی دستورالعمل TEST و نحوه استفاده از آن برای تست کردن یک بیت خاص در یک عدد خواهیم پرداخت .
همچنین به عنوان تمرین عملی برنامه ای برای تشخیص زوج یا فرد بودن یک عدد دلخواه با استفاده از دستورالعمل TEST پیاده خواهیم کرد .
Aparat : https://www.aparat.com/v/zee6oc3
Youtube : https://youtu.be/trVeaeD2b4Y
🆔 : @MrPythonBlog | BOOST
❤9👍2
🟣 اسمبلی x86 - قسمت 22 : دستورالعمل LOOP و JCXZ
در این ویدیو به معرفی دستورالعمل LOOP و حالات شرطی آن برای ایجاد حلقه ها و همچنین پیمایش آرایه ها به وسیله آن خواهیم پرداخت . همچنین به معرفی دستورالعمل JCXZ نیز پرداخته ایم .
Aparat : https://www.aparat.com/v/jelpd0d
Youtube : https://youtu.be/ewUhdVLyZ7A
🆔 : @MrPythonBlog | BOOST
در این ویدیو به معرفی دستورالعمل LOOP و حالات شرطی آن برای ایجاد حلقه ها و همچنین پیمایش آرایه ها به وسیله آن خواهیم پرداخت . همچنین به معرفی دستورالعمل JCXZ نیز پرداخته ایم .
Aparat : https://www.aparat.com/v/jelpd0d
Youtube : https://youtu.be/ewUhdVLyZ7A
🆔 : @MrPythonBlog | BOOST
👍9❤2
🟣 اسمبلی 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
در این قسمت به بررسی نحوه پیاده سازی انواع حالات ساختار های شرطی 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
❤11👍1🙏1
🟣 اسمبلی x86 - قسمت 24 : حل تمرینات قسمت قبلی
در این قسمت به حل تمرینات مطرح شده در قسمت قبلی با استفاده از ساختار های شرطی خواهیم پرداخت .
سه تمرین حل شده در این قسمت :
1 - برنامه ای که تعداد اعضای زوج و فرد یک آرایه را بشمارد .
2 - برنامه ای که بزرگترین عضو یک آرایه را پیدا کند .
3 - برنامه محاسبه قدرمطلق یک عدد .
Aparat : https://www.aparat.com/v/tvcfwn7
Youtube : https://youtu.be/kGxTzvqwdps
🆔 : @MrPythonBlog | BOOST
در این قسمت به حل تمرینات مطرح شده در قسمت قبلی با استفاده از ساختار های شرطی خواهیم پرداخت .
سه تمرین حل شده در این قسمت :
1 - برنامه ای که تعداد اعضای زوج و فرد یک آرایه را بشمارد .
2 - برنامه ای که بزرگترین عضو یک آرایه را پیدا کند .
3 - برنامه محاسبه قدرمطلق یک عدد .
Aparat : https://www.aparat.com/v/tvcfwn7
Youtube : https://youtu.be/kGxTzvqwdps
🆔 : @MrPythonBlog | BOOST
❤13👍1
🟣 اسمبلی 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
یکی از پرکاربردترین ساختار ها در زبان های برنامه نویسی سطح بالا ، حلقه های شرطی نظیر 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
❤11👍2
🟣 اسمبلی x86 - قسمت 26 : حل تمرین الگوریتم تشخیص اعداد اول
در این قسمت به حل اولین تمرین مطرح شده در قسمت 25 یعنی نوشتن برنامه ای در زبان اسمبلی که اعداد اول را تشخیص دهد پرداخته ایم .
Aparat : https://www.aparat.com/v/ymbai9v
Youtube : https://youtu.be/rGIktackBTI
🆔 : @MrPythonBlog | BOOST
در این قسمت به حل اولین تمرین مطرح شده در قسمت 25 یعنی نوشتن برنامه ای در زبان اسمبلی که اعداد اول را تشخیص دهد پرداخته ایم .
Aparat : https://www.aparat.com/v/ymbai9v
Youtube : https://youtu.be/rGIktackBTI
🆔 : @MrPythonBlog | BOOST
❤13👍1🔥1
🟣 اسمبلی x86 - قسمت 27 : حل چالش FizzBuzz
در این قسمت به بررسی دومین تمرین مطرح شده در قسمت ۲۵ خواهیم پرداخت و آن هم چالش FizzBuzz است . این چالش به این صورت است که برنامه ما باید اعداد یک بازه (مثلا ۱ تا ۱۰۰)را پردازش کند ، به جای اعدادی که مضرب ۳ هستند عبارت Fuzz را بنویسد و به جای اعدادی که مضرب ۵ هستندذ عبارت Bizz را بنویسد و به جای اعدادی که هم مضرب ۳ و هم مضرب ۵ هستند عبارت FizzBuzz را بنویسد .
Aparat : https://www.aparat.com/v/tyt63vw
Youtube : https://youtu.be/c6_4bTeLR9g
🆔 : @MrPythonBlog | BOOST
در این قسمت به بررسی دومین تمرین مطرح شده در قسمت ۲۵ خواهیم پرداخت و آن هم چالش FizzBuzz است . این چالش به این صورت است که برنامه ما باید اعداد یک بازه (مثلا ۱ تا ۱۰۰)را پردازش کند ، به جای اعدادی که مضرب ۳ هستند عبارت Fuzz را بنویسد و به جای اعدادی که مضرب ۵ هستندذ عبارت Bizz را بنویسد و به جای اعدادی که هم مضرب ۳ و هم مضرب ۵ هستند عبارت FizzBuzz را بنویسد .
Aparat : https://www.aparat.com/v/tyt63vw
Youtube : https://youtu.be/c6_4bTeLR9g
🆔 : @MrPythonBlog | BOOST
❤8🔥3👍1
🟣 اسمبلی x86 - قسمت 28 : حل چالش فیبوناچی
در این قسمت به حل آخرین تمرین مطرح شده در قسمت 25 یعنی حل چالش پیدا کردن جملات دنباله فیبوناچی خواهیم پرداخت .
Aparat : https://www.aparat.com/v/vmpez06
Youtube : https://youtu.be/QczOjB2AKeE
🆔 : @MrPythonBlog | BOOST
در این قسمت به حل آخرین تمرین مطرح شده در قسمت 25 یعنی حل چالش پیدا کردن جملات دنباله فیبوناچی خواهیم پرداخت .
Aparat : https://www.aparat.com/v/vmpez06
Youtube : https://youtu.be/QczOjB2AKeE
🆔 : @MrPythonBlog | BOOST
❤8🔥1