الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية تشغيل برامج الأسمبلي على البرنامج Masm+شرح با الصور حصريا....

رائج
بدأه عبد الصمد محمد أمين في 22 أبريل 2008 · 35 رد · 26,043 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كيفية تشغيل برامج الأسمبلي على البرنامج masm

السلام عليكم ورحمة الله وبركاته ,,,

يشتكي الكثيرون من عدم معرفتهم بكيفية ترجمة برامج الاسمبلي

عن طريق البرنامج masm و في هذا الدرس نوضح كيفية التعامل معه

أولاً حمل برنامج masm على جهازك .. يمكنك تحميله بالنقر أو من المرفقات هنا :

حجم البرنامج 104 كيلو بايت فقط.

ستجد داخله برنامجين هما masm و link .

أنشئ مجلد في السي (\:C) مباشره باسم masm ثم ضع في هذا المجلد هذين البرنامجين ( masm و link ).

ثم أكتب هذا البرنامج في محرر النوت باد (Not Pad) الذي يقوم بطاعة كلمة hello فقط:

.model small

.stack 100h

.data

msg db 'hello

.code

main proc far

mov ax, @data

mov ds, ax

lea dx, msg

mov ah, 9

int 21h

mov ah, 1

int 21h

mov ah, 4ch

int 21h

main endp

end main

و احفظه باسم test.asm في الملجد masm الموجود في السي (\:C)

الآن إذهب إلى موجه الدوس عن طريق:

start -> programs -> Accessories -> Command Prompt

ثم إذهب إلى السي (\:C) ثم ادخل إلى المجلد masm الموجود به عن طريق:

C:\>cd\masm

أو كما هو مبين في الصورة:

795184-114.jpg

الآن أنت في داخل المجلد masm و سيكون أمر الموجه هو:

C:\>masm>

كما هو مبين في الصورة:

795184-115.jpg

الآن أكتب masm ثم أسم الملف كما يلي:

C:\>masm>masm FILE_NAME;

حيث أن الـ FILE_NAME هو اسم ملفك الذي تريد ترجمته و لا تنسى الفاصلة المنقوطة.

ثم سيظهر لك الأخطاء و عددها و أماكنها إن وجدت أو سيظهر رسالة بعدم وجود أخطاء إذا لم توجد

كما هو مبين في الصورة:

795184-116.jpg

الآن قمنا بعملية الترجمة فقط و لكن بقي علينا جزء مهم و هو جزء الربط (link)

و سنقوم بهذا الجزء كما يلي:

أكتب في سطر الموجه:

C:\>masm>link FILE_NAME;

حيث أن الـ FILE_NAME هو اسم ملفك الذي تريد ترجمته و لا تنسى الفاصلة المنقوطة.

ثم سيقوم بعملية الربط و تظهر شاشة كهذه:

795184-117.jpg

الآن إنتهينا من عملية ترجمة و ربط الملف و الملف التنفيذي exe جاهز الآن, و نستطيع الحصول عليه

بكتابة اسم ملفنا الأصلي في الموجه كما يلي:

C:\>masm>FILE_NAME

كما تبين لنا الصورة:

795184-118.jpg

و ستظهر لنا النتيجة كتابة hello .

إذاً مبروك فقد كتبت و ترجمت و نفذت أول برنامج أسمبلي لك.

و لو ذهبنا إلى الملجد masm لوجدنا فيها ملف test.OBJ و test.exe قد تَكّون نتيجة الترجمة .

الآن بإستطاعتك كتابت و تنفيذ أي برنامج أسمبلي بالطريقة

السابقة عن طريق masm .

مع تحيات أخوكم عبد الصمد

المتعلم السريع

:evil:

و أي سؤال أنا هنا

masm_2_.zip

تم تعديل هذه المشاركة بواسطة عبد الصمد محمد أمين في 22 أبريل 2008 في 13:04

1
#2

جيد ... انتقل الى 32bit :clapping: !

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#4

شكرا

مع مراعاة تغيير الترميز عند الحفظ ، لأن الـANSI سوف يظهر رسالة خطأ عند محاولة تنفيذ الخطوات المذكورة .

460.gif

#5

عندما نفذت أمر

link test;

أظهر لي نفس الرسالة التي ظهرت لك وتحتها

Link : Warning L4021: no stack segment

مع العلم انه انشأ ملف test.exe

وجدت موضوع في المنتدى يعرض نفس المشكلة وتبين أنها رسالة تحذير وليست خطأ

/index.php?showtopic=51934

تم تعديل هذه المشاركة بواسطة المتميز في 24 مايو 2008 في 03:18

460.gif

#6

نعم رسالة تحذير ولا تدل على أي مشكلة لكن كما ارى في الكود اعلاه ان الـ stack محدد ولا اتصور يجب ان تظهر رسالة الخطأ

بأي حال هناك اكثر من طريقة لبناء الملف نفسه

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

السلام عليكم :

وكل عام وانتوا بخير.

ممكن أسأل سؤال هو غبى ومتأخر وأتمنى انكم تسامحونى اذا أخرتكم

وهو:كيغ انفذ برنامج اسمبلى على ال ?tasm

بعد كتابة الكود.وجزاكم الله الف خير

#8
اقتباس
كيف انفذ برنامج اسمبلى على ال ?tasm

نستخدم Tasm بدلا من Masm

نستخدم TLink بدلا من Link

كما بالصورة

post-55473-1229077749_thumb.jpg

d4baa0.gif
#9

يسلمو شكرا جزيلا

#10

السلام عليكــم ورحمـة الله وبركاتــه

لقد قمت ببمرمجة برنامج بلغة الاسمبلى

mips r3000

ولكن عند القيام بنفس الخطوات تظهر لى هذه الراسالة

عند الامر

link اسم البرنامج;

f1ae44bae5.jpg

ارجو افادتى وجزاكم الله خيرا.

#11

السلام عليكم ورحمة الله وبركاته

الرسالة التي تتكلمين عنها هي " warning L4021 : no stack segment " ؟

هذه الرسالة لا مشكلة فيها هي عبارة عن warning وليس error تذكر أنه لم يتم التصريح عن مقطع stack في البرنامج صراحة

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#12

مشكور كتير اى عبد الصمد

راقب أفكارك ... لأنها تصبح كلمات

راقب كلماتك ... لأنها تصبح أفعالاً

راقب أفعالك ... لأنها تصبح عادات

راقب عاداتك ... لأنها تصبح شخصيتك

راقب شخصيتك ... لأنها تصبح مصيرك

#13
Xacker كتب:
السلام عليكم ورحمة الله وبركاته

الرسالة التي تتكلمين عنها هي " warning L4021 : no stack segment " ؟

هذه الرسالة لا مشكلة فيها هي عبارة عن warning وليس error تذكر أنه لم يتم التصريح عن مقطع stack في البرنامج صراحة

شكرا لك على توضيح معنى الراسالة

ولكننى اريد تنفيذ البرنامج ما العمل ؟

كما اننى ارجو ان لم يكن فيها مشقة عن كيفية استخدام برنامج

masm 32

وما هو الفرق بينه وبين الطرقة المشروحة فى هذا الموضوع

وجزاك الله كل خير

#14

masm 32 يختلف عن masm العادي

قومي بتحميل برنامج winasm او radasm

في قائمة الاختيارات تجدين كيف تضبطين الاختيارات

للإفادة أذكركم بدرس الأخ Zool@nder لتثبيت الحزمة :

تحميل مباشر

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#15
fkugd2003 كتب:
masm 32 يختلف عن masm العادي

قومي بتحميل برنامج winasm او radasm

في قائمة الاختيارات تجدين كيف تضبطين الاختيارات

للإفادة أذكركم بدرس الأخ Zool@nder لتثبيت الحزمة :

تحميل مباشر

لقد قمت بتحميل كل من برنامج

masm32

و

readasm

وقمت بتثبيتهما

ولكن مشكلتى كيف استطيع ان استخدمهما فى تنفيذ برنامجى بلغة

mips r3000

---------------------

كما اننى لم استطح تحميل الملف المرفق فى ردك

وجزاك الله كل خير

#16

للاسف الملف المرفق موجود لكن الموقع يعاني من مشاكل في التحميل

اما اللغة التي تتحدثين عنها فلا املك اي معلومة عنها :(

هل هي للمايكروكنترولر ??

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#17
fkugd2003 كتب:
للاسف الملف المرفق موجود لكن الموقع يعاني من مشاكل في التحميل

اما اللغة التي تتحدثين عنها فلا املك اي معلومة عنها :(

هل هي للمايكروكنترولر ??

#18

قمت ببحث صغير حول هادا المعالج

هادا الاسمبلي غريب جدا -_-

بسبب ان عدد الاوامر الخاصة به كبيرة مقارنة بما نستعمله

	   	.text
MAX :	LW  $2,	($29)
   ;a est représenté par $2
	LW  $5, 4($29)
   ;b est représenté par $5
	SLT $6, $2, $5
   ;$6 = (a<b) ?1:0
	BNE $6, $0, A_INF_B
   ;saut si a<b
	JR  $31
   ;return $2 contenant a
A_INF_B :ADDU $2, $5, $0
   ;$2=b
	JR $31
   ;return

;Correspondance C
;int MAX(int a , int b) {
;if (a>b) return a;
;else return b;
;}

لكن حسب ما اعلم فان masm ليس موافقا لهادا النوع من البرامج -_-

يكمن لك ان تستعملي محاكي لهده المعالجات

راجعي هدخ الروابط ربما تجدين محاكي ملائم لويندوز او لينكس

ارجو ان اكون افدت

http://gavare.se/gxemul/links.html

http://www.sensi.org/~alec/mips/index.html

http://packages.debian.org/stable/electronics/spim

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#19

المايكروكونترولر له برامجه الخاصة، عليك بقسمه في المنتدى.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#20

يا جماعة انا عندى برنامج

بلغة الاسملى

32 bits

اولا ما هو عمل برنامج

masm32

وكيف استخدمه

وهل استطيع من خلال تفيذ برنامجى ؟؟

ارجو الرد وذلك للاهمية

#21

استغفر الله -_-

ربما لم تقرأي ردي و رد الاخ Xacker

ال masm مخصص لحواسيب انتل و التي هي من نوع RISC

يعني بكل بساطة لن يشتغل لك في الحاسوب العادي PC

راجعي المواقع التي اعطيتك و حملي محاكي لتستطيعي تجريب البرنامج او راجعي القسم الخاص بالميكروكنترولر

قاعدة اساسية في البرمجة

ادا اردت ان تجرب برنامج لمعالج معين اشتر دلك المعالج و الا استعمل محاكي لدلك المعالج

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#22
fkugd2003 كتب:
استغفر الله -_-

ربما لم تقرأي ردي و رد الاخ Xacker

ال masm مخصص لحواسيب انتل و التي هي من نوع RISC

يعني بكل بساطة لن يشتغل لك في الحاسوب العادي PC

راجعي المواقع التي اعطيتك و حملي محاكي لتستطيعي تجريب البرنامج او راجعي القسم الخاص بالميكروكنترولر

قاعدة اساسية في البرمجة

ادا اردت ان تجرب برنامج لمعالج معين اشتر دلك المعالج و الا استعمل محاكي لدلك المعالج

اذا كانت ردودى تزعجك فمن الافضل ان لا تكلف نفسك بالرد عليها.

اذا كنت انت بالاصل لا تعرف البرمجة بلغة

MIPS R3000

وعلاش تقعد تفلسف عيا .

سؤالى كان واضح جدا برنامج وكيفاش نستخدمو ما قلتش مدلو مواقع اخرى .

سبحان الله يعنى محركات البحث راهى كاينة

ولكن الغاية من سؤالى هو انو يوجد واحد استخدم هذا البرنامج ممكن انو يشرحى الاساسايات الضرورية .

--------------------------------------

شكرا لك على كل المعلومات التى قدمتها

#23
اقتباس
اذا كنت انت بالاصل لا تعرف البرمجة بلغة

MIPS R3000

اولا هده ليست لغة

و انما معالج يعني بروسيسر CPU

اقتباس
وعلاش تقعد تفلسف عيا .

و ثانيا انا لم اتفلسف عليك و انما حاولت ان ابين لك الخطأ

اقتباس
سبحان الله يعنى محركات البحث راهى كاينة

راهي كاينة ااااا بنت بلادي

ديجا شوفي تصويرا نتاع السبورة

i will use google before asking dumb question -_-

مع كل احترامي راجعي دروسك قبل السؤال يعني لا تحاولي ان تجربي برنامج لمعالج في معالج مخالف له في الفكرة

تدكري RISC <> MIPS

مع كل احتراماتي الاخوية راجعي قسم المكروكونترولر

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#24
fkugd2003 كتب:
اولا هده ليست لغة

و انما معالج يعني بروسيسر CPU

و ثانيا انا لم اتفلسف عليك و انما حاولت ان ابين لك الخطأ

راهي كاينة ااااا بنت بلادي

ديجا شوفي تصويرا نتاع السبورة

i will use google before asking dumb question -_-

مع كل احترامي راجعي دروسك قبل السؤال يعني لا تحاولي ان تجربي برنامج لمعالج في معالج مخالف له في الفكرة

تدكري RISC <> MIPS

مع كل احتراماتي الاخوية راجعي قسم المكروكونترولر

توجد معلومة تقول لكل

processeur

لغته الخاصة يعنى كيما كنت نكتب

MIPS R3000

ما كنتش نقصد المعالج ولكننى اقصد اللغة .

ان شاء الله تكون سمعت بالمعلومة هذى من قبل واذا ما كنتش تعرفها راهو جا الوقت الى عرفتها فيه.

---------------------------------------

وبصراحة انا جد شاكرة لك على كل المساعدة التى قدمتها لى

#25
اسهاء كتب:
توجد معلومة تقول لكل

processeur

لغته الخاصة يعنى كيما كنت نكتب

MIPS R3000

ما كنتش نقصد المعالج ولكننى اقصد اللغة .

ان شاء الله تكون سمعت بالمعلومة هذى من قبل واذا ما كنتش تعرفها راهو جا الوقت الى عرفتها فيه.

---------------------------------------

وبصراحة انا جد شاكرة لك على كل المساعدة التى قدمتها لى

اخت إسهاء

mips معالج ينتمي لعائلة risc

لا أدري ماذا تقصدين باللغة ؟؟؟

أظنها مجموعة الأوامر الخاصة بالمعالج نعم

المهم أفضل مجمع يمكنك إستخدامه في هذه اللحظة هو GAS - Gnu Assembler

فهو يدعم الكثير من المنصات ومنها mips

اما عن سؤالك عن masm32

بيئة تطوير عن MASM وتحتوي على الـAPI's الخاصة بالـwin32 المستخدمة في لغة السي والسي++

لا أدري لما يصر أصحاب المناهج الجامعية هذه على تدريس الطلبة أشياء لا تدرس حتى في جامعة واغادوغوا

في الأردن منهجهم يدرس لغة Visual C++ 6 ويقولون عنه انه منهج قديم

أما نحن فنعتمد على Pascal لا أدري من أي حقبة -أظن أنه من نواحي 1990-

ويقولون تطوير للمناهج

وا آسفاه

سؤال:في أي جامعة تدرسين

مواضيع مشابهة