مقاله اصول برنامه نویسی اسمبلی Assembly language

32 بازدید

اصول برنامه نویسی اسمبلی Assembly language

مقدمه:
برنامه نویسی اسمبلی در قلب ساختار محاسباتی سامانه های دیجیتال قرار دارد؛ جایی که ارتباط میان دستورهای انسانی و کدهای ماشینی به مستقیم ترین شکل ممکن برقرار می شود. این زبان نزدیک ترین سطح بیان نرم افزاری به عملکرد واقعی پردازنده به شمار می رود و هر دستور آن بازتابی از عملیاتی است که درون واحد پردازش مرکزی رخ می دهد. در چنین بستری، مفاهیمی مانند رجیستر، حافظه، مسیر داده و چرخه اجرای دستور نه به صورت انتزاعی، بلکه در قالب توالی دقیق فرمان ها معنا پیدا می کنند و ساختار منطقی اجرای برنامه را شکل می دهند.

در تراشه هایی مانند enCoRo که مجموعه ای محدود اما مشخص از دستورها را پشتیبانی می کنند، ماهیت فشرده و صریح زبان اسمبلی بیش از پیش نمایان می شود. تمامی برنامه ها بر پایه همان شمار اندک دستورهای تعریف شده شکل می گیرند و هر عملیات باید در چارچوب همین امکانات طراحی شود. چنین محدودیتی نه نشانه کاستی، بلکه بیانگر تمرکز معماری بر وظایف کنترلی و نمایشی مشخص است؛ وظایفی که سرعت اجرا، سادگی ساختار و پیش بینی پذیری رفتار در آن ها اهمیت ویژه ای دارد. در این فضا، هر خط کد مستقیماً با وضعیت سخت افزار پیوند می خورد و نتیجه اجرا بدون لایه های میانی پیچیده پدیدار می شود.

تفاوت بنیادین میان زبان های سطح بالا و اسمبلی در همین نزدیکی به سخت افزار نهفته است. در حالی که زبان های متداول برنامه نویسی از سازوکارهایی مانند حلقه های تکرار، انواع داده متنوع و ساختارهای انتزاعی بهره می برند، اسمبلی بر مجموعه ای محدود از عملگرهای پایه تکیه دارد. حذف این انتزاع ها موجب می شود جریان اجرای برنامه به صورت خطی، شفاف و وابسته به ترتیب دقیق دستورها شکل گیرد. نتیجه چنین رویکردی، کنترلی مستقیم بر زمان اجرا، نحوه دسترسی به حافظه و چگونگی تبادل داده با ورودی ها و خروجی هاست؛ ویژگی هایی که در سامانه های کوچک و هدفمند اهمیت تعیین کننده دارند.

هر دستور اسمبلی معادلی در کد ماشین دارد و مترجم اسمبلی وظیفه تبدیل نمادهای قابل خواندن به این کدهای دودویی را بر عهده می گیرد. برای نمونه، خواندن یک درگاه ورودی می تواند با نمادی مشخص بیان شود، در حالی که در سطح سخت افزار به عددی هگزادسیمال ترجمه می گردد. حضور عملوندها، تعیین آدرس ها و مشخص کردن محل داده ها باعث می شود هر فرمان نه تنها عملیاتی خاص را اجرا کند، بلکه محدوده اثر آن نیز دقیقاً روشن باشد. در کنار دستورهای اجرایی، دایرکتیوها نیز بخشی از ساختار برنامه را تشکیل می دهند؛ عناصری که به سازمان دهی حافظه، تعریف داده ها و هدایت فرایند ترجمه مربوط می شوند و نقشی متفاوت از فرمان های پردازنده دارند.

مترجم هایی مانند cyasm در محیط های ساده اجرایی، پیوند میان کد نوشته شده و فایل های قابل برنامه ریزی در حافظه های تراشه را برقرار می کنند. پشتیبانی از مجموعه دستورهای مشخص برای خانواده های گوناگون پردازنده، نشان دهنده وابستگی عمیق زبان اسمبلی به معماری سخت افزاری است؛ وابستگی ای که سبب می شود هر تغییر در ساختار تراشه، به تفاوت در دستورها و شیوه نگارش برنامه بینجامد. همین پیوند تنگاتنگ، اسمبلی را به زبانی ویژه برای تعامل مستقیم با اجزای درونی سیستم تبدیل کرده است.

درون تراشه، عناصری مانند حافظه برنامه، پشته داده، رجیسترهای وضعیت و مسیرهای ارتباطی USB چارچوب عملیاتی اجرای دستورها را تعیین می کنند. نحوه آدرس دهی دستگاه، حالت های مختلف ارتباطی، کنترل اندپوینت ها و سازوکارهای تبادل داده همگی در سطحی تعریف می شوند که با منطق اسمبلی هم راستا است. چنین ساختاری نشان می دهد که برنامه نویسی در این سطح نه صرفاً نگارش کد، بلکه سازمان دهی دقیق رفتار الکترونیکی سامانه در زمان اجراست.

در کنار اسمبلی، حضور زبان هایی مانند C در برخی معماری ها امکان بیان سطح بالاتری از منطق برنامه را فراهم می آورد، اما همچنان مرز میان این دو رویکرد در نحوه تعامل با سخت افزار باقی می ماند. معماری دستگاه، مدل های راه انداز، لایه های ارتباطی و شیوه مدیریت منابع، همگی بستری را ترسیم می کنند که در آن نقش اسمبلی به عنوان نزدیک ترین بیان نرم افزاری به ماشین همچنان برجسته است؛ زبانی که جریان واقعی اجرای دستورها را بی واسطه در دل ساختار پردازنده به حرکت درمی آورد.

فهرست مطالب
اصول برنامه نویسی اسمبلی
کدهای مترجم
ترجم Cyasm از ۳۷ دستور اسمبلی برای enCoRo پشتیبانی می کند
استفاده از مترجم
مترجم cyasm از ۱۳ دایرکتیو پشتیبانی می کند
.برنامه نویسی در C
مزیت های C
معماری تراشه
خصوصیات و محدودیت ها
درون تراشه
حافظه
اشاره گر پشته برنامه
اشاره گر پشته داده
ارتباطهای USB
آدرس دستگاه
حالت ها
حالت هایی که با اندپوینت صفر در رجیستر حالت مربوطه استفاده می شوند
حالتهایی که توسط اندپوینت ۱ و ۲ استفاده می شوند. اندپوینت های ۱ و ۲ ترنزکشن های Setup را قبول نمی کنند
کنترل و وضعیت اندپوینت
کنترل وضعیت USB
اصول راه انداز دستگاه
انواع استاندارد دستگاهها
دستگاههای شخصی
راه انداز دستگاه
مدهای کابر و هسته
مدل راه انداز Win32
مدل های راه انداز در ویندوزهای مختلف
زبانهای برنامه نویسی
راه اندازهای لایه ای
لایه های راه انداز USB
راه انداز کاربردی
راه اندازهای باس

قیمت محصول
48,000 62,338 تومان
23% تخفیف
تعداد صفحات
46
فرمت فایل
WORD
تضمین بازگشت وجه در صورت عدم رضایت