آموزش High Level Assembly  قسمت 1

آموزش High Level Assembly قسمت 1

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

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

یکی از بزرگ ترین بازدارنده های اسمبلی ، سینتکس و دردسر هاش ؛ و یکی از جذابیت هاش سرعت و دسترسی بسیار بالاست .
چطور میتونیم یه پل بین این دوتا داشته باشیم؟

اینجاست که high level assembly میاد به میدون .
زبانی که سینتکسی شبیه C و C++ داره ، ولی همون اسمبلیه سابقه :)

برای استفاده از این زبان ، میبایست کامپایلرش رو دانلود کنید .
از کجا؟ خیلی راحت اگه " hla compiler " رو جستجو کنید وب سایت هایی براتون بالا میان که از همه‌ی اونها میشه hla رو دانلود کرد .
و در مورد محیط کد زدن ، پیشنهاد من نصب افزونه hla در vscode هست ، اما خب یه دوستی زحمت کشیده یه ide برای این زبان طراحی کرده .

بعد از نصب ( که واقعا کاری نداره ) ، شروع می کنیم .

اولین گام - بررسی سینتکس

کد نمونه‌مون :

program hello;
	#include("stdlib.hhf")

begin hello;
	stdout.put("hello world");

end hello;

بریم بررسی کنیم .

ابتدای کار ، چیزی که به چشم میاد ، تقسیم بندی کد هاست .

بخش program جاییه که داخل اون متغیر ها تعریف و کتابخونه ها وارد میشن .
بخش begin جاییه که کد های اصلی زده میشن و به عبارتی الگوریتم نوشته میشه .
end هم که معلومه ، میگه برنامه تموم شد.( میبینید؟ اسمبلی هنوز همون اسمبلیه 😂)

جلوی هر کدوم از یک بخش ها یه شناسه میبینید که چیز مسخره ای هم هست انصافا ؛ ولی چه کنیم? تحمل کنید ... 
باید برای هر بخش ، شناسه ها باهم مساوی باشن ، اما اینکه شناسه چی باشه ( که اینجا همون hello هست ) دست‌خودتونه .

توی این زبان هم مثل خیلی زبان های دیگه اکثر کد ها با ; تموم میشن ( به جز include و if و... )

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

بعد از این به بخش begin میرسیم .

(توی پرانتز این رو هم بگیم ، این سر خط رفتن ها و فاصله ها فقط برای خواناییه ، دقیقا مثل c  و c++ )

اللقاعده میخوایم hello world چاپ کنیم ، پس به دستور خروجی احتیاج داریم .
دستور خروجی کجاست؟
پیش stdout از کتابخونه ی stdlib . 

خیلی راحت 

stdout.put("text")

تموم شد و رفت!
بعد هم که end رو میزنید و تمام . 

حالا فقط باید فایل رو با پسوند hla ذخیره کنید ، بعد هم با استفاده از ترمینال و کامپایلرِ hla کامپایل کنید .
به همین راحتی ، شاخ اسمبلی رو شکستید!

 

توی مقاله ی بعد با همین عنوان ( منتها به جای قسمت 1 ، قسمت 2 ) ورودی گرفتن و تعریف انواع متغیر رو یادخواهیم گرفت .

روز و روزگار خوش..

از بهترین نوشته‌های کاربران سکان آکادمی در سکان پلاس