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

سؤال عن nagoa

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

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

اريد من الاخوة الكرام رايهم في الاسمبلر nagoa

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

وهذا الرابط الذي وجدث به nagoa

http://www.programmersheaven.com/search/Li...?Typ=1&ID=10818

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

و ارجو ترجمة هذا الكود الى الاسمبلي

HANDLE hFile;

DWORD nbyte;

hFile=CreateFile ("D:\\file.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE

,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

if(hFile!=INVALID_HANDLE_VALUE)

WriteFile (hFile,(LPCVOID)"Arab-team",9,&nbyte,NULL);

CloseHandle (hFile);

لاني لم اعلم كيف اربط بين دالتين كما هو موجود في هذا الكود

هذا الكود ماخوذ من درس للاخ jaas

يعلمك فيه كيفية استعمال الكود

في انتظار مساعدتكم

السلام عليكم

#2

السلام عليكم,

الأخ محمد , لم يسبق أن استعملت البرنامج الذي ذكرته في مقالك وهو على ما يبدو واجهة لإستعمال البرمجة ب NASM علما أني شخصيا أشتغل على MASM .

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

.data

hfile   DWORD
nbyte   DWORD,thefile  DB  "d:\file.txt",0
thetxt  DB  "Arab-Teamù",0

.code

invoke CreateFile, addr thefile,GENERIC_READ+GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE
,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
mov hfile,eax
.if eax !=INVALID_HANDLE_VALUE
invoke WriteFile ,eax,addr thetxt,9,addr nbyte,0
.endif
invoke CloseHandle ,hfile

وبالطبع نكون من قبل قد أضفنا الملفات الرأسية اللازمة.

إلى اللقاء.

#3

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

بارك الله فيك اخي chik و جازاك الله خيرا في الاجابة عن اسئلتي ...و ساحاول القيام ببعض التعديلات لكي يتناسب مع nagoa مع انني مازلت جديدا عليها

اخي الكريم

كلامك صحيح فكما قلت nagoa مبنية على لغة لnasm

وهي اسهل حسب ما اظن من التعامل مع باقي مصرفات لغة الاسمبلي

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

#4

السلام عليكم

لا ارئ إختلاف كبير بينها وبين masm اللهم إلى ان ماسم تحوى على دعم بعض السنتاكس والذى تتميز فيه مثل if و while , وهذه إختياريه يعنى هى عباره عن ماكرو يمكك الاستغناء عنها.

بالنسبه للفشوال فانا إستخدام الفشوال من خلال RadAsm ولكن اكتشفت اهنا تفقدك السيطره على البرنامج, وافضل كتابة الكود كما هو بدلاً من إستخدام الفشوال.

خلاصه الكلام انه إذا تعلمت الاسمبلى على مصرف يمكنك الانتقال إلى مصرف اخر فى وقت قصير جداً, لان اللغه لا تختلف كثيراً من مصرف إلى اخر بشكل كبير, بالاضافه إلى انه يمكنك ترجمة اى كود اسمبلى من مصرف لتعمل على مصرف اخر.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#5

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

اخي chik

لقد حاولت القيام بالتعديلات اللازمة على البرنامج الذي ذكرته ليتمكن من العمل على nagoa

و لقد تمكن من الموافقة على ترجمته بعد خلوه من الاخطاء

ولكن عند تشغيل البرنامج يظهر خطا

وعند استعمال برنامج olly

يكتب السطر التالي

acces violation when writing to [00000000] -use shift+f7/f8/f9 to pass exeption to program

الكود موجود في المرفق

with nagoa.txt

تم تعديل هذه المشاركة بواسطة محمد فراس في 11 فبراير 2005 في 12:45

#6

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

بارك الله فيك اخي احمد على مساعدتك و الملاحظات التي قدمتها

اعتقد ان nagoa تحتوي بعض الماكرو مثل if ولقد استعملتها في المثال المرفق

اعلاه

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

لقد ذكرت ان التعامل مع اي مصرف يعني انك تقدر التعامل مع اي مصرف اخر في وقت قصير

فمع اي مصرف تنصحني بالتعامل اولا

توجد العديد من الكتب عن دروس الاسمبلي لكن لم اجد اي كتاب يتحدث عن كيفية التعامل مع مصرف الاسمبلي و لا كيفية التعامل مع API الا درس وحيد للاخ JASS

و امثلته مذكورة بلغة السي ...فهل يمكن المساعدة في ايجاد الكتب اللازمة

لدي مدة اريد تعلم هذه اللغة لكنها اتعبتني دون ان استفيد :blink:

مع ذلك مازلت مصمما على اتقانها :D

في انتظار ردودكم :lol:

#7

السلام عليكم,

أولا هناك خطء في البرنامج الذي كتبته حيث أنك نسيت أن تعطي القيمة ل hfile

section code

invoke CreateFile, addr thefile,GENERIC_READ+GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0


%if hfile != INVALID_HANDLE_VALUE 
invoke WriteFile ,hfile,addr thetxt,9,addr nbyte,0
%endif
invoke CloseHandle ,hfile

هنا نفترض أن hfile هو الهاندل للملف الذي خلقناه بالدالة CreateFile ولذى فهذا الهاندل سترجعه هذه الدالة في الرجستر eax وأنت حين تكتب %if hfile != INVALID_HANDLE_VALUE فهنا قيمة hfile لا زالت هي القيمة التي أعطيناها له في المعطيات أي لا زالت صفر.

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

فيما يخص المصرفات وكما قال الأخ أحمد كلها متشابهة تقريبا واللغة هي دائما نفسها ويبقى فقط المصرف الذي نتعود عليه يبدو لنا أسهل من الآخرين. فالذين تعودوا على الماسم سيقولون أن ذلك أسهل وكذلك مستعملوا الناسم سيجدون أن هذا أسهل من الآخر وهكذا.

إلى اللقاء.

Sample.zip

#8

السلام عليكم

بارك الله فيك اخي chik على مساعدتك لي

لكن انتظروا اسئلة اخرى في المستقبل :rolleyes:

#9

السلام عليكم

فى إعتقادى اسهل مصرف للاسمبلى هو masm32 لان المعلومات عنه متوفره بشكل كبير فى الانترنت.

اما بالنسبه للتعامل معى api فهى مسئلة تعود, لو عرف كيف تستعمل api فى لغه السى, فمن السهل جداً التعامل معها فى لغه الاسمبلى, بالتاكيد دروس الاخ jaas ممتازه ولكنها للمستوى المتقدم وفى بعض الاحيان تتطلب منك فهم عميق للاساسيات, هناك مجموعه من الدروس للمبتدئين فى المنتدى وما عليك إلا ان تبحث.

بالنسبه للمصادر خارج المنتدى, فيوجد مجموع دروس iczelion ,والتى تجدها فى هذا الرابط http://win32asm.cjb.net/, يوجد كذالك مجموعه من الدروس المتقدمه لكيفيه عمل برنامج كامل فى هذا الموقع http://www.madwizard.org/view.php?page=tutorials.contents

هذه الدروس موجوده بلغه الاسمبلى و السى ++ وهو من ما يمكنك من المقارنه بين اللغتين.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

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

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