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

تكفووووووون ساعدوني ؟؟؟؟

مغلق
بدأه black_dream في 23 ديسمبر 2003 · 25 رد · 2,320 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

Write a complete program using 80x86 assembly language to display a universal Gregorian calendar.

*****************************************************************

Example:

Enter a month (1 – 12): 11

Enter a year (>1580): 2001

November 2001

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

******************************************************************

The Algorithm

a. The year X is a leap year (366 days: Feb=29 days) if the year X fulfills ((X % 4==0) && (X % 100 != 0)) || (X % 400 ==0).

b. January 1st, 1600 is On Saturday.

c. The calendar has a period of 400 years. It means that the calendar of year X is exactly the same with the calendar of year X+400.

*****************************************************************

Example:

Q: What day was February 13, 1601

A: Between January 1st, 1600 and January 1st, 1601 there were 366 days because year 1600 was a leap year. So, January 1st, 1601 was on (366 % 7) = 2 (Monday). Next, Between January 1st 1601 and February 13, 1601 inclusively there were (31 + 13 – 1) = 43days. Thus, February 13, 1601 was on (2 + 43) % 7 = 3 Tuesday

تكفووون انكم تساعدوني لأنه هذا البرنامج لازم أسويه .. خلال اسبوع ...لأني طالب في الجامعة ومطلوب مني أسوي هذا الـproject

#2

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

حاول تعطي توضيحات أكثر عن الألغوريثم المستعمل يمكني أن أساعدك في كتابة الكود.

حاول توضيح المثال وكيف نعثر عن النهار وكيف نعرف السنة إن كانت كبيسة أم لا.المشكل في هدا أما الكود فسيكون كالعادة.

إلى اللقاء.

#3

الكود هو انك تدخل الشهر اللي تبغاه مثلا شهر 3

وتدخل السنة اللي تبغاها مثلا 2000

وبعد ين البرنامج راح يعرض اسم الشهر اللي هو مارس march

وراح يعرض التقويم حق الشهر اللي هو من تاريخ واحد الى نهاية الشهر ... يعنس مثل التقويم العادي

مثال :

sat sun mon teu wed thu fri

1 2 3 4 5

وهكذا ....

والحاجة الثانية ... يبغاك تدخل اسم الشهر وتاريخ اليوم المطلوب .. ورقم السنه ..

والبرنامج راح يعرض لك اليوم ...

أتمنى المساعدة ....

ومشكورين اخواني .... لأن هذا هو السؤال المطلوب نصاً ... وهذا اللي أنا فهمته بعد ...

ويعطيكم العافية اخواني ...

#4

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

فعلا فهمت مقصود الرنامج.

ما كنت أريده هو الألغورثم للحصول على ما نريد.

مثلا لو ندخل كما قلت العام 1989 والشهر 8 واليوم 6 سيعطيني اسم دلك اليوم وهنا أريد أن أعرف كيف نتوصل إلى هدا أو بطريقة أخرى ما هي المسائل الرياضية التي ستعطينا هدا.فأنا شخصيا لا أعرف كيف أحلها حسابيا وأنت تعرف إدا كنا لا نعرف الطريقة في الأول فإنه لا يمكن البرمجة.

ولدي يجب أن تعطيني الطريقة التي نجد بها اليوم.

إلى اللقاء.

#5

اخوي موجودة الطريقة .. في المثال الثاني ... اشلون العملية الحسابية ...

وكيف تطلع اليوم ...

وما فيه مشكله ... أتوقع ان الجزء الاول من البرنامج معروف عندك ....

اللي هو كيف تطلع التقويم ...

تحيااااااااااتي الحارة ....

#6

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

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

على العموم سأحاول النضر فيه من جديد وأخبرك بالنتيجة غدا إن شاء الله.

إلى اللقاء.

#7

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

لقد توصلت بعد بعض المحاولات إلى فهم الألغوريثم وقد جربت البرنامج بلغة س++ وهو على ما يبدو شغالا.

ولدى سأحاول كتابته بالأسمبلر هده الليلة إن شاء الله وسأعطيك النتيجة غدا إن شاء الله.

إلى اللقاء.

#8

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

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

ندخل العام ونعمل له mod 400 لأن بعد كل 400 عام ترجع الأمور مرة أخرى وفي هده الحالة لا نحتاج إلى second condition والتي هي x % 400 لأن في حالتنا لن تكون أبدا إلا في حالة الصفر.

بعد هدا نزيد 2 إدا كان العام 366 يعني و 2 هي باقي قسمة 366 على 7 وفي حالة عام 365 نزيد واحد.

بعد هدا نزيد البقية التي تخلفه الأشهر ولهادا سنحسب كم يخلف كل شهر. مثلا يناير فيه 31 سيخلف 3 أي بقية 31 مقسومة عل 7 إلى آخره.

وبعد الحصيلة نعطي اليوم.

في الملف المرفق ستجد الكود كاملا مكتوب ل Masm 5.0 وما فوق وكدلك الملف exe .

أتمنى أن ينفع هدا .

هدا حسب ما فهمته من دلك الألغوريثم وإدا لم تكن هده هي الطريقة فيمكن أن نتناقش من جديد.

إلى اللقاء.

Calender.zip

#9

يعطيك ألف ألف ألف ألف مليون عافية ... اخوي والله ما قصرت ..

والله ما دري وشلون اشكرك ...

بس اخوي باقي الجزء الأول من الكود ... ما دري تعرف له والا لا ...

واتمنى أكون ما ثقلت عليك بالطلبات ....

ومشكوووووووووووووووووووووور ... اخوي العزيز

#10

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

سأحاول الرد على أسئلتك وإن شاء الله يكون هدا دافع يجعلك تتحمس لتعلم هده اللغة الشيقة.

فيما يخصني أنا شخصيا فهده اللغة تعلمتها لوحدي ودلك بقراءة كل ما كنت أعثر عليه .وفيمل يخص الكركرز وبما أن مبدأ هدا المنتدى هو عدم التطرق إلى هده المواضيع أقول لك فقط أنه عندما تعرف هده اللغة وبما أن كل البرامج هي طبعا بايناري ولكن يمكن قراءتها بلغة الأسمبلر فالنتيجة واضحة.

- الألغوريثم وبطريقة بسيطة هي العمليات أو الطرق التي سيقوم بها أو يسلكها البرنامج لحل مشكلة ما.مثلا لحساب طول كلنة ما يمكن أن أقول أنني سأتبع الألغوريثم الآتي : أقرا الكلمة حرفا بحرف وأقارنها مع حرف نهاية الكلمة فإدا لم يساوي أزيد 1 في عدد طول الكلمة. فهده الطريقة أسميها ألغوريثم.

- الملف ليس ملف txt رغم أنه مكتوب على هدا الشكل ومن هده الناحية ليس هناك فرق وإنما يجب أن يكون على هدا الشكل حتى يتمكن الكمبايلر بمعرفته وأنه ملف يحتوي على تعليمات أسمبلر. وهدا البرنامج كتبته في Notepad . طبعا هناك برامج تمكن من كتابة الأسمبلر وهنا أوضح أن هجه البرامج سوف لن تكتب لك الكود وإنما فقط ستسهل عليك الكتابة ودلك مثلا بإعطاء مختلف الألوان سواء للتعليمات أو التعليق إلخ .ودلك كل واحد حسب ما ألفه وأنا ألفت النوتباد.

- هدا البرنامج كتبته ليشتغل في نافدة دوس وأضن أنك أنت الدي كنت تريد هدا حيث قلت أنه يكون ب 8086 وهدا في الكثير من الأحيان نعبر عنه بالأسمبلر 16 بايت أو أسمبلر الدوس. وطبعا هناك نسخة للأسمبلر 32 بايت تنجز برامج تشتغل على الوندوز وتبرمج بها كل ما يمكن برمجته باللغات الأخرى وأكثر. وأنا شخصيا أفضل الآن هدا الأخير لأنه مند وقت تركت الأسمبلر للدوس وأشتغل في 32 بايت وكلنا نعلم أن أيام برمجة الدوس تتوجه إلى باب النسيان.

وإدا أردت يمكن أن أكتب لك البرنامج بالأسمبلر 32 بايت وسأحاول إدا كان عندي وقت أن أنجزه هده الليلة لأضعه هنا وإدا لم يمكن فستكون في الأسبوع المقبل لأني سأقوم بسفر لمدة أسبوع إن شاء الله.

- ما هو الجزء الأول الدي تتكلم عنه.

إلى اللقاء.

#11

يعطيك العافية اخي العزيز .. ومشكور على كل اللي قمت به ...

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

على العموم تروح وترجع بالسلامة إن شاء الله ... واللي تقدر عليه .. ما تقصر ...لأن تسليم الريبورت هو يوم السبت الجاي ....

تحياتي لك اخي الفاضل ،،،،،،

#12

السلام عليكم

اولا احب اشكرك اخي chik من كل قلبي للأجابه على اسئلتي واكيد انت ما انتبهت لي لأنك فكرت انه الي سالك هالأسئله اهو العضو نفسه صاحب الموضوع

المهم

لكن اخي ارى في العمليه صعوبه لأنك ذكرت انت طلبت على 8086 فهل يعني يجب التعلم بالباقي كما تعلم هناك بعد تعليمات عده غير 8086 مما يطول المسيره

وشئ اخر وهو

ذكرت 16 بت وطبعا معروف الدوس 16 بت وانت تفضل 32 بت يعني تعقيد اكثر واكثر والأن احنه مشرفين على 64 بت او تحول الجيل وانا لم اتعلم حتى 16

خصوصا انه البتات مسويتلي مشكله في البانري فمثلا

8بت دوس طبعا تكتب هكذا

0000 0000

اي بايتين

وال16

0000 0000 0000 0000

اي 4 بايتات

والحين انت تعمل على 32 يعني

0000 0000 0000 0000 0000 0000 0000 0000

:) وغير ال 64 بت انا في راي ممكن في برامج تحسب وتكفيني العناء هذا

لكن المشكله كما قلت لك في الأول التعليمات وتوسع البت

وحبيت اسالك اخي دام احنه في الموضوع

1- الرقم الواحد او الحرف الواحد عندما ندخله يعتبر كم بت او بايت طبعا مستحيل بايت لأنه البايت الواحد 8 بت فكبير يكون نسبيا؟

2- هل يكفي كتاب واحد اقتنيه بالعربيه واهو معروف طبعا نسيت اسمه واتابع الباقي بالأنترنت ام يجب اخذ سنوات بالمعاهد وتعدد الكتب ؟؟

3- هل في فرق او اي اشكال في الأنتل او الأي ام دي ( AMD ) في التعلم اي هل هناك كتب تخصص هذا وتخصص ذاك لأني اريد الأثنين فانا امتلك المعالجين وحاب يكون انه مافي فرق بينهم ؟؟

اسف اخي للأطاله عليك لكن كما تعلم لا ارى غيرك محترف للأسمبلي خصوصا انت ما شاء الله عليك ماسك القسم بروحك

وشكرا لك مرثانيه

وان شاء الله تعتبرني طالب لك :)

#13

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

أولا أقول للأخ gazz_ooo أستسمح فأنا فعلا حتى هدا الوقت رأيت الإسم . وفي غالب الأحيان فإن الإنسان ينشغل في الإجابة وقد لا يثسر انتباهه أمور أخرى.

وسأحاول الإجابة على أسئلتك وأتمنى هده المرة أن لا أنسى شيئا.

طبعا في الدوس نعتمد على 16 بايت .وإدا تعلمنا هدا فنحن سنتعلم إن أمكن القول مبادء الأسمبلر. وهنا سنتعلم مثلا ما معنى الرجسترات وكيف نحملهم بأشياء وكيف نكتب في الداكرة إلى آخره. فإدا مررنا من بعد إلى 32 بايت طبعا ستختلف بعض المفاهيم ولكن إدا كان عندك الأساس فهدا لن يتطلب منك وقتا طويلا للتعلم .طبعا هنا سيتغير الرجستر مثلا ولكن هدا ستفهمه في دقيقة وسيبدو بديهيا إلى حد ما.وكما قلت سابقا أنا الآن أفضل 32 بايت كثيرا وأعتبره أسهل من الأول ففي 32 بايت لا نهتم ب segment وهدا لم يبق له نفس المعنى في أغلب البرامج علما أن هدا كان يسبب الكثير من المشاكل للمبتدئين في 16 بايت. في 16 بايت كنا نستعمل Interruption وهي عبارة عن أرقام وهدا كان يسبب أيضا متاعب لإستيعاب ما تعمله كل واحدة ولا سيما لقصيري الداكرة مثلي وأنا لا يمكن أن أبرمج هدا بدون دليل لهده الأرقام وأما في الوندوز فنحن نبرمج ب API وهي أيضا صعيبة ليتدكرها الإنسان كلها ولكن على الأقل فإن اسمها يعطينا نبدة عما تقوم به هده الدالة أو تلك.

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

لم يسبق لي أن رأيت إلى هدا الوقت كيف هو 64 بايت ولكن أتصور أو أقول لدي فكرة كيف يمكن أن يكون ولهدا فسوف لن أكون غريبا في هدا إن شاء الله وأضن أنه ربما تكون نفس طريقة المرور من 16 إلى 32 .

فيما يخص البايناري فنحن لا نستعمل أي شيء بالبايناري وإلا سيفقدنا الداكرة.ففي غالب الأحيان لا نهتم كيف يكتب هدا العدد بالبايناري.فحين تبرمج يمكن أن تدخل الرقم سواء بالعشاري الهيكس أو ما تحب.وفي غالب الأحيان نستعمل الهيكس لأن التحويل بين البايناري والهكس سهل والهيكس لا يأخد أعداد كبيرة لكتابة الأرقام. وإدا أردنا التحويل فيمكن استعمال الآلة الحاسبة للوندوز فهي يمكنها أن تقوم بجميع هده التحويلات.

قلت هل الحرف يأخد كم بايت.أولا أريد أن أفرق شيئا قد نسميه بعض الأحيان نفس الشيء. فهناك البت Bit وهناك البايت Byte يتكون من 8 بت ول بت يمكني أن يأخد إما 0 أو 1 .وحين نكتب حرفا ما فالحرف يأخد بايت واحد فمثلا A هي تتكون من بايت 1 وقيمته 41 بالهيكس.ولكن حين نقول أن حرفا يتكون من بايت فإن عدد الأحرف التي يمكن أن نكتبها هي 256 هدا مايمكن أن يوفره لنا البايت ولكن كيف سنكتب كل ما نريده كمثال عدة لغات مثلا. وهنا نستعمل ما نسميه ب Wide Character وهنا كل حرف سيعنمد على 2 بايت أي 16 بت ومن هنا يمكن أن يكون عندنا 2 أس 16 حرف أي ما يعادل 64 كيلو .

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

كدلك لأم أشتغل بعد على AMD وبما أن أغلب برامج البنتيوم هي شغالة في هدا وبما أننا نعتمد في الكثير من البرمجة العادية على نضام التشغيل فقد تكون الأمور كما هي إلا في حالة برمجة الأشياء مباشرة فربما يكون هناك اختلاف. وإدا كان هناك من شغل على هدا يفيدنا بمعلوماته.

أتمنى أني أكون أجبت على تساؤلاتك.

وقد برمجت البرنامج السابق ب 32 بايت وستجدون في الملف المرفق البرنامج ليشتغل على الوندوز وكدلك الكود والملف لبناء البرنامج في MASM32 .

وللغلم عثرت في البرنامج السابق خطء في إعطاء اليوم الصحيح في العام 2001 في الشهرين الأولين فقط ودلك ناتج إدا كنا نريد إدخال هدا العام أم لا وهنا لقد قمت بتصحيح دلك وأتمنى أن يكون فيه إفادة.

إلى اللقاء.

CalenderMasm32.zip

#14

الف شكر لك اخي على تعبك بالأجابه لكن

البرنامج اعتقد في خلل وهو كلما ابي اضغط على find the day طبعا احط كل المعلومات تطلعلي رساله وهي

you`ve entered an invalid day

0<DAY<32??

هل الخطا مني ام من البرنامج ؟؟

واريد ان اسالك هل برمجت البرنامج كاملا على ال masm32 ام استعنت بالفيجوال سي ++ ؟

لأنه امتداد الريسورس يبطلي الفيجوال سي الدايلوق فهل يعني استعنت في ؟

واذا البرنامج تبرمج 100 % بال masm 32 لماذا لا نرى برامج على وتكون قويه لأنه الأسمبلي سريعه وبما انه في masm32 بت مالحاجز هل لأنها ايضا تاخذ وقت ؟

اما بخصوص البايت والبت

انا الي فهمته منك هو

البايت = 8بت

البت = 0 او 1

وطبعا ال 8 بت تكون لنا حرف مثلا اي ياخذ او بايت وماذا للأرقام فمثلا الرقم 9 او 15 هل ايضا نفس الطريقه 1 بايت اذا الأجابه نعم فاستنتج

انه

في ال

0000 0000 الي اهي 8 بت اقدر امثل رقم واحد او حرف واحد او شكل واحد وهي عباره عن واحد بايت وطبعا تتشكل في ال 0 و 1 هل هكذا المساله ؟

بخصوص ال amd الحاله المباشره اكيد الي تقصد فيها برمجه الأسمبلي ذو 16 بت اي بدون البرامج فقط المترجمات البسيطه ارجو انها تكون نفس الحاله بدون متغيرات لأنه الأنترنت اغلبه يتكلم عن الأنتل وشرح اوامره خصوصا اعتقد انه ال amd على 2004 راح ينتشر بكثر لصدور FX وتقريبا هو يحطم الأنتل بسعر مناسب اي ممكن نشهد حاله تغير في السوق

ويعطيك الف عافيه حبيبي على ماتقدمه للمنتدى

:)

وبالتوفيق

#15

مشكورررر اخي العزيز .. واسمح لي اقولك .. أستاذي العزيز على المجهودات اللي سويتها ....

بس استاذي ما دري وش سويت بخصوص ... الجزء الأول من الكود ... اللي هو انك تدخل السنه والشهر ... وبعد ين يعرض التقويم الكامل للشهر ...

تحياااااااااااااااااااتي الحارة ،،،،

#16

استاذي العزيز chik ...

في هالملف راح تحصل كل شي عن الكود .... يعني المطلوب .. وبالذات .. الجزء الأول منه ...

وشكراً

Project031.zip

تم تعديل هذه المشاركة بواسطة black_dream في 29 ديسمبر 2003 في 13:42

#17

اووو نسيت شي فعلا وهو

يريت تعطيني اخي المترجم الي ترجمت في ال Calender الأول وملف التيكست او الأسمبلي يكون صحيح لأني داميا اذا بكتبه ببرنامج ال

Emu8086 v2.57

يحطلي خطا بالملف وهو

cmp al,01Bh

jnz Restart

وبالأخص يضلل احمر على السطر

jnz Restart

فهل من مشكله ؟؟

واهم شي المترجم الي استعملته اقصد الي فيي 16 بت والتيكست لل 16 بت لأطبق عليه

وشكرا

#18

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

إلى الأخ gaz-ooo

إني جربت البرنامج من جديد وهو شغال تمام. طبعا قبل أن نجد النهار المناسب يجب أن ندخل تاريغ اليوم والشهر والسنة التي نريدها وطبعا الشهر يجب أن يكون أكبر من 0 وأقل من 32 ليدل على يوم حقيقي وكدلك بالنسبة للشهر.فلتشغيل البرنامج يجب أن تدخل في خانة DAY اليوم الدي تريده مثلا 29 وفي خانة الشهر مثلا 9 إدا كنا نريد شهر شتنبر و العام 1260 إدا كنا نريد هدا العام. وفي النتيجة البرنامج سيعطينا اسم النهار الدي كان في دلك التاريخ إما الجمعة مثلا أو غيره.

وأعيد البايت يتكون من 8 بت - لا أدري إن كانت هده هي التسمية العربية الصحيحة - وكا بت يمكن أن يأخد إما قيمة 1 أو 0 .

كما قلت سابقا البايت يمكن أن يعطينا 256 رقما من 0 إلى 255 أو من 0 إلى FF بالهكس وطبعا حين أكتب أن البايت فيه قيمة 41 بالهيكس فهدا يمكن أن يدل إما على الحرف A إدا كنا نريد الأحرف وكما يمكن أن يدل على العدد إدا كنا نستعمل أوامر حسابية.وهنا نتساءل إدا كان البايت يأخد فقط 256 رقما فكيف سنمثل العدد 1000 مثلا وهو أكبر من 256 .هنا يمكن أن نجمع 2 بايت ليكونوا لنا عددا وهدا سيعطينا حوالي 65000 عددا كما يمكن أن نجمع 4 أبيات ستعطينا حوالي 4 مليار أو نجمع 8 إلى غير دلك . ومن هنا تظهر ما يمكنأن نستعمله في اللغات الأخرى مثل الباسيك أو س حين نعلن عن أرقام مثل short double وغيرها.

فيما يخص كتابة الكود فهو ب Masm32 والرسورس يمكن أن تصنعها بأي برنامج يمكنه أن يصنع لك هدا أو يمكن أن تصنعها يدويا لكن سوف لن تربح شيئا إضافيا سوى تعب الرأس وكما يمكن أن تنجز رسورسك داخل البرنامج ولكن هدا لن يزيدك سرعة أو شسء آخر.

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

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

إلى الأخ Black Dream

البرنامجين مختلفين في النضام. الأول هو ل 16 بايت بينما الثاني ل 32 بايت.

وكل ما صححت فيه هو أني في الأول كنت أعتبر العام الدي نريده كالعام الدي سبق ولهدا كان هناك خطء في العام 2001 مثلا وفي الشهرين 1 و 2 فقط لأن 2000 تكون كبيسة. هدا هو التصحيح من الناحية البرمجية.

سأطلع على الملف الدي أرسلته ولكن سيكون لنا اقاءات بعد أسبوع إن شاء الله. سأحاول الدخول إلى النت كلما استطعت دلك لأكن لن تكون لي إمكانية البرمجة لأني سأكون محروما من جهازي.

إلى اللقاء إن شاء الله.

#19

ولا يهمك اخوي chik ... ومشكووووووور على الخدمات اللي سويتها وما قصرت والله ...

#20

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

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

لاني الصراحة تعبت الى ان انحل هالسؤال .. والله صار لي اسبوعين .. وانا كل وقت اجي اشيك وش صار على البروجكت ...

فعلشان لا يضيع تعبي وتعبكم بعد ... ولا نخسر الدرجات حاولوا انكم تغيروا في السورس كود .. خصوصا طلاب (((بوتو)))

#21

اشكرك اخي chik على معلوماتك القيمه

1-لكن بالفعل الا الأن البرنامج لا يعمل حتى واني ضغط على ال make.exe ولم يعمل ويريت تقولي شنو هذا الملف الي بالدوس وهل سويته بالسي ايضا ؟

لكن ماعلي اتوقع انه غلط في عمليه المعالجه بين معالجي ومعالجك يمكن من ناحيه التعليمات او شغله جذي راح احاول اسوي واحد من جديد :)

2-بخصوص الريسورس نعم كنت فقط ابي اعرف هل يمكن ان ابرمجها بال masm32 بدون السي ++ لأنه لا اريد انا اقترب ابدا من السي++

حاولت اسويها بال فيجوال بيسك لكن لم اعرف كيف اطلعه على انه ريسورس

3-نزلت المترجم لل 16 بت وترجمت الملف ونجح لكن اخي ليمه اضغط على

link calennder.obj

Run File [so.exe]:

List File [NUL.MAP]:

Libraries [.LIB]:

Definitions File [NUL.DEF]:

LINK : warning L4021: no stack segment

يطلعلي اشياء وهي

لا اكتب شئ انا اخليها فاضيه فهل هذا صحيح ومافائدتها اذا كتبتهم

وما الفرق بين ال

masm و ml حيث نفس الغرض ؟؟

والف شكر لك حبيبي :)

تم تعديل هذه المشاركة بواسطة gazz_ooo في 31 ديسمبر 2003 في 05:44

#22

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

يا أخي لو توضح البرنامج اللي تتكلم عليه إن هو 16 بايت أو 32 بايت.

إن الملف make.exe لا هو مكتوب ب س أو أية لغة فهو ملف بات يحتوي على المعلومات لبناء البرنامج فقط ويمكن أن تقوم بدلك يدويا وتكتب كل سطر لوحده.والكمبايلر كما قلت سابقا فأنا أستعمل MASM32 .وبالنسبة للرسورس فيمكنك أن تصتعه بالفيجوال وحتى إن كنت لا تعرف لغة س++ فأنت ستقوم بها كما تقوم في الباسيك أو كأنك تصنع صورا وكذلك هناك برامج متعددة يمكنك أن تستعملها لهذا الغرض.

بالنسبة ل 16 بايت الفرق بين MASM وبين ML هو الأول يقوم ب ASEEMBLE للبرنامج فقط والثاني يقوم بعمليتين في نفس الوقت ASSEMBLE AND LINK ويمكن أن تستعمل ما تريد ولهما نفس النتيجة.والمعلومات التي يعطيك عي إذا كنا مثلا نريد الملف تحت اسم آخر أو أشياءا أخرى ولكن إطا أعطيناه بياض في كل مرة يعطينا الأشياء BY DEFAULT والإنذار لأننا لم نحدد أو نعطي الستاك.

إلى اللقاء.

#23

شكرا لك اولا اخي

انا اقصد برنامج الرزنامه الثاني 32 بت لا يعمل عندي

مع اني احط التاريخ والسنه والوقت لكن لا يهم

اخي بخصوص الريسورس للأسف انا حاليا جهازي بدون مكتبه الفيجوال

هل يصلح اسوي الريسورس بالماسم 32 وهل يحتوي لجميع دوال الوندوز للبرمجه ام البعض لأنه كما تعلم الفيجوال بسيك جميع معتمد على دوال الوندوز فهل يصلح للماسم في دول الوندوز

واشكرك مره اخرى :)

#24

السلام عليكم.

حين تقول أن الملف لا يشتغل عندك هل تقصد البرنامج exe أو الملف لا تقدر تعمل له بناء. فإن كان الأول فهدا شيء غريب فأنا جربت البرنامج في عدة أجهزة وهو شغال وأتمنى من الإخوان ممن شغلوه أن يعطوا رأيهم في هدا حتى نحدد ما هو سبب المشكل اللي عندك. وإن كان المشكل هو الثاني فلبناء البرنامج يجب أن يكون عندك MASM وأن يكون في المجلد c:\masm32 وإدا كان عندك في مسار آخر فيجب تغيير هدا المسار في الملفات asm. وفي الملف bat. وتعطي مسارك الصحيح.

فيما يخص الرسورس هناك بعض نسخ masm معهم برنامج لبناء الرسورس وإدا لم يكن فابحث في النت وهناك عدة برامج تمكنك من فعل هدا يمكنك تحميل واحد منها لتشتغل به.

#25

نعم اخي انا اقصد البرنامج الأول فعلا شي غريب اتوقع في خلل بالوندوز او عشان وندوز xp ساجرب اعمل به ب 98

وسابحث على masm ان شاء الله

ويعطييك الف عافيه اخي :)

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

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