سلام دوستان
من تازه کارهستم و می خوام بدونم با کدوم یک از نوع های زبان اسمبلی کنترل بهتری بر سیستم و کامپیوتر و سخت افزار داریم؟
خیلی خیلی خیلی ممنونننننننننن
سلام دوستان
من تازه کارهستم و می خوام بدونم با کدوم یک از نوع های زبان اسمبلی کنترل بهتری بر سیستم و کامپیوتر و سخت افزار داریم؟
خیلی خیلی خیلی ممنونننننننننن
سلام
اسمبلی 32 یا 64 بستگی به سخت افزارتون داره
شما از همون 32 بیت شروع کنید خوب که راه افتادید برید سمت 64 بیت
در ویندوز دسترسی مستقیم به سختافزار وجود ندارد( اسمبلی 32 و 64 بیتی )
باید به سمت نوشتن درایور برید که فکر نمیکنم هدف شما این باشه
در حقیقت سوال شما چیز دیگری باید باشد که به اشتباه این طوری پرسیده شده
اسمبلی 32 بیتی برای سختافزار 32 بیتی است
و اسمبلی 64 بیتی برای سختافزار 64 بیتی
پیچیدگیهای زیاد در اسمبلی 64 بیتی و توسعه نیافتن ابزارهای کمکی برای آن( تا حالا )
باعث شده اسمبلی 64 بیتی خیلی کمتر از اسمبلی 32 بیتی مورد استفاده باشه
در واقع هدف من از یاد گرفتن اسمبلی کنترل بهتر بر سیستم(ارتباط با نرم افزارهای ویندوز ، کرک ، ساخت نرم افزارهای گرافیکی و داس و یا کمک گرفتن از آن در نرم افزار به دلیل حجم کم و سرعت بالای اسمبلی) هست و اینقدر متنوع درباره زبان های اسمبلی در این تالار صحبت شده که کسی همچون من که تازه می خواد شروع کنه گیج می شه ........می خوام بدونم باید برای رسیدن به این اهدافم چطوری شروع کنم؟
سپاس فراوان از یاری شما دوستان خوب
با سلام
دوست عزیز ذکر این نکته خالی از لطف نیست که قبلش باید یه پیش ضمینه برنامه نویسی (مثل سی یا سی پلاس پلاس) داشته باشید
برای اسمبلی هم کتاب زبان ماشین و اسمبلی: کاربرد آن در کامپیوترهای شخصی خوبه
چون اسمبلی تا حدودی نیاز به دونستن سخت افزار داره پیشنهاد می کنم کتاب "اصول سیستم های کامپیوتری " رو هم برای مطالعه(بخشی از کتاب و نه کل کتاب)
رو هم داشته باشید
**اگه کسی از دوستان منبعی (چه کتاب و چه وب سایت) برای سخت افزار سراغ داره که می تونه جایگیزین برای کتاب "اصول سیستم های کامپیوتری " باشه معرفی کنه
دنیای DOS با دنیای Windows تفاوت زیادی داره. من خودم اسمبلی رو از DOS شروع کردم با یه کتاب آموزش اسمبلی که مال جهاد دانشگاهی مشهد بود شونصد بار خوندم تا بالاخره یه چیزایی دستم اومد چون اونموقع منابع مثل الان زیاد نبود ولی کتابهایی که برای DOS خیلی مفید دیدم یکی کتاب Peter Norton بود (که متاسفانه اسم کتاب دقیق یادم نیست PC Programming Guide یه همچین چیزی) و دیگری PC Intern. وقتی مباحث Protected Mode و سیستم عامل Windows مطرح شد تازه فهمیدم که خیلی از اطلاعاتی که داشتم زیاد به درد نمی خوره و باید با مفاهیم برنامه نویسی توی ویندوز آشنا شد توی DOS درایور و این چیزا زیاد مثل ویندوز معنی نداره و معمولا برنامه نویسا برای رسیدن به هدف با خود سیستم و وقفه ها مستقیما درگیر بودند تو ویندوز کاملا متفاوت هست و همه چی API و درایور ها هست برنامه Resident یا وقفه مفهوم چندانی ندارند همونطور که تو DOS کلمه ای مثل Thread مفهوم نداره.
تنها چیزی که از برنامه نویسی اسمبلی DOS برای ٌWindows می مونه چند تا دستور اسمبلی مثل movو َAdd و Sub و Neg و ... بیشتر نیست.
بنابراین من فکر میکنم حداقل باید مرز DOS یا Windows رو برای خودتون جدا کنید و بعد به یاد گیری ادامه بدید.
همون منظورم ویندوز هستش
کتاب Peter Norton به درد شما نمیخوره
اسمبلی 16 بیتی اونم با Tasm آموزش داده
شما اگه بخواهید از اون کتاب استفاده کنید
اول باید یک کتاب بخونید که چه طوری Tasm رو پیدا کنید و چه طوری اون رو روی سیستمهای جدید اجرا کنید !
یه توضیح سریع در مورد تفاوت اصلی اسمبلی 16 - 32 - 64 بیتی
جدا از اینکه سازنده پردازنده کی باشه چرا که به طور کلی دستورات و ساختار پردازنده ها با هم متفاوت هستناسمبلی 32 با 64 چه فرقی دارند؟
این بحث خیلی طولانی هست و نیاز به شناخت پردازنده داره که از جنبه های نرم و سخت افزاری تغییرات زیادی کردن(اما با حفظ امکانات قبل)
به عنوان مثال موارد قابل لمس برای برنامه نویس سایز رجیستر ها و آدرس دهی سرعت چندین برابر اجرا روی 64 بیت ها و در کل تکنولوژی های جدید بکار رفته کاملا متفاوت هست اما همه پردازنده های قبل رو پشتیبانی میکنند بدلیل بکوارد کامپتیبل بودن(همه پردازنده های با ساختار اینتل)
برای اطلاعات بیشتر
http://en.wikipedia.org/wiki/List_of...icroprocessors
در این لینک از شروع تولید پردازنده اینتل تا به نسل های امروز رو ببنید و با کلیک بر روی هر مدل از پردازنده ها اطلاعات بیشتری رو بدست بیارید .
نیاز به آشنایی پلتفورم x86,x64,ia32 و یا ia64 دارینمن تازه کارهستم و می خوام بدونم با کدوم یک از نوع های زبان اسمبلی کنترل بهتری بر سیستم و کامپیوتر و سخت افزار داریم؟
میتونید در لینوکس برای هر پردازنده ای اسمبلی قابل حمل بنویسید بله قابل حمل تعجب نکنید :D
برای مثال: با سینتکس at&t برای mac,win,linux &etc برنامه بنویسید.
البته سینکس اینتل که خیلی روان تر هست برای شروع!!!
به نظر من از صفر شروع کنید به یادگیری بدلیل فهم بهتر و پیچدیگی کمتر پردازنده البته به این شکل هم نیست که مد پردازنده عوض شده و در یوزر مد و فلت مدل شدن حافظه در ویندوز نمیتونید خیلی کار هارو بکنید و اون دانش در حد آشنایی با سمبل ها به کارتون بیاد
از 8086 بعد 80286 و بعد 80386 و بعد دستورات جدید و امکانات اضافه شده پردازنده ها مثل مد های کاری و سمبل و تغییرات رجیستر و...
و بعد برای داس ،ویندوز و یا بدون سیستم عامل نیاز به آشنایی با وقفه های بایوس ، داس و api های 16 و 32 ویندوز دارین و کار کردن با دستگاه های ورودی - خروجی نیاز به آشنایی با پورت ها
بهترین ابزار برای 8086 ، emu8086 هست قابل اجرا روی ویندوز7، 64 بیتی و برای اجرای فایل روی وین 7 x64 بدون emu نیاز به dosbox یا VM ها دارین. البته به این معنی نیست که فقط برای 16 بیتی استفاده میشه میتونید برای 32 بیتی هم استفاده کنید چون از flat assembler برای اسمبل کردن استفاده میکنه
در ویندوز برای 32 هم masm32 & winasm بهترین ها هست.
و در نهایت به 64 برسید و api هاش ...
همه موارد بالا با زبان سطح بالا قابل انجام هست و اگر نیاز مبرم به سرعت بود یا اپتیمایز کردن کد(باز بعضیا نگن کامپایلر امروزی اپتیمایر میکنه پس نیازی نیست بهتره کتاب های این زمینه رو مطالعه کنید مثل pro asm language ) و... میشه از میکس کردن کد اسمبلی یا نوشتن dll برای زبان سطح بالا و... استفاده کرد(ارتباط با نرم افزارهای ویندوز ، کرک ، ساخت نرم افزارهای گرافیکی و داس و یا کمک گرفتن از آن در نرم افزار به دلیل حجم کم و سرعت بالای اسمبلی)
البته فقط کرکینگ برای شروع نیاز به دونستن اسمبلی داره و همچنین مباحث دیگه مثل دیباگر ها ، دی اسمبلر ها و دی کامپایلرها ، هگز ادیتور ها وآشنایی با ابزارهای این کار همچنین آشنایی به سیستم عامل و توابع api چون برنامه ها به صورت انبوه استفاده میکنند.
موفق باشید
سلام، دوستان من خیلی وقت است در سایت برنامه نویس فعالیت ندارم پس لطف کنید پیام خصوصی ندین، در صورتی که با اینجانب کاری داشتین از طریق ایمیل xman_1365_x@yahoo.com می تونید با من مکاتبه کنید. موفق باشید.