بازگشت   پی سی سیتی > کامپیوتر اینترنت و شبکه Computer internet > زبان های برنامه نویسی Programming

زبان های برنامه نویسی Programming بحث در مورد زبانهای مختلف برنامه نویسی

 
 
ابزارهای موضوع نحوه نمایش
Prev پست قبلی   پست بعدی Next
  #1  
قدیمی 08-16-2008
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض اسمبلي - كوتاه از اسمبلي مادر همه زبانها

اسمبلي - كوتاه از اسمبلي مادر همه زبانها

اين زبان ‌ مادر‌همه زبان‌ها

اگر قصد داريد كه برنامه‌نويسي با زبان اسمبلي را آغاز كنيد و روش‌هاي قديمي و نزديك به زبان ماشين را براي رسيدن به هدف‌هاي برنامه‌سازي خود در پيش بگيريد، لازم است در زمينه‌هاي مختلفي، اطلاعات كسب كنيد كه در ادامه به مهم‌ترين آنها اشاره‌‌اي اجمالي خواهيم داشت.
سيستم اعداد
با اين‌كه با ورود به دنياي اسمبلي، از زبان ماشين و كدهاي عددي مربوط به آن فاصله گرفته‌ايم، اما نبايد فراموش كرد كه اسمبلي يك زبان نزديك به زبان ماشين است و زبان ماشين نيز چيزي نيست جز عدد و رقم و صفر و يك.
در واقع اگر مي‌خواهيم در سيستم اعداد قابل فهم رايانه محاسبات و عمليات منطقي خود را انجام دهيم بايد با روش‌ها و قوانين سيستم اعداد در مبناي 2‌(binary) آشنايي داشته باشيم. اعدادي كه ما در دنياي واقعي با آنها به انجام محاسبات خود مي‌پردازيم در مبناي‌ 10 (decimal) هستند. يعني از ارقام صفر تا 9 تشكيل شده‌اند.
بنابراين علاوه بر انجام محاسبات در مبناي 2، بايد بتوانيم اعمال تبديل از مبناي 10 به 2 و برعكس را نيز انجام دهيم.

زماني كه محاسبات در مبناي 2 انجام مي‌شود هر عدد شامل تعداد زيادي رقم خواهد بود كه تعداد اين ارقام در مبناي 2 از هر مبناي ديگري بيشتر خواهد بود. در نتيجه كار با آن كمي مشكل خواهد بود. در سيستم اعداد مبناهاي ديگري مثل مبناي 8 و 16 كه به ترتيب به آنها اكتال‌(octal) و هگزادسيمال‌ (hexadecimal) گفته مي‌شود نيز به كار مي‌رود.

در واقع در مبناي 8 و 16 به ترتيب هر 3 و 4 رقم مبناي 2 تنها به يك رقم تبديل مي‌شود و به اين ترتيب حجم ارقام نوشته شده به يك‌سوم و يك‌چهارم كاهش مي‌يابد. پس با دانستن اعمال تبديل اين مبناها به يكديگر و انجام محاسبات مربوط به آنها مي‌توان به سيستم اعداد در دنياي رايانه وارد شد.

ساختمان پردازنده‌
شما بايد با ساختمان پردازنده، تعداد و انواع ثبات‌ها، پرچم‌ها و ... و كاربرد هريك از آنها آشنا باشيد. هنگام برنامه‌نويسي معمولا يك سري قراردادها و پيش‌فرض‌ها براي به كارگيري ثبات‌ها در محاسبات وجود دارد كه بدون اطلاع از آنها، برنامه‌نويسي به اين زبان غيرممكن خواهد بود.
منابع مورد نياز براي اجرا
به هنگام ساخت يك فايل اجرايي نيازمند يك سري اعمال و رزرو كردن منابع مورد نياز براي برنامه خود خواهيد بود. در زبان‌هاي سطح بالا، اين امور توسط مترجم زبان به طور خودكار انجام مي‌شود، اما در اسمبلي، اين كار به عهده برنامه‌نويس است. بايد با انواع ساختمان داده‌هاي قابل استفاده در حافظه و طريقه كار هر كدام آشنايي داشته باشد تا بتواند در مواقع لزوم به درستي از امكانات موجود بهره گيرد.
دستور‌العمل‌ها
هر زبان برنامه‌نويسي تعدادي كلمه كليدي و يك گرامر دارد. هر برنامه‌نويس علاوه بر اين‌كه بايد به اين كلمات كليدي و گرامر آشنايي كامل داشته باشد بهتر است به طريقه كار آنها نيز احاطه داشته باشد.

هر چه اين آگاهي‌ها بيشتر باشد، خلاقيت در برنامه‌نويسي بيشتر بروز مي‌كند و تفاوت برنامه‌نويس‌ها و برنامه‌هاي مختلف در همين نكات خواهد بود. به عنوان يك مثال ساده دستور mov براي عمل انتساب به كار مي‌رود.

اگر بخواهيم مقدار ثباتAX را برابر با صفر قرار دهيم مي‌توانيم از دستورQ، mov AX استفاده كنيم.

اين اولين چيزي است كه براي اين كار به ذهن مي‌رسد. اما اگر طريقه عملكرد دستورXor را بدانيم و همچنين آگاه باشيم كه سرعت دستور Xor بيشتر از mov است، مي‌توانيم براي انتساب مقدار صفر به ثبات AX از دستور AX ،Xor AX استفاده كنيم. البته هر دوي اين دستورات در مقايسه با كارهاي ما بسيار سريع هستند و اگر قرار باشد يك بار اجرا شوند، تفاوت محسوسي در سرعت برنامه نخواهيم ديد، اما تفاوت در جايي احساس مي‌شود كه همين دستور در يك چرخه يا loop قرار مي‌گيرد و قرار است هزاران بار انجام شود. در آن زمان است كه تفاوت‌ها چشمگير و محسوس خواهد شد.

وقفه‌ها
در سيستم تعدادي وقفه وجود دارد كه هر كدام كاربرد خاصي دارند. وقفه سيگنالي از دستگاه جانبي يا برنامه در حال اجراست كه عمل خاصي را درخواست مي‌كند.

وقتي برنامه‌ در حال اجرا،‌ وقفه‌اي را دريافت مي‌كند، اجراي برنامه به تعويق مي‌افتد و كنترل اجراي برنامه به زيربرنامه‌اي مي‌رود تا به وقفه پاسخ دهد. هر وقفه زيربناي خاصي دارد كه به آن پاسخ مي‌دهد. بعد از اتمام كار وقفه، اجراي برنامه از همان نقطه كه قطع شده بود ادامه پيدا خواهد كرد. به عنوان مثال: تابع06H از وقفه 10H‌براي پاك كردن محتويات نمايشگر به كار مي‌رود.

اطلاعات بسيار ديگري هستند كه براي برنامه‌نويسي سيستم بايد به آنها احاطه داشت. هر دانشي در مورد سيستم و كاركرد آن، به شما كمك خواهد كرد.

با استفاده از كتاب‌هاي مختلف و راهنماهاي زبان اسمبلي كه در اينترنت موجودند مي‌توانيد شروع خوبي براي اين زبان داشته باشيد.

روزنامه جام جم ضميمه كليك
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
 


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 04:43 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها