سلام
ببخشید من فقط تو این فروم سوال میپرسم
انشالله روزی برسه براتون مفید واقع بشم
من نیاز دارم که در لینوکس (اوبونتو 64 بیت) برای آشنایست و کار با syscall زبان اسمبلی رو یادبگیرم حالا چندتا سوال دارم:
خب نوع سیسنتکس اسمبلی که قرار استفاده کنم به نوع ساختمان cpu بستگی داره درسته ؟ حالا من میخوام یه برنامه با زبان اسمبلی بنویسم که روی همه cpu ها کار کنه میشه؟ یا اصلا ربطی نداره ؟
سوال دموم من از کجا متوجه بشم که cpu من از کدوم سینتکس پشتیبانی میکنه؟
سوال آخرم یه درخواسته یه منبع برای شروع اسمبلی (basic) میخوام و یه منبع به پیشرفته (advance)، میشه بهم معرفی کنید ؟
خب فروم واسه پرسیدنه دیگه
------
سوال اولتون یکم جواب دادنش سخته! چون دقیقا منظورتون رو نمیشه متوجه شد جوابش هم آره و هم نه هست!
از اون جهت میگم نه که اگه منظورتون از سینتکس؛ نحوه ی نوشتن کد هست؛ که باید بگم این به مدل cpu مربوط نمیشه؛ مثلا :
این نوع نوشتن یا سینتکس زبان هست که مستقل هستش؛
ولی از اون جهتی میگم آره؛ که چون مثلا نمیتونید در سیستم با cpu ؛ 32 بیتی مثلا با ثبات های rax و .. کار کنید! چون مخصوص سیستم 64 بیتی هستند و . . .
میشه برنامه ای نوشت که روی همه cpu ها کار کنه؛ به شرطی که از توابع داخلی یا به عبارتی از وقفه ها استفاده کنید؛ ولی فقط در حرف
مثلا اگه با 16 بیتی بنویسید میتوید توی 32 یا 64 بیتی اجراش کنید و . .
ولی در عمل مثلا اگه بخوایید یه برنامه 32 بیتی روی 64 بیتی احرا کنید باید حتما چندتا فایل و برنامه نصب کنید که قادر به اجراشون باشه ...
----------------------------
سوال دومتون: به جواب این سوال نگاه کنید:
https://stackoverflow.com/questions/7066...chitecture
** نکته: من باز هم منظور از سینتکس رو متوجه نمیشم؛ اگه منظورتون اینه که از 32 بیتی هست یا 64 و .. بهش میگن architecture .. سینتکس به نحو ی چیزی میگن! مثلا سینتکس c اینه که آخر هز دستور ; بزاریم و . . .
--------------------------
سوال سومتون:
اگه فارسی میخوایید کم پیدا میشه؛ یکی دو موردی یادمه دیده بودم؛ ولی اگه انگلیسی میخوایید تا دلتون بخواد هست
پیشنهاد من: اول اسمبلی معمولی رو که همه جا یاد میدن برای ویندوز؛ یاد بگیرید؛ و یعدش واسه لینوکس رو میشه از روی همون یاد گرفت! هیچ تفاوتی نمیکنه؛ فقط وقفه ها و ورودی خروجی و .. تفاوت داره
منابع nasm رو بخونید
خب نوع سیسنتکس اسمبلی که قرار استفاده کنم به نوع ساختمان cpu بستگی داره درسته ؟ نوعش برمیگرده به اسمبلی و اسمبلر که چطوری طراحی شده باشه ،هر زبان اسمبلی مختص به یک معماری رایانه خاص است
حالا من میخوام یه برنامه با زبان اسمبلی بنویسم که روی همه cpu ها کار کنه میشه؟ اگرمنظورتون با معماری متفاوت هست جواب منفی است،اما توی خانواده های اون پردازنده قابل اجراست البته درصورتی که سازگاری رو در معماری لحاظ کرده باشن
سوال دموم من از کجا متوجه بشم که cpu من از کدوم سینتکس پشتیبانی میکنه؟ هر پردازنده ک ساخته میشه توسط همون شرکت سازنده یک اسمبلر پایه ساخته میشه که کارش تبدیل دستورات ب کد ماشین هست (ی کمپایلر)،شما میتونید با مراجعه ب وب سایت مورد نظر نوع معماری و اسمبلر مخصوص اون پردازنده رو پیدا کنید