ايران ويج

نسخه‌ی کامل: معرفی کتاب برای شروع اسمبلی و چند سوال
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
ببخشید من فقط تو این فروم سوال میپرسم غمگین - بهینه شده برای ورژن جدید  انشالله روزی برسه براتون مفید واقع بشم
من نیاز دارم که در لینوکس (اوبونتو 64 بیت) برای آشنایست و کار با syscall زبان اسمبلی رو یادبگیرم حالا چندتا سوال دارم:
خب نوع سیسنتکس اسمبلی که قرار استفاده کنم به نوع ساختمان cpu بستگی داره درسته ؟ حالا من میخوام یه برنامه با زبان اسمبلی بنویسم که روی همه cpu ها کار کنه میشه؟ یا اصلا ربطی نداره ؟

سوال دموم من از کجا متوجه بشم که cpu من از کدوم سینتکس پشتیبانی میکنه؟

سوال آخرم یه درخواسته یه منبع برای شروع اسمبلی (basic) میخوام و یه منبع به پیشرفته (advance)، میشه بهم معرفی کنید ؟
خب فروم واسه پرسیدنه دیگه خنده بلد − بهینه شده برای ورژن جدید

------
سوال اولتون یکم جواب دادنش سخته! چون دقیقا منظورتون رو نمیشه متوجه شد جوابش هم آره و هم نه هست! 

از اون جهت میگم نه که اگه منظورتون از سینتکس؛ نحوه ی نوشتن کد هست؛ که باید بگم این به مدل cpu مربوط نمیشه؛ مثلا :
کد:
mov SRC,DST
این نوع نوشتن یا سینتکس زبان هست که مستقل هستش؛

ولی از اون جهتی میگم آره؛ که چون مثلا نمیتونید در سیستم با cpu  ؛ 32 بیتی مثلا با ثبات های rax و .. کار کنید! چون مخصوص سیستم 64 بیتی هستند و . . .

میشه برنامه ای نوشت که روی همه cpu ها کار کنه؛ به شرطی که از توابع داخلی یا به عبارتی از وقفه ها استفاده کنید؛  ولی فقط در حرف خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید مثلا اگه با 16 بیتی بنویسید میتوید توی 32 یا 64 بیتی اجراش کنید و . . 
ولی در عمل مثلا اگه بخوایید یه برنامه 32 بیتی روی 64 بیتی احرا کنید باید حتما چندتا فایل و برنامه نصب کنید که قادر به اجراشون باشه ...  

----------------------------
سوال دومتون: به جواب این سوال نگاه کنید:
https://stackoverflow.com/questions/7066...chitecture
** نکته: من باز هم منظور از سینتکس رو متوجه نمیشم؛ اگه منظورتون اینه که از 32 بیتی هست یا 64 و .. بهش میگن  architecture .. سینتکس به نحو ی چیزی میگن! مثلا سینتکس c اینه که آخر هز دستور ; بزاریم و . . .

--------------------------
سوال سومتون:
اگه فارسی میخوایید کم پیدا میشه؛ یکی دو موردی یادمه دیده بودم؛ ولی اگه انگلیسی میخوایید تا دلتون بخواد هست

پیشنهاد من: اول اسمبلی معمولی رو که همه جا یاد میدن برای ویندوز؛ یاد بگیرید؛ و یعدش واسه لینوکس رو میشه از روی همون یاد گرفت! هیچ تفاوتی نمیکنه؛ فقط وقفه ها و ورودی خروجی و .. تفاوت داره
منابع nasm رو بخونید
خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدیدچی نوشتم! چیزی متوجه نشدی حق میدم بهت خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید
خب نوع سیسنتکس اسمبلی که قرار استفاده کنم به نوع ساختمان cpu بستگی داره درسته ؟ نوعش برمیگرده به اسمبلی و اسمبلر که چطوری طراحی شده باشه   ،هر زبان اسمبلی مختص به یک معماری رایانه خاص است

حالا من میخوام یه برنامه با زبان اسمبلی بنویسم که روی همه cpu ها کار کنه میشه؟ اگرمنظورتون با معماری متفاوت هست جواب منفی است،اما توی خانواده های اون پردازنده قابل اجراست البته درصورتی که سازگاری رو در معماری لحاظ کرده باشن

سوال دموم من از کجا متوجه بشم که cpu من از کدوم سینتکس پشتیبانی میکنه؟ هر پردازنده ک ساخته میشه توسط همون شرکت سازنده یک اسمبلر پایه ساخته میشه که کارش تبدیل دستورات ب کد ماشین هست (ی کمپایلر)،شما میتونید با مراجعه ب وب سایت مورد نظر نوع معماری و اسمبلر مخصوص اون پردازنده رو پیدا کنید