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

اني أتعلم Masm

مغلق
بدأه white soul في 11 نوفمبر 2005 · 9 رد · 886 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا نزلت الRadAsm بالإضافة الى مترجم الأسمبلي بس للأسف ما عم بعرف أستخدمهم ؟؟؟

كنت بشتغل على الemu8086 ؟؟

بس سؤال هلأ عندي على( disktop ( MASM32 Editor هل هو اللي بكتب فيه الكود؟؟

طيب واذا كتبته هناك لما أعمل run للبرنامج من وين؟ لما حاولت أشغل الsetup.bat في الvkdebug عم تطلع شاشة سوداء وتختفي بسرعة؟؟؟

RadAsm شو وظيفته؟

أسئلة مبتدئة جدا بعرف بس استحملوني ؟

بالآخر هل أبقى أستخدم الemu8086 أم هذا أفضل؟؟

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#2

ما عرفت تستخدمهم باي صورة؟ ما عرفت تفتح ملف مشروع جديد او كيف تحول الشفرة لـ exe او بالخواص والخيارات؟

بالنسبة للـ masm الـ editor هو اللي بتكتب فيه الكود -- نعم.

لم اعمل على masm32 غير المعدل من قبل وحتى ما بعرف شكله :P بس باي حال اعمل assemble + link ولازم يكون عندك ملف تنفيذي اذا كلشي صح او بيظهرلك نافذة الحالة وفيها الخطا موضح باي سطر..

بالنسبة لـ vkdebug, لم لم تطرحي السؤال في موضوعه؟ باي حال يمكن الاطلاع على محتويات ملف setup.bat من خلال تحريره بالمفكرة!

اعتقد ان محتواه لن يتغير بين ما masm المعدل والاصلي..

@echo off

copy dbproc\debug.inc \masm32\include\debug.inc
copy dbproc\debug.lib \masm32\lib\debug.lib
copy dbgwin\dbgwin.exe \masm32\bin\dbgwin.exe

يقوم السطر الاول بالغاء ظهور الاوامر مطبوعة على الشاشة لجعل قراءة ما تحويه من نصوص وتعليقات افضل.

الاسطر البقية تقوم بنسخ ملف من مكان لاخر!

RadAsm شو وظيفته؟ :blink:

Do as I say, not as I do

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

#3

لقد قمت بكتابة برنامج بسيط للتجربة كتبت الكود التالي:

include \masm32\include\windows.inc
    include \masm32\include\masm32.inc
    include \masm32\include\user32.inc
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\gdi32.lib
main proc far
 stack segment
    100 dw dup(?)
 stack ends
 code segment
 assume: cs:code,ds:data,ss:stack
 mov ax,data
 mov ds,ax
    mov ah,9
    mov dx,offset x
    int 21h
 code ends
 endp

link&assemple عملت للبرنامج

ظهرت شاشة التنفيذ مكتوب فيها ما يلي :

Masm : fatel error A1000:cannot open file:c:\masm32\test.asm

ما عرفت شو ساوي حاولت فتح أمثلة موجودة فيه كان يظهر نفس الخطأ

بتقدر تساعدني؟؟

include عفكرة نقلتها من ملفات تانية قلت يمكن لازم ارفاقها

بعرف انه أسئلتي بدائية جدا بس شو ساوي

استحملوني شوي الله بعين

تم تعديل هذه المشاركة بواسطة Xacker في 12 نوفمبر 2005 في 05:36

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#4

المشكلة مش اننا نستحملك او لاء :D بدنا شغلة صغيرة منك وهي انه تستخدمي تنسيق الكود عشان مو كل مرة اعدل بالمشاركة حتى اقدر افهم شو صاير :)

هلأ بخصوص include بتقدري تستغني عنها لانك ما عم تستخدمي اي وظيفة API وبالتالي مافي داع الها.. كمان شغلة تانية بتقدري تستخدمي توجيهات المقاطع المبسطة وتستغني عن تعريف كل مقطع بشكل يدوي.. يكفي استخدام .model flat, stdcall و @data بدلا من data في mov ax, data لانه يقرا data كمتغير وهو اصلا غير موجود.. ضعي الشفرة كاملة للبحث عن اي خطا اخر.. ثم اين تعريف المعطيات؟

Do as I say, not as I do

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

#5

امر اخر.. من الخطا اسالك سؤال, هل قمت بحفظ الملف باسم test.asm في c:\masm32\ ؟ لا اعتقد انك لم تفعلي لكن masm32 احيانا بيصير غبي (عندي طبعا ما بعرف اذا بصير نفس الشي معكم) ما بيقدر يفتح ملفات او كذا وكذا.. فبضطر اعمل ملف .bat عشان اقدر اعمل assemble و link كل مرة اوتوماتيك بدون الاستعانة بـقوائمه .. اذا بقيت المشكلة متل ما هي خبرينا.

Do as I say, not as I do

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

#6

مرحبا

بعد طول غياب ماانحلت المشكلة ... حاولت ما أوجعلكم راسكم معي بس شو ساوي ما في غنى عنكم ... :(

على كل .. عملت متل ما قلتلي خزنته .bat بس طلع معي خطأ بأنه لا يمكن فتح الملف ؟؟؟ :blink:

في شي مهم وهو اني تعلمت كتابة المقاطع بالتفصيل الممل يعني متل ما كتبتها فوق ولما قلتلي استخدمي توجيهات المقاطع المبسطة مافهمت يعني باختصار ما بعرفها ؟ :unsure:

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#7

قمت بانشاء ملف Make.bat ليقوم بتجميع الملف test.asm ؟ ام قمت بتغيير الاسم!!؟ انتبهي الى هذه النقطة -- Make.bat يحوي ما يشبه التالي:

@echo off
if exist test.obj del test.obj
if exist test.exe del test.exe
c:\masm32\bin\ml /c /coff test.asm
c:\masm32\bin\Link /SUBSYSTEM:WINDOWS test.obj 
del test.obj
del test.exp
dir test.*
pause

بالنسبة للتوجيهات المبسطة راجعي السلسلة التي اطرحها حاليا -- تجدين الروابط في المواضيع المثبتة (سلسلة تعلم لغة التجميع) -- التوجيه الذي اتكلم عنه هو .model small واللي بيفترض انك عم تكتبي تطبيق ما بيزيد حجم مكدسه عن 64k (يعني بينفع لـ 16bit).

ما تستخدميه انت هو 16بت (لانك تحاولين استخدام المقاطعات) لكنك تحاولين تطبيق تقنيات 32بت في نقل العناوين مثل mov ax, @data وبالتالي هذا خطا!

يكفي ان تتبعي نفس الاسلوب المتبع في الموضوع التالي بالنسبة لتنسيق ترويسة الكود الخاص بـ 16بت /index.php?showtopic=79463

اما لو اردت الانتقال (تنفيذ الكود السابق ببيئة 32بت) فلست بحاجة الى المقاطعات -- بالنسبة لانشاء الملف لديك CreateFile و قراءته ReadFile والكتابة فيه WriteFile واغلاقه CloseFile!! كل هذا تنفذيه من خلال ما يسمى Windows API اي Application Programming Interface وفي هذه الحالة عليك الانتقال الى masm32 .. اوكيه؟

Do as I say, not as I do

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

#8

عملت الملف make.bat بس ما فهمت شو علاقته بالملف الأخر لما أعمله link&assemble

asm picture.doc

تم تعديل هذه المشاركة بواسطة Xacker في 17 نوفمبر 2005 في 07:08

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#9

هذا masm32 وانت تحاولين كتابة تطبيق 16بت!!

راجعي هنا: /index.php?showtopic=81095 ويا ويلك شوفك عم تغلطي هالغلطة مرة تانية :P

Do as I say, not as I do

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

#10

لأ لأ مستحيل أغلط هيك غلطة مرة تانية بعد ما قرأت الفرق :o

بس انا كنت مفكرة انه بيئة ال32 بتضمن بيئة 16 بت بس هلأ فهمت

شكرا كتير ....

:D

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

هذا الموضوع مغلق.

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