PDA

View Full Version : سوال: اسمبلی سی پی یو های کنونی



s.a.s.a.n
جمعه 04 بهمن 1392, 14:56 عصر
سلام . من تازه زبان اسمبلی رو شروع کردم و میخواستم ببینم برای سی پی یو های کنونی ( core i 5 & core i7 &...) از چه اسمبلری معمولا استفاده میشه و یه منبع برای آموزش دستورات اسمبلی برای سی پی یو های نسل جدید میخواستم . نه سی پی یو هایی مثل 8086

m.j_banitaba
جمعه 04 بهمن 1392, 22:12 عصر
این بستگی داره که در چه مدی از پردازنده و تحت کدام پلتفرم بخواهید برنامه نویسی کنید. اصولا تحت کدام سیستم عامل برای کدام کاربرد درایور با برنامه کاربردی .

s.a.s.a.n
شنبه 05 بهمن 1392, 09:23 صبح
این بستگی داره که در چه مدی از پردازنده و تحت کدام پلتفرم بخواهید برنامه نویسی کنید. اصولا تحت کدام سیستم عامل برای کدام کاربرد درایور با برنامه کاربردی .



هم مد real و هم مد protected . من که نمیخوام وابسته به سیستم عامل باشم . نمیخوام که با زبان سطح بالا کار کنم که وابسته به سیستم عامل باشم . منظورتون رو متوجه نشدم

m.j_banitaba
شنبه 05 بهمن 1392, 09:25 صبح
تقریبا اکثر اسمبلر ها کد .386 را پشتیبانی میکنند و این دستورات را نسلهای بعدی نیز پشتیبانی می کنند. آیا بیشتر از امکانات 386 را برای کار نیاز دارید؟

s.a.s.a.n
شنبه 05 بهمن 1392, 10:10 صبح
تقریبا اکثر اسمبلر ها کد .386 را پشتیبانی میکنند و این دستورات را نسلهای بعدی نیز پشتیبانی می کنند. آیا بیشتر از امکانات 386 را برای کار نیاز دارید؟


نه فکر نکنم . تقریبا جواب سوالم همون بود . حالا منظورتون از کد .386 چی هست ؟اگه منظورتون سری دستورات هست میشه منبعی ، لینکی ، سایتی معرفی کنید تا یاد بگیرم . خیلی ممنون . گفتم من مبتدی هستم و خیلی دوس دارم یاد بگیرم .
سوال دیگه م اینه که چطوری بدون نیاز به سیستم عامل برنامه اسمبلی ای که نوشته م رو اجرا کنم ؟ مربوط به مقیم کردن تو حافظه میشه یا چیزای دیگه ؟ خیلی خیلی ممنون

m.j_banitaba
شنبه 05 بهمن 1392, 11:13 صبح
ببینید این راه یکمی طولانی و شما باید قدم به قدم اون را بپیمایید. در سیستمهای pc برنامه راه انداز که ما اون را post می نامیم از مجموعه کدهای BIOS اجرا می شود سپس در انتها 512 بایت اول دیسک مربوط به boot را به اختصار mbr می نامند را در آدرس 0x7c00 بار گذاری میکند و در این حالت پردازنده در حالت realmode می باشد و شما پردازنده ای شبیه به 8086 در اختیار دارید . بهترین مرجع برای این سوالات شما در همین سایت بخش توسعه سیستم عامل است و سایت http://wiki.osdev.org/

s.a.s.a.n
شنبه 05 بهمن 1392, 11:21 صبح
ببینید این راه یکمی طولانی و شما باید قدم به قدم اون را بپیمایید. در سیستمهای pc برنامه راه انداز که ما اون را post می نامیم از مجموعه کدهای BIOS اجرا می شود سپس در انتها 512 بایت اول دیسک مربوط به boot را به اختصار mbr می نامند را در آدرس 0x7c00 بار گذاری میکند و در این حالت پردازنده در حالت realmode می باشد و شما پردازنده ای شبیه به 8086 در اختیار دارید . بهترین مرجع برای این سوالات شما در همین سایت بخش توسعه سیستم عامل است و سایت http://wiki.osdev.org/


و در مورد قسمت اول سوالم چی ؟ منظورتون از کد 386 چی بود؟ و این که جدیدا معمولا از چه اسمبلر هایی استفاده میشه ؟

m.j_banitaba
شنبه 05 بهمن 1392, 11:49 صبح
کدهای 386 شامل پشتیبانی از صفحه بندی سخت افزاری و محافظت از io و مدهای real, protect,vitual و مجموعه رجیسترهای 32 بیتی می شود.fasm رو برای شروع پیشنهاد می کنم .چون برای تولید فایل باینری خیلی راحته.

MSK
دوشنبه 07 بهمن 1392, 11:41 صبح
سلام؛
این دوتا لینک رو ببینید. اینها رفرنس‌های خود اینتل هستند.
http://software.intel.com/en-us/articles/introduction-to-x64-assembly
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

aakh1361
سه شنبه 29 بهمن 1392, 15:09 عصر
کلا سه نوع دستورالعمل در خانواده 86 هست

اولی دستورات 8086 هست که مربوط به زمان داس هست و کلا تو دنیای کاربردی واقعی منقرض شده و فقط تو دانشگاه جهت اشنای با اسمبلی اموزش داده میشه
که رجیستر های AX و BX و CX و .... بودند

سری دوم دستورات 32 بیتی بودند که همون دستورالعمل های قدمی ولی با پهنای بیشتر و چند نوع دستور العمل جدید همراه بود که بعد از پایان دوران ویندوز XP و تولید سی پی یو های جدید تقریبا کاربرد این سری دستورالعمل ها هم به تاریخ میپیوندند
که رحیسترهای EAX و EBX و ECX و ... بودند

سری سوم دستورات 64 بیتی هستند که چند سالی هست دورانش شروع شده و همون خانواده از دستور العمل های قدیمی هست که طول ثبات هاش شده و تعدادی دستورالعمل جدید علاوه بر قبلی ها هم اضافه شده حالا 64 بیت شدند و تقریبا اکثر سیستم عامل های جدید هم به صورت 64 بیتی عرضه میشوند مثل ویندوز سرور 2012 که فقط به صورت 64 بیتی عرضه شده

که رجیستر های RAX و RBX و RCX و ... جز ثباتهای این سری هستند

اگر میخواید اسمبلی رو به صورت حرفه ای و کاربردی یاد بگیرید بهتر برسد سراغ اسمبلی 64 بیتی

infinity2
پنج شنبه 01 اسفند 1392, 02:13 صبح
واسه اجرای کد هم ار
VMware
استفاده کنی راحت تره
واسه این کار باید یه هارد مجازی بسازی بعدش با
hex editor
بیای از آدرس 0 کد اسمبل شده رو بریزی تو اون هارد مجاری بعدش تو آدرس 01feh باید بنویسی 55aa بعدش هم برو تو
VM
و
powerup
کن