Skip to content

MahdiGMK/AMD64-Assembly-Project-Template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

برنامه های پیشنیاز

برای اجرای برنامه های به زبان اسمبلی به ۳ ابزار gcc و nasm و make نیاز داریم که توسط دستور زیر دریافت میشوند. همچنین به این نیاز داریم که مخزن را روی
sudo apt update && sudo apt install gcc nasm make build-essential
git clone https://github.com/MahdiGMK/AMD64-Assembly-Project-Template x86env && cd x86env

نحوه استفاده در ویندوز

برای استفاده از این مخزن در محیط ویندوز به ابزار WSL نیازمند هستید. لینک های مقابل میتوانند راهنمای خوبی باشند :

WSL Install Doc Ubuntu Store Page

نحوه استفاده در مک

برای استفاده از این مخزن در مک به ابزار های مجازی سازی نیازمندیم. در ویدئوی زیر نحوه استفاده از ابزار UTM در مک و بالا آوردن سیستم عامل Ubuntu-server تحت amd64 را مشاهده میکنیم.

MacUTM

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

نحوه استفاده

این مخزن شامل تعدادی نمونه کد برای آموزش زبان اسمبلی x86-64 است. این نمونه کد ها از مثال های ساده دستورات جمع و ضرب شروع شده و تا خواندن آرگومان های برنامه و معرفی ثبات های برداری(اعشاری) ادامه میابد. توصیه میشود که از مثال شماره ۱ شروع نموده و به ترتیب جلو بروید. توضیحات مربوطه هر مثال با فرض دانش نسبت به مثال های قبلی آن مطرح شده است.

برای اجرای هرکدام از مثال ها کافیست فایل Makefile را باز کنید و مقدار متغیر ASM_NAME را برابر با نام مثالی که میخواهید اجرا کنید قرار دهید (بدون پسوند) سپس دستور make run را اجرا کنید.

همچنین در ادامه، برای بررسی خروجی کامپایلر ها میتوانید از Godbolt - Compiler Explorer استفاده کنید.

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

کافیست فایل sample.s را کپی کنید، سپس کد اسمبلی مورد نظر خود را درون ان توسعه دهید و در نهایت مقدار متغیر ASM_NAME درون Makefile را مانند قبل، برابر با نام کدتان قرار دهید. در نهایت مانند بخش قبل برنامه هایتان را اجرا کنید.

لینک های مفید

Felix Cloutier x86

SystemV ABI

Godbolt - Compiler Explorer

گرداوری شده در آذر ۱۴۰۳ توسط مهدی بهرامیان

About

amd64(x86_64) project starting point and examples

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors