raha2007
شنبه 24 فروردین 1387, 08:49 صبح
با سلام
من خیلی از موضوعات رو مطالعه کردم ولی چیز مفیدی در مودر ماکرو ها در اسمبلی پیدا نکردم.
میشه در مورد این که ماکرو ها چی هستند و چه جوری کار میکنن یه کم به من اطلاعات بدین.
ممنون میشم.
hoax3r
شنبه 24 فروردین 1387, 12:04 عصر
ماکرو ها مجموعه دستوراتی هست که توسط برنامه نویس تعریف میشه
برای اینکه هم حجم کدنویسی کمتر بشه و کدها خانایی بیشتر داشته باشه
این مثال رو ببینید، این ماکرو کارش پاک کردن صفحه نمایش و بردن مکان نما به مکان 0و 0 هست (برای محیط 16 بیتی)
Clrscr MACRO
pusha
mov ax,0600h
mov cx,0
mov dx,184Fh
mov bh,7
int 10h
mov ah,2
mov bh,0
mov dx,0
int 10h
popa
ret
Clrscr ENDM
حالا هر بار تو برنامه بخوایم از این کد استفاده کنیم کافیه اینو وارد کنید
Clrscr
لبته ماکروها قابلیت گرفتن آرگومانت هم دارن مثل این ماکرو که یک کاراکتر رو چاپ میکنه
PUTC MACRO char
PUSH AX
MOV AL, char
MOV AH, 0Eh
INT 10h
POP AX
ENDM
و به این صورت اسنفاده میشه
PUTC 'a'
فقط تفاوتی که بیت ماکرو و رویه ها هست اینه که شما اگه 10 بار از یک ماکرو استفاده کنین
موقع کامپایل هر جا که از ماکرو استفاده شده با کدهای تعریف شده جایگزین میشه در نتیجه
حجم فایل اجرایی رو زیاد میکنه ولی رویه ها اینتور نیستن.
برای اطلاعات بیشتر در مورد استفاده ماکرو در محیطهای 16 بیتی اینجارو ببینید :
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/asm_tutorial_10.html
برای محیطهای 32 بیتی بسته masm32 رو از سایت زیر بگیرید و راهنما ها شو مطالعه کنید
آخرین نسخه ای که تو این صفحه معرفی شده ورژن 9 هست ولی ورژن 10 beta هم هست که
فقط تو فرومهاشون معرفی کردن بد نیست اونجا هم سر بزنید. و اگه خاستین اونم دانلود کنید
http://www.masm32.com
شاد باشید
raha2007
شنبه 24 فروردین 1387, 12:13 عصر
hoax31عزیز از این همه لطفت ممنونم.
خیلی کمکم کرد.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.