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

موضوع عن لغة الالة

مغلق
بدأه hamada hassan ali في 25 نوفمبر 2005 · 19 رد · 2,733 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

فى حاجة محيرانى

التعليمة INT لها مايقابلها من تعليمات لغة الالة 00011101101 مثلا

ولكن لنفرض انى اريد كتابة التعليمة بهدا الشكل

INT 33h

هكدا فى الاسمبلى

هل فى لغة الالة اكتب التعليمة INT بما يقابلها من الالة ثم مايقابل الرقم 33 بلغة الالة وفقط ولا اكتب مايقابل الحرف h بلغة الالة

ام فى لغة الالة تكون الدالة هكدا فقط :

INT 33 ام اننا نضيف حرف h ايضا بعد اللارقام

ام غير مقيد بكل شىء فى الاسمبلى صح

يعنى لكن طرريقة حفظ وتخزين البيانات اكيد بهده الطريقة

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

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 25 نوفمبر 2005 في 19:23

_____________________________

C Language && Windwos_API

_____________________________

#2

وعليكم السلام

واضح من سؤالك انك لا تعرف الفرق بين انظمة الاعداد, حرف الh يكتب فقط للدلالة على ان الرقم هو من نوع hex يعنى النظام الـ16.

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

التعليمه INT لها ما يقابلها بلغة الالة كما ان التعليمة mov لها ما يقابلها, ولا تتعب نفس لن تجد شخص على وجه الارض حتى مصمم المعالج نفسه يحفظ هذه الارقام, ولكن عندما يريد معرفة تعليمة معينه يفتح الكتاب ويستخرجها..

ارجوووووك يا حماده كفايه اسئلة عن الموضوع دا عشان مش حنوصل لنتيجه بالشكل ده, إنتا مش حتتعلم و إحنا حنتعقد وزنبنا فى رقبتك...

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

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

#3

يا اخى

وطالما مش عاوزين حد يسال فى لغة الالة اوكى

ممكن اعرف ازى استدعى الاسمبلى الموجود مع الفيجوال سى 6

asm

{

اكواد الاسمبلى

}

مش بتشتغل معايا

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 26 نوفمبر 2005 في 06:05

_____________________________

C Language && Windwos_API

_____________________________

#4

الاجابة داخل الmsdn

اذا لم يكن لديك نسخة تستطيع تصفحها من الشبكة

http://msdn2.microsoft.com/en-us/library/4...-US,VS.80).aspx

اقرأ كويس و الامر بسيط ان شاء الله

#5
// InlineAssembler_Calling_C_Functions_in_Inline_Assembly.cpp
// processor: x86
#include <stdio.h>

char format[] = "%s %s\n";
char hello[] = "Hello";
char world[] = "world";
int main( void )
{
   __asm
   {
      mov  eax, offset world
      push eax
      mov  eax, offset hello
      push eax
      mov  eax, offset format
      push eax
      call printf
      //clean up the stack so that main can exit cleanly
      //use the unused register ebx to do the cleanup
      pop  ebx
      pop  ebx
      pop  ebx
   }
}
#6
Int 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!]
Int 41 - Z100 - Master 8259 - Processor Swap
Int 41 - TI Professional PC - IRQ1
Int 41 - Acorn BBC Master 512 - OSGBPB - MULTI-BYTE GET/PUT
Int 41/AX=0000h - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
Int 41/AX=0001h - MS Windows debugging kernel - INPUT CHARACTER
Int 41/AX=000Dh - MS Windows debugging kernel - TASK GOING OUT
Int 41/AX=000Eh - MS Windows debugging kernel - TASK COMING IN
Int 41/AX=0012h - MS Windows debugging kernel - OutputDebugString
Int 41/AX=004Fh - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
Int 41/AX=0050h - MS Windows debugging kernel - DefineDebugSegment
Int 41/AX=0051h - MS Windows debugging kernel - MOVE SEGMENT
Int 41/AX=0052h - MS Windows debugging kernel - FREE SEGMENT
Int 41/AX=0059h - MS Windows debugging kernel - LOAD TASK
Int 41/AX=005Ch - MS Windows debugging kernel - FREE INITIAL SEGMENT
Int 41/AX=0060h - MS Windows debugging kernel - END OF SEGMENT LOAD
Int 41/AX=0061h - MS Windows debugging kernel - END OF SEGMENT DISCARD
Int 41/AX=0062h - MS Windows debugging kernel - APPLICATION TERMINATING
Int 41/AX=0063h - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
Int 41/AX=0064h - MS Windows debugging kernel - DLL LOADED
Int 41/AX=0065h - MS Windows debugging kernel - MODULE REMOVED
Int 41/AX=0066h - MS Windows debugging kernel - ERROR
Int 41/AX=0067h - MS Windows debugging kernel - PARAMETER ERROR

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

سوال كمان :

ازى اعرف entry-point لاى دالة من دوال API

كيف اتعامل مع API فى Low level باستخدام اسمبلى 32 بت

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 26 نوفمبر 2005 في 12:24

_____________________________

C Language && Windwos_API

_____________________________

#7

بالنسبة لسؤالك الاصلي الاجابة بسيطة لكن من الواضح انه ينقصك

كثير من الاساسيات .... حاول

ابدأ بشئ بسيط تفهمه و اريني محاولتك ثم باذن الله سوف اساعدك

مشكلتي اني جديد في المنتدى و لذلك ليس لدي فكرة عن مستواك

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

تم تعديل هذه المشاركة بواسطة glimps في 26 نوفمبر 2005 في 12:31

#8

ركز التنطيط بين الاسئلة يشتت

#9

مستوى كويس فى السى بتعامل مع اى شىء مصوفات تركيب بيانات دراستها فى الاكاديمية

انا بس عاوز اعرف ازى استدعى دوال API من الاسمبلى 32 بت

او entry-point لاى دالة API ازى اعرفه

عن طريق اكواد

يعنى كود : يأخد اسم الدالة يعطنى عنوانها فى الداكرة بسيطة

_____________________________

C Language && Windwos_API

_____________________________

#10

خير .. اكتب بالراحة ... اكتب عربي

تعرف سي كويس ممتاز

خير الواجب الان

عاوز اعرف ازاى استدعى دوال API من السي

رد على حتي ارد عليك

اكتب لي مثال بسيط برنامج صغير كامل - لن اكمل واجبات - يستدعى دالة API من السي

في انتظار ردك

تم تعديل هذه المشاركة بواسطة glimps في 26 نوفمبر 2005 في 13:02

#11

تقصد ايه عاوز برنامج يعنى بالسى && API يعنى

طيب قول على الفكرة وانا اصممها لك

على فكرة انا لو صممت مترجم ساصممه من السى شارب او الفيجوال بيسك 6

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 26 نوفمبر 2005 في 13:05

_____________________________

C Language && Windwos_API

_____________________________

#12

أخي hamada بارك الله فيك

حدد جيدا ما تريد ثم إسئل سؤال واضح

ولا تخلط بين الأمور

هناك أقسام C و أقسام C# وغيرها

d4baa0.gif
#13

السلام عليكم

اقتباس
مشاركة بتاريخ اليوم, 03:05 PM

  أخي hamada بارك الله فيك

حدد جيدا ما تريد ثم إسئل سؤال واضح

ولا تخلط بين الأمور

هناك أقسام C و أقسام C# وغيرها

مش مهم ما اللغة اللى حستعملها لبناء البرنامج المهم ان انا عندى اسئلة مش عارف اجابتها

ياشباب الله يخليكم انا طلباتى واضحة والله من زمان

طلباتى :

طلباتى محددة من الاول :

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

اريد ان اقوم ببناء مترجم للمعالج P4 موجه لبناء برامج للويندوز

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

1- كيف اصمم مترجم موجه الى تطبيقات الويندوز ؟

هل من فكرة حول الموضوع ده

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

2- كيف اعرف entry-point الخاص بكل دالة من API؟

هل يمكننى التحكم بملفات DLL من الاسمبلى 32 بت

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

4- ما معنى كل دالة لانى مش فاهم الخورزميات المكتوبة دى :

اقتباس

Int 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!]
Int 41 - Z100 - Master 8259 - Processor Swap
Int 41 - TI Professional PC - IRQ1
Int 41 - Acorn BBC Master 512 - OSGBPB - MULTI-BYTE GET/PUT
Int 41/AX=0000h - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
Int 41/AX=0001h - MS Windows debugging kernel - INPUT CHARACTER
Int 41/AX=000Dh - MS Windows debugging kernel - TASK GOING OUT
Int 41/AX=000Eh - MS Windows debugging kernel - TASK COMING IN
Int 41/AX=0012h - MS Windows debugging kernel - OutputDebugString
Int 41/AX=004Fh - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
Int 41/AX=0050h - MS Windows debugging kernel - DefineDebugSegment
Int 41/AX=0051h - MS Windows debugging kernel - MOVE SEGMENT
Int 41/AX=0052h - MS Windows debugging kernel - FREE SEGMENT
Int 41/AX=0059h - MS Windows debugging kernel - LOAD TASK
Int 41/AX=005Ch - MS Windows debugging kernel - FREE INITIAL SEGMENT
Int 41/AX=0060h - MS Windows debugging kernel - END OF SEGMENT LOAD
Int 41/AX=0061h - MS Windows debugging kernel - END OF SEGMENT DISCARD
Int 41/AX=0062h - MS Windows debugging kernel - APPLICATION TERMINATING
Int 41/AX=0063h - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
Int 41/AX=0064h - MS Windows debugging kernel - DLL LOADED
Int 41/AX=0065h - MS Windows debugging kernel - MODULE REMOVED
Int 41/AX=0066h - MS Windows debugging kernel - ERROR
Int 41/AX=0067h - MS Windows debugging kernel - PARAMETER ERROR

اتمنى ان اجد اجابة لهده الاسئلة

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

وشكرا

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 26 نوفمبر 2005 في 17:54

_____________________________

C Language && Windwos_API

_____________________________

#14
اقتباس
1- كيف اصمم مترجم موجه الى تطبيقات الويندوز ؟

دا مش سؤال يا حماده دا إسمه تعجيز, لازم تقراء كتب عن كيفية عمل المترجمات, السؤال دا زى الواحد ما يسئل الدكتور كيف اقوم بعمل عملية جراحية للمخ, تفتكر الدكتور حيرد عليك يقول إيه؟؟

اقتباس
2- كيف اعرف entry-point الخاص بكل دالة من API؟

استخدم ollydbg اكتب برنامج يحتوى على الدالة التى تريد ان تعرف الـintry point لها وبعد ذلك افتح البرنامج فى ollydbg وسترى العنوان بكل وضوح.

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

إيه دا إنتا نسيت السؤال رقم 3 يا حماده ,,

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

والسلام عليكم

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

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

#15

مشكور جدا اخى

شكر ا

_____________________________

C Language && Windwos_API

_____________________________

#16

1

إستخدم Lex & Yacc

أو الأحدث Flax & Bison

2

عن أي API تتحدث

Windows API ؟

سيفيدك هذا

!3

طبعا يمكن

4

Int 41فيDOS ليست مقاطعة

بل مكان مخزن به معلومات عن القرص الصلب الأول

في Windows هي قلب نواة التنقيح

MS Windows debugging kernel

d4baa0.gif
#17

تعال يا حمادة لقيتلك الحل بس بدك تترك الفيجوال بيسك وتتعلم ++C اللي بعتقد انك بتعرفها منيح: http://www.amazon.com/gp/product/047111353...283155&v=glance

كتب جيدة للبدء -- نصيحتي ابدا فيها

Do as I say, not as I do

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

#18

في الأسمبلي تستطيع استدعاء أي function عن طريق اسمه, يعني لا تحتاج معرفة عنوانه بالأرقام!

call printf

يستدعي الدالة printf

حتقلي كيف ترسل لها بارامترات؟

لازم تحطها عالـ stack

مثلا,

someFunction( 23, ty );

في الأسمبلي تصبح:

push dword [ty]
push dword 32
call someFunction
add esp, 8    ;pop two items from the stack

اقتباس
اقتباس
1- كيف اصمم مترجم موجه الى تطبيقات الويندوز ؟

دا مش سؤال يا حماده دا إسمه تعجيز, لازم تقراء كتب عن كيفية عمل المترجمات, السؤال دا زى الواحد ما يسئل الدكتور كيف اقوم بعمل عملية جراحية للمخ, تفتكر الدكتور حيرد عليك يقول إيه؟؟

أول خطوة في عملية الدماغ هي إمساك السكينة :P

اول خطوة في المترجم هو الـ lexical analyzer

شوف هذا الموضوع يمكن يفيدك /index.php?showtopic=80738

#19

مشكورين جدا

_____________________________

C Language && Windwos_API

_____________________________

#20

لايضر الانسان ان يسال ويجرب فكل العلوم هي تاخذ عن طريق التجربه

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

شبكة شباب IT

http://www.shababit.net

shababit.gif

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

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