PDA

View Full Version : مبتدی: آغاز برنامه نویسی با اسمبل



M.KH-SH
جمعه 05 خرداد 1391, 20:01 عصر
سلام به همه دوستان

میخوام برنامه نویسی رو با اسمبل شروع کنم و ببینم چطور هستش

هیچ گونه اطلاعاتی در این مورد ندارم

میشه راهنمایی کنین


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

MostafaMohammadi
جمعه 05 خرداد 1391, 21:11 عصر
کتاب زبان ماشین و اسمبلی، تالیف حسن سیدرضی، انتشارات ناقوس رو بخر.

M.KH-SH
جمعه 05 خرداد 1391, 22:31 عصر
مرسی
بعد شنیدم که باید در نوتپد بنویسم و ...

این به چه صورت هستش؟

باید از نرم افزار خواصی استفاده بشه یا نه مثل batch file ها میشه اونها رو در note pad هم ساخت؟

MostafaMohammadi
شنبه 06 خرداد 1391, 00:08 صبح
توی زبان اسمبلی، ابتدا شما کدهاتون رو فایلی با فرمت asm. می نویسید، اون فایل رو با اسمبلر تبدیل به فایل آبجکت با فرمت obj. می کنید و با یک برنامه لینکر که اغلب در کنار اسمبلر تهیه شده، اون فایل آبجکت رو به فایل exe. تبدیل می کنید تا قابل اجرا بشه.
اصولا همه زبان برنامه نویسی ها رو می تونید در Notepad بنویسید و با فرمت مورد نظرتون ذخیره کنید و بعدا کامپایل کنید. زبان اسمبلی هم از این قاعده مستثنی نیست، شما می تونی کدهاتون رو توی Notepad بنویسی و با فرمت asm. ذخیره کنی. البته ++Notepad گزینه خیلی بهتریه که می تونید نسخه پرتابل اش رو از اینجا (http://portableapps.com/apps/development/notepadpp_portable)دانلود کنی.
ولی کدنویسی توی محیط های برنامه نویسی خیلی کارهاتون رو سریع تر و ساده تر می کنه. برای شروع و آموزش اسمبلی نرم افزار شبیه ساز Emu8086 خیلی خوبه، اگه هدفتون به کارگرفتن اسمبلی است، حتما باید برای از اسمبل و لینک کردن از اسمبلرهایی مثل MASM، Tasm، FASM و ... استفاده کنید.
برای مثال آخرین ورژن تحت داس اسمبلر MASM رو می تونید از آدرس زیر دانلود کنید:
http://lajevardi.persiangig.com/app/asm/Masm.v.6.11.rar
با تشکر از lajevardi (http://barnamenevis.org/member.php?13251-lajevardi) عزیز
منبع: تاپیک نحوه اجرای اسمبلی (http://barnamenevis.org/showthread.php?30576-%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D8%A7%D8%B3%D9%85%D8%A8%D9%84%DB%8C)

کافیه این فایل رو از حالت زیپ شده خارج کنید، با استفاده از Windows Command Processor اگر در ویندوز های 32 بیتی هستید و یا با استفاده از برنامه DOSbox اگر در ویندوزهای 64 بیتی هستید، به مسیری که پوشه رو در اونجا Unzip کردید برید و فایل اجرایی Setup.exe رو اجرا کنید. مراحل نصب رو دنبال کنید تا به اتمام برسه.
فایل asm. رو داخل پوشه bin قرار بدین و باز با استفاده از Windows Command Processor اگر در ویندوز های 32 بیتی هستید و یا با استفاده از برنامه DOSbox اگر در ویندوزهای 64 بیتی هستید، به مسیری که اسمبلر رو نصب کردید برید. با استفاده از دستور زیر می تونید اون فایل رو با اسمبلر تبدیل به فایل آبجکت با فرمت obj. کنید:

ML /C FILENAME.ASM
بعد فایل ایجاد شده که اسم اش هست FILENAME.OBJ رو به پوشه BINR انتقال بدید و با استفاده از Windows Command Processor اگر در ویندوز های 32 بیتی هستید و یا با استفاده از برنامه DOSbox اگر در ویندوزهای 64 بیتی هستید به پوشه BINR وارد بشید. با استفاده از دستور

LINK FILENAME.OBJ
اون فایل آبجکت رو به فایل exe. تبدیل می کنید تا قابل اجرا بشه.
و در مرحله آخر هم اسم فایل رو در خط فرمان می نویسید تا اجرا اش کنید:

FILENAME.EXE
این برنامه !Hello world به زبان اسمبلی است:



TITLE 'HELLO.ASM' Shows Hellow world!
;------------------------------------------
SSEG SEGMENT STACK
DW 32H DUP(0)
SSEG ENDS
;------------------------------------------
DSEG SEGMENT
MSG DB "Hello world!$"
DSEG ENDS
;------------------------------------------
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG
START PROC FAR
MOV AX,DSEG
MOV DS,AX
;------------------------------------------
LEA DX, MSG
MOV AH, 09
INT 21h
;------------------------------------------
MOV AH,01H
INT 21H
FINISH: MOV AX,4c00h
INT 21H
START ENDP
CSEG ENDS
END START
END

M.KH-SH
شنبه 06 خرداد 1391, 11:03 صبح
مرسی

میشه لطفا قواعد اصلی کدنویسی رو در اسمبل بگین

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

MostafaMohammadi
شنبه 06 خرداد 1391, 15:29 عصر
میشه لطفا قواعد اصلی کدنویسی رو در اسمبل بگین
نه، اینکار زمان زیادی رو از من می گیره، شما باید زحمت بکشی بری یکی از منابع آموزشی که موجوده رو تهیه کنی و شروع کنی به یاد بگیری، هر جا اشکال داشتی تو انجمن بپرسی. منابع آموزشی معتبرتر و کم اشکال تر اند تا حرف های بنده.

یک سئوال:::: برنامه نوشته شده رو میشه بدون ویندوز هم اجرا کرد یا نه؟
من مطمئن نیستم متوجه سوال تون شده باشم.
ولی برنامه نویسی اسمبلی تحت تاثیر معماری پردازنده کامپیوتر است، ربطی به ویندوز ندارد. شما اگر از وقفه های داس استفاده نکنید، نیازی به سیستم عامل داس یا ویندوز ندارید که بتونید برنامه تون رو اجرا کنید. ولی استفاده نکردن از وقفه های داس برنامه نویسی رو سخت می کنه. کلا زبان برنامه نویسی اسمبلی قدرت اش در Native بودن اش نمو پیدا می کنه و اگه می خواهید برنامه Cross Platform بنویسید گزینه جالبی نیست.
بیشتر توضیح بدید که منظور و هدف تون چیه، تا بتونم بهتر راهنمایی کنم.