من تازه دارم اسمبلي ياد مي گيرم
تو اين زبون خيلي چيزا برام مبهمه
چرا بايد سگمنت پشته تعريف كرد؟
از كجا ميشه فهميد وقفه ها چكار مي كنن و تابع هاشون چيه؟
سوال هاي ديگه اي هم دارم . راستي چرا يه بخش اسمبلي تو فروم باز نمي كنيد
راستي ايا عاقلانست كه ادم بعد از ياد گرفتن vb (نه به طور حرفه اي تنها با خواندن كتاب و استفاده از اين سايت چون خودم دارم واسه خودم ياد مي گيرم و فعلا دانشگاه اينا هم نرفتم) به زبان سختي مثل اسمبلي بپره و بخواد اونو ياد بگيره؟
زبان اسمبلی نزدیک ترین زبان به زبان ماشین میباشد و همه چیز باید برای آن تعریف شود .
این که پشته چه لزومی داره هنوز برای شما فکر میکنم یه کم زوده
کتاب مزیدی رو بگیر همه رو توش نوشته . تو اینترنت هم هست.
بعضی از کارهایی رو که با اسمبلی میشه کرد با هیچ زبون دیگه ای نمیشه کرد
یادت باشه که زبانها به 3 دسته تقسیم میشوند .
سطح بالا مثل پاسکال ،vb ، دلفی و... خاصیت : به زبان انسان نزدیک سرعت کم
سطح میانی : مانند c,c++ خاصیت :نیمی از خاصیتهای هر دو طبقه را دارد.
سطح پایین : مانند assembly خاصیت :از زبان انسان دور سرعت بسیار بالا
دوست من سلام
زبان اسمبلی کاربرد های خودش رو داره مثل طراحی درایور برای مدارهایی که به کامپیوتر متصل میشن و .... خصوصا مباحث پیشرفته مثل MMX یا Floating-point ها خیلی جذابه ولی خوب در مقابلش سختی های خودش رو داره ! همون طور که دوستمون در بالا هم اشاره کردند زبانهای سطح پایین برای یادگیری مشکل هستند چون به زبان انسان شبیه نیستند . به نظر من حرکت از VB به اسمبلی کار درستی نیست چون شما باید 10 برابر زحمت بکشی و کندوکاو کنی تا چیز ساده ای مثل آدرس ( اشاره گر در C ) یا Addressing mode ها رو یاد بگیری و تشخیص بدی که کدوم رو باید کجا استفاده کنی . معمولا برنامه نویس های ++C/C توی یادگیری اسمبلی موفق تر هستند چون مفاهیم حافظه رو بهتر درک کردند و برای ساخت یک برنامه سطح پایین آماده تر هستند . قبل از شروع اسمبلی من توصیه میکنم یک کتاب درباره معماری کامپیوتر بخونید تا با مفاهیمی مثل وقفه ها و ساختمان CPU و کاربرد های اونها آشنا بشی بعد بری سراغ اسمبلی !
در هر حال من سوالات شما رو جواب میدم :
اینکه Stack ( پشته ) چیه و کارش چیه میشه یه بحث مفصل در زمینه ساختمان داده ها ولی خوبه اینو بدونی که در برنامه های exe لزومی به بودن stack segment نیست . به پیغامی هم که linker بهت میده توجه نکن . در مقابلش برای برنامه های مقیم در حافظه یا برنامه های com وجودش الزامیه !
درباره وقفه ها بگم که دو نوع وقفه داریم : 1- سخت افزاری 2- نرم افزاری
اگه منظور شما اون وقفه هایی که با تابع INT توی سیستم ایجاد میشن همون وقفه های نرم افزاری هستند . همیشه توی انتهای کتاب های آموزش اسمبلی لیست این وقفه ها و کاربردش رو نوشته . بهتره برای اطلاع بیشتر به اونجا مراجعه کنی .
موفق باشی
مرسي
ولي من هيچ دل خوشي از c ندارم نمي دونم اصلا خوشم نمياد طرفش برم خودمم نمي دونم چرا با اينكه اين حرف شما رو باور دارم كه از c به assembly راحت تر هست و c زبان بسيار عالي هست به هر حال ببينم چكار مي كنم
در مورد حرفmamad2003 هم بايد بگم آره واقعا تو فهميدن ادرس و ثبات و .. مشكل دارم و اصلا نميفهمم اين ثبات به چه درد مي خوره و چرا تو interupt ها ثبات ها با هم فرق دارن و ...
اگه ميشه يك نفر بگه اين آدرس و ثبات ها اصلا چيه خيلي ممنون ميشم چون من هرچي اين كتابو مي خونم نميفهمم
کتاب مزیدی رو بخر واقعا عالی همه رو گفته
نقل قول: واقعا تو فهميدن ادرس و ثبات و .. مشكل دارم و اصلا نميفهمم اين ثبات به چه درد مي خوره و چرا تو interupt ها ثبات ها با هم فرق دارن و ...
من حرفم رو تکرار می کنم : قبل از شروع اسمبلی من توصیه میکنم یک کتاب درباره معماری کامپیوتر بخونید تا با مفاهیمی مثل وقفه ها و ساختمان CPU و کاربرد های اونها آشنا بشی بعد بری سراغ اسمبلی !
متاسفانه چون در ایران نیستم نمی تونم کتاب فارسی خاصی رو معرفی کنم .
به نظر من قبل از خوندن معماری کامپیوتر کتاب سیستم عامل استالینگ رو هم بخون واقعا عالیه .
بعد از این دیدگاهت کلا عوض میشه .
تازه میفهمی که همه ما تازه اولشیم راهی که معلوم نیست کی به پایان میرسد .
ممنون ولي من بالاخره تسليم c شدم و الان دارم كتاب اموزش c ماله قمي رو مي خونم تا بعدا به حساب assembly هم برسم از كتابي كه معرفي كرديد(سيستم عامل استالينگ) سعي مي كنم تهيش كنم
سلام.
چرا از C بدت میاد؟ با اینکه VB رو خیلی خیلی دوست دارم اما خدا وکیلی کد زیباتر از کد C هست؟
دوستان چند تا کتاب گفتن. یکی هم من میگم:
مفاهیم سیستم عامل
نوشته حمیدرضا مقسمی.
کتاب کنکوریه کاردانی به کارشناسی(برا کنکور خر زدمش) ولی فکر میکنم به درد شما هم بخوره.
باشه ممنون
ولي من تو سرفصل هاي اين كتابي كه گرفتم اصلا حرفي از api نزده (c رو ميگم ها)
تو c چجوري از api استفاده ميشه يا شايد عنوان ديگه اي داره اون چيه؟