قالب دستورات در زبان اسمبلی Assembly

  • جمعه ۲۰ آذر ۱۳۹۴
  • بازدید ۲,۰۲۴ نفر

تصویر format-statement-assembly-12532 قالب دستورات در زبان اسمبلی Assembly

قالب دستورات در زبان اسمبلی Assembly

در این بخش از آموزش زبان اسمبلی برای شما کاربران عزیز آموزش قالب دستورات در زبان اسمبلی Assembly را  آماده کرده ایم که می توانید در ادامه آن را مشاهده کنید.

هر برنامه در اسمبلی شامل مجموعه ای از دستورات است که بعضی از این دستورات اجرایی هستند و به زبان ماشین ترجمه می شوند و بعضی دیگر راهنمای اسمبلر هستند مانند تعریف داده و غیره.

در حالت کلی قالب دستورات در زبان اسمبلی به شکل زیر است.

توضیحات     عملوند    دستورالعمل     شناسه

در حالت کلی دستورات،عملوندها،شناسه ها و توضیحات در داخل کروشه قرار دارند و به معنای اختیاری بودن است. دستورات در زبان اسمبلی ممکن است فاقد شناسه، عملوند و توضیحات باشند.

توضیحات بیشتر قالب دستورات در زبان اسمبلی Assembly را در ادامه مطلب می توانید مشاهده کنید.

شناسه ها در زبان اسمبلی:

از عناصر زبان برنامه نویسی اسمبلی است مثل نام زیربرنامه یا نام برنامه، برچسب و یا عملوندها و باید دارای نامی باشد و برای نام گذاری آن از حروف A تا Z و a تا z – ارقام 0 تا 9 و کاراکترهای مانند ؟، -، $، .، @ استفاده می شود و حداکثر طول آن 31 کاراکتر می تواند باشد.

شناسه در زبان اسمبلی می تواند آدرس داده، دستورالعمل، زیر برنامه و یا سگمنت باشد. وجود شناسه ها در برنامه باعث می شود تا برنامه نویس به راحتی به آن دسترسی داشته باشد.

دستورالعمل های در زبان اسمبلی به کامپیوتر می گوید که باید چه کاری را انجام دهد و به دو دسته تقسیم می شود.

  • دستوراتی که به کد زبان ماشین ترجمه می شوند.
  • دستوراتی که راهنمای اسمبلر هستند و به اسمبلر می گوید که باید چه کاری را انجام دهد.

قالب برنامه در زبان اسمبلی به شکل زیر می باشد.

تعریف سگمنت پشته

تعریف سگمنت داده

نام سگمنت کد segment

نام زیربرنامه proc far

نام زیربرنامه endp

نام سگمنت کد ends

End نام زیربرنامه

نحوه تعریف سگمنت ها در زبان اسمبلی:

هر برنامه ممکن است دارای چند سگمنت باشد از جمله سگمنت پشته، سگمنت داده، سگمنت کد و سگمنت اضافی. برای تعریف سگمنت از کلمه Segment به شکل زیر استفاده می کنیم .

نام سگمنت    segment     پارامترها

نام سگمنت     ends

در قالب بالا نام سگمنت اختیاری است و از باید قوانین تعریف شناسه را رعایت کنید و بعد از آن کلمه کلیدی segment را قرار می دهید و در آخر پارامترهای سگمنت را مشخص می کنید. در قالب بالا به جای علامت سه نقطه کدهای مربوط به سگمنت را می نویسید و در آخر با آوردن نام سگمنت و کلمه Ends سگمنت را می بندید.

پارامترهای که در دستور Segment می توانید قرار بدهید عبارتند از پارامتر تنظیم، پارامتر ترکیب و پارامتر کلاس.

پارامتر تنظیم: این پارامتر مرز شروع شدن سگمنت را مشخص می کند و می تواند یکی از مقادیر زیر را به خود بگیرد.

BYTE: آدرس سگمنت از هر نقطه ای از حافظه می تواند شروع شود.

WORD: سگمنت از نقطه ای که آدرس حافظه آن زوج باشد می تواند شروع شود.

PARA: آدرس سگمنت از مرز پاراگراف می تواند شروع شود.

PAGE: سگمنت از آدرسی که بر 256 قابل قسمت باشد می تواند شروع شود.

پارامترهای ترکیب: از پارامتر مشخص می کند که آیا سگمنت با سگمنت های دیگر پس از ترجمه ترکیب شود یا خیر و مقادیر زیر را می تواند به خود بگیرد.

NONE: سگمنت به صورت منطقی از سایر سگمنت ها جدا در نظر گرفته می شود ولی ممکن است از نظر فیزیکی در کنار یکدیگر قرار گرفته باشند.

PUBLIC: برنامه پیوند دهنده سگمنت های عمومی با نام و کلاس یکسان را در کنار هم قرار میدهد.

STACK: برنامه ای که عمل پیوند را انجام می دهد پشته را عمومی در نظر می گیرد.

COMMON: برنامه ای که عمل پیوند را انجام می دهد سگمنت های با نام و کلاس یکسان آدرس یکسانی را می دهد.

AT: اگر آدرس پاراگراف با AT تعریف شود در این حالت برچسب ها و متغیر ها در آفست ثابتی از ناحیه حافظه می توان تعریف کرد.

نحوه تعریف رویه یا زیربرنامه در زبان اسمبلی:

هر برنامه به زبان اسمبلی حداقل باید یک رویه یا زیربرنامه داشته باشد و آن در سگمنت کد تعریف می شود. برای تعریف زیربرنامه از دستور Proc استفاده می کنیم در شکل زیر قالب تعریف یه زیربرنامه در زبان اسمبلی را مشاهده می کنید.

نام زیربرنامه   Proc   far

نام زیربرنامه   endp

در تعریف بالا زیربرنامه اصلی با کلمه far به معنای دسترسی از راه دور به این زیربرنامه مشخص می شود.

تعیین اهداف هر سگمنت با دستور assume:

بعد از اینکه سگمنت های برنامه را مشخص کردید باید هدف هر یک از سگمنت ها را در برنامه مشخص کنید که این کار با دستور assume در قسمت زیر رنامه اصلی مشخص می شود.

قالب کلی در assume در اسمبلی:

assume    cs:سگمنت کد, ds:سگمنت داده, ss:سگمنت پشته, es:سگمنت اضافی

خروجی 1:

تصویر format-statement-assembly-12532-1 قالب دستورات در زبان اسمبلی Assembly

 

ثبت نظر
ریفریش کنید!
نظرات کاربران (۴ مورد)
  1. تصویر آواتار کاربر 0
    ساناز رستگار جمعه , 25 تیر

    سلام من یه برنامه دارم که باید به زبان اسمبلی نوشته بشه شما می تونید این کار رو انجام بدین ؟

  2. تصویر آواتار کاربر 0
    وحید شنبه , 31 تیر

    سلام . عالی بود . با قدرت به امر احیای زبان اسمبلی ادامه دهید . موفق باشید

  3. تصویر آواتار کاربر 0
    ALI جمعه , 31 فروردین

    خیلی ممنون واقعا عالی بود خدا خیرتون بده

  4. تصویر آواتار کاربر 0
    حسین جمعه , 20 دی

    فیلم بی صدا هیچ بدرد نمی خورد.