حساب کاربری
​
زمان تقریبی مطالعه: 2 دقیقه
لینک کوتاه

مایکروسافت ماکرو اسمبلر

مایکروسافت ماکرو اسمبلر (به انگلیسی: Microsoft Macro Assembler) یا MASM یک اسمبلر خانواده ایکس۸۶ برای سیستم عامل ام‌اس-داس و مایکروسافت ویندوز است که از طیف گسترده‌ای از امکانات ماکرو و برنامه‌نویسی ساخت‌یافته، شامل تابع‌های سطح بالا برای تشکیل حلقه و روال‌ها، پشتیبانی می‌کند. مایکروسافت ماکرو اسمبلر از نسخهٔ ۸ به بعد شامل دو اسمبلر است که ML.EXE برای داده‌های ۱۶-بیتی و ۳۲-بیتی و ML64.EXE برای داده‌های ۶۴-بیتی استفاده می‌شود.

Microsoft Macro Assembler
توسعه‌دهنده(ها)مایکروسافت
انتشار پایدار
۱۱٫۰۰٫۶۰۶۱۰٫۱
۲۶ ژوئن ۲۰۱۳؛ ۹ سال پیش (۲۰۱۳-۰۶-26)
سیستم‌عاملمایکروسافت ویندوز و ام‌اس-داس
گونهاسمبلر
پروانهMicrosoft EULA
وبگاه
www.masm32.com

این اسمبلر توسط مایکروسافت عرضه شده ولی از نسخهٔ ۶٫۱۲ فروش آن به عنوان یک محصول جداگانه متوقف شد و به همراه کیت‌های توسعهٔ نرم‌افزار و مفسرهای زبان سی این شرکت عرضه گردید. نسخه‌های اخیر MASM در بستهٔ نرم‌افزاری مایکروسافت ویژوال استودیو موجود است.

فهرست

  • ۱ ابزارهای پشتیبان
    • ۱.۱ محیط‌های یکپارچه توسعه نرم‌افزار
    • ۱.۲ اشکال‌زداها
    • ۱.۳ دیس‌اسمبلرها
  • ۲ دیگر اسمبلرهای سازگار
  • ۳ مثال
  • ۴ جستارهای وابسته
  • ۵ منابع
  • ۶ پیوند به بیرون

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

برخی از نرم‌افزارهایی که از مایکروسافت ماکرو اسمبلر پشتیبانی می‌کنند عبارتند از:

محیط‌های یکپارچه توسعه نرم‌افزار

  • RadASM
  • WinAsm Studio
  • EasyCode
  • Visual Studio

اشکال‌زداها

  • OllyDbg

دیس‌اسمبلرها

  • دی‌اسمبلر تعاملی IDAPro

دیگر اسمبلرهای سازگار

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

  • توربو اسمبلر توسط بورلند عرضه شد و سپس به مالکیت امبارکادرو (به انگلیسی: Embarcadero) در آمد. آخرین بار در سال ۲۰۰۲ به‌روزرسانی شد و برای چندین سال همراه با دلفی و سی++بیلدر عرضه شد.
  • جی‌وسم ماکرو اسمبلر (به انگلیسی: JWASM Macro Assembler)
  • پلز ماکرو اسمبلر (به انگلیسی: Pelle's Macro Assembler) که جزئی از محیط توسعه پلز سی (به انگلیسی: Pelles C) بود.

مثال

برنامه Hello World برای سیستم‌عامل ام‌اس-داس (۱۶-بیتی):

.model small
.stack 2048

.data
message db "Hello, World!", '$'

.code
main proc
	mov ax, @data
	mov ds, ax 
	
	mov ah, 09h
	mov dx, offset message
	int 21h
	
	mov ax, 4c00h
	int 21h
main endp
	end main

معادل همین برنامه برای مایکروسافت ویندوز (۳۲-بیتی):

.386
.model small, stdcall
.stack 4096

includelib kernel32.lib

STD_OUTPUT_HANDLE equ -11					; predefined Win API constant

GetStdHandle proto, 				; get standard handle
	nStdHandle:dword 					; type of console handle

WriteConsoleA proto,					 	; write a buffer to the console
	hConsoleOutput:dword,				 	; output handle
	lpBuffer:ptr byte,					; pointer to buffer
	nNumberOfCharsToWrite:dword,		 		; size of buffer
	lpNumberOfCharsWritten:ptr dword,	 		; ptr to number of bytes written
	lpReserved:dword					; (not used)
	
ExitProcess proto,
	dwExitCode:dword

.data
message		db "Hello, World!"				; string to write
bytesWritten	dw ? 		 			; number of bytes written

.code
main proc
	invoke GetStdHandle, STD_OUTPUT_HANDLE			; returns console output handle to eax
		
	invoke WriteConsoleA,
		eax, 					; console output handle
		offset message,			 	; points to string
		13,					 	; string length
		offset bytesWritten, 		 		; returns number of bytes written
		0
	
	invoke ExitProcess, 0
main endp
	end main

جستارهای وابسته

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

منابع

  1. ↑ http://radasm.cherrytree.at/
  2. ↑ http://www.winasm.net/
  3. ↑ http://www.easycode.cat/English/index.htm
  4. ↑ http://www.codeproject.com/Articles/271627/Assembly-Programming-with-Visual-Studio-2010-2012
  5. ↑ http://www.ollydbg.de/

    پیوند به بیرون

    • راهنمای رسمی مایکروسافت ماکرو اسمبلر
    • دانلود نسخهٔ غیررسمی MASM32
    آخرین نظرات
    کلیه حقوق این تارنما متعلق به فرا دانشنامه ویکی بین است.