دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۵
  • اردیبهشت

جلسه ۰۳ : سینتکس در زبان اسمبلی (Assembly)

  • دسته‌بندی‌ها :
جلسه ۰۳ : سینتکس در زبان اسمبلی (Assembly)
    • جزئیات
    • نوع محتواآموزشی

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

      سینتکس در زبان اسمبلی (Assembly)

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

      • بخش data
      • بخش bss
      • بخش text

      بخش data

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

      سینتکس اعلان بخش data به صورت زیر است.

      مثال : 

      بخش bss

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

      مثال : 

      بخش text

      از بخش text برای نگه داشتن کد واقعی استفاده می شود. این بخش باید با اعلام سراسری_start شروع می شود ، که به هسته می گوید که اجرای برنامه از کجا باید شروع شود.

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

      مثال : 

      کامنت ها

      کامنت های زبان اسمبلی با (;) شروع می شود. کامنت ها ممکن است شامل تمامی کاراکترهای قابل چاپ باشد. کامنت ها می توانند مانند نمونه ی زیر، در یک خط نوشته شوند.

      مثال : 

      یا در همان خط به همراه یک دستورالعمل ، مانند زیر باشند.

      مثال : 

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

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

      • دستورالعمل یا دستورالعمل های اجرایی
      • دستورالعمل های اسمبلر
      • ماکرو

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

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

      ماکروها اساساً مکانیسم جایگزینی متن هستند.

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

      هر کدام از دستورات زبان اسمبلی در یک سطر جدا نوشته می شود. هر همه ی آن ها از قالب زیر استفاده می کند.

      مثال : 

      قسمت های موجود در براکت ها اختیاری است. یک دستورالعمل ابتدایی دارای دو بخش است ، قسمت اول نام دستورالعمل (یا mnemonic) است که قرار است اجرا شود و دومی آن عملوندها (operands) یا پارامترهای دستور هستند.

      در زیر چند نمونه از دستورات زبان اسمبلی آمده است.

      مثال : 

      برنامه Hello World در اسمبلی

      کد زبان اسمبلی زیر رشته “Hello World” را روی صفحه نمایش می دهد.

       

      مثال : 

      هنگامی که کد فوق کامپایل و اجرا شد ، نتیجه زیر را ایجاد می کند.

      مثال : 

      کامپایل و لینک کردن یک برنامه اسمبلی در NASM

      اطمینان حاصل کنید که مسیر binary nasm و ld binaries را در متغیر محیطی PATH خود تنظیم کرده اید. اکنون برای کامپایل و لینک کردن برنامه فوق اقدامات زیر را انجام دهید.

      • کد فوق را با استفاده از ویرایشگر متن تایپ کنید و آن را با نام hello.asm ذخیره کنید.
      • اطمینان حاصل کنید که در همان دایرکتوری هستید که hello.asm را ذخیره کرده اید.
      • برای مونتاژ کردن بالا، دستور nasm -f elf hello.asm را تایپ کنید.
      • در صورت بروز هرگونه خطایی ، در این مرحله به شما گفته می شود. در غیر این صورت ، یک فایل object با نام hello.o ایجاد می شود.
      • برای لینک کردن  و ایجاد فایل اجرایی با نام hello باید، ld -m elf_i386 -s -o hello hello.o را تایپ کنید.
      • برنامه را با تایپ کردن hello/. اجرا کنید.

      اگر همه کارها را به درستی انجام داده باشید ، “Hello World” روی صفحه نمایش مشاهده خواهید کرد.

      کلام پایانی

      سینتکس در زبان اسمبلی (Assembly) و موارد مربوطه ی دیگری را در این بخش بررسی نمودیم. در بخش بعدی به بررسی سگمنت های حافظه در زبان اسمبلی می پردازیم.

      QR:  جلسه ۰۳ : سینتکس در زبان اسمبلی (Assembly)
      به اشتراک بگذارید