View Full Version : سوال: تفاوت
s.a.s.a.n
شنبه 05 بهمن 1392, 14:15 عصر
سلام . در تاپیک قبل سوال من کاملا حل شد . فقط من یه چیزی رو نمیدونستم ( که خیلی هم مهم بوده ) اون هم در مورد سیستم عامل هست .
حالا سوال من اینه : تا وقتی که سی پی یو عوض نشده و تفاوت فقط در سیستم عامل هست . برنامه نویسی اسمبلی در محیط های مختلف چه قدر فرق میکنه ؟
یعنی کسی که اسمبلی توی داس بلده ، یاد گرفتن اسمبلی برا ویندوز خیلی سخته ؟ چه ساختار های اساسی ای فرق می کنن ؟
m.j_banitaba
شنبه 05 بهمن 1392, 14:48 عصر
تفاوت در نحوه فراخوانی توابع و سطح دسترسی به منابع هست. در مثال تفاوت این دو مثل تفاوت اداره یک قایق بادبانی کوچک و یک ناوشکن جنگی مدرنه . در سیستم داس واسط وقفه ها هستند و شما وضعیت رجیسترها را با توجه به ورودی وقفه مورد نظر بارگذاری می کنید . اما در سیستم ویندوز یک واسط دیگر در این میان مداخله می کند و آن ntdll است این واسط دارای توابع استانداردی است که این توابع توسط وقفه یا sysenter با سیستم عامل ارتباط برقرار می کنند.نکته بعدی که تفاوت دارد این است که در dos یک محیط بدون محدودیت بود به این صورت که شما می توانستید به به راحتی به فضای آدرسی تمام حافظه دسترسی داشته باشید و io را بخوانید و بنویسید اما در ویندوز اینکارها نیازمند تعامل با سیستم عامل است . باز هم با توجه به مثال بالا در قایق بادبانی ناخدا ملوان و مسافر فقط خود شمایید اما در کشتی جنگی شما تنها ملوان ساده روی عرشه هستید.
s.a.s.a.n
شنبه 05 بهمن 1392, 16:28 عصر
تفاوت در نحوه فراخوانی توابع و سطح دسترسی به منابع هست. در مثال تفاوت این دو مثل تفاوت اداره یک قایق بادبانی کوچک و یک ناوشکن جنگی مدرنه . در سیستم داس واسط وقفه ها هستند و شما وضعیت رجیسترها را با توجه به ورودی وقفه مورد نظر بارگذاری می کنید . اما در سیستم ویندوز یک واسط دیگر در این میان مداخله می کند و آن ntdll است این واسط دارای توابع استانداردی است که این توابع توسط وقفه یا sysenter با سیستم عامل ارتباط برقرار می کنند.نکته بعدی که تفاوت دارد این است که در dos یک محیط بدون محدودیت بود به این صورت که شما می توانستید به به راحتی به فضای آدرسی تمام حافظه دسترسی داشته باشید و io را بخوانید و بنویسید اما در ویندوز اینکارها نیازمند تعامل با سیستم عامل است . باز هم با توجه به مثال بالا در قایق بادبانی ناخدا ملوان و مسافر فقط خود شمایید اما در کشتی جنگی شما تنها ملوان ساده روی ارشه هستید.
توضیح خیلی خوبی بود . پس این طور که مشخصه حدسم درست بود ؟
قرار نیس با یاد گرفتن مثلا تو محیط ویندوز ، توی لینوکس کارم راحت باشه ؟
و برای نوشتن برنامه ای که نیازمند داشتن سیستم عامل نباشه ( توسط سیستم عامل اجرا نمیشه بلکه خود سخت افزار بالافاصله با روشن شدن اجرا میکنه ، مثل خود سیستم عامل ) باید در چه حالتی اسمبلی رو یاد بگیرم ؟
m.j_banitaba
شنبه 05 بهمن 1392, 21:50 عصر
http://barnamenevis.org/showthread.php?435918-%D9%BE%D8%B1%D9%88%DA%98%D9%87-BYOOS
Delphi Coder
دوشنبه 07 بهمن 1392, 18:02 عصر
و برای نوشتن برنامه ای که نیازمند داشتن سیستم عامل نباشه ( توسط سیستم عامل اجرا نمیشه بلکه خود سخت افزار بالافاصله با روشن شدن اجرا میکنه ، مثل خود سیستم عامل ) باید در چه حالتی اسمبلی رو یاد بگیرم ؟
من اسمبلی 16 بیتی تحت DOS رو برای شروع پیشنهاد میکنم. وقفه ها و سرویسهای ی BIOS نیازی به بارگذاری سیستم عامل ندارند. اما یک مساله، اینکه بدون سیستم عامل تعامل با سخت افزار (کارت گرافیک، کارت شبکه و ....)کار مشکلی هست و شما فقط قادر به نوشتن برنامه های خیلی ساده خواهید بود.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.