.:رسمه مبدع:.
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
.:رسمه مبدع:.
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
.:رسمه مبدع:.
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


.:رسمه مبدع:. طريقك نحو الابداع
 
الرئيسيةالبوابهأحدث الصورالتسجيلدخول
اهلاوسهلا بكم في منتديات برامج نت ارجو من جميع الزوار التسجيل مع تحيات $الادارة$

 

 مقدمه عن الاسمبلى

اذهب الى الأسفل 
كاتب الموضوعرسالة
PrAmJnEt
مدير عام
مدير عام
PrAmJnEt


ذكر عدد المساهمات : 396
نقاط : 146692
العمر : 65

مقدمه  عن الاسمبلى Empty
مُساهمةموضوع: مقدمه عن الاسمبلى   مقدمه  عن الاسمبلى Emptyالإثنين مايو 11, 2009 7:28 pm

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

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

معالج
أي حاسب لا يفهم أية لغة، لا الباسكال ولا السي ولا الجافا، ولا حتى
التجميع في حد ذاته، إنما يفهم شيئا واحدا، هو لغة الآلة. إنها قائمة من
ثمانية أعداد تسمى البتات bits، وتكون مقدمة في النظام الست عشري، على
شاكلة "B0h 12h". ومنه يمكننا القول أن التجميع هو إصدار يتوافق مع فهم
البشر للغة الآلة.

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

ثانيا،
يمكنك الوصول إلى مقاطعات الدوس (interruptions)، والتي تسمح بالوصول
المباشر إلى العتاد، كالفأرة أو الشاشة أو حتى بطاقة الفيديو. لأن المترجم
(compiler) لا يعمل إلا على ترجمة البرنامج المكتوب بلغة يفهمها الإنسان
إلى لغة التجميع، وهذه العملية يمكن القيام بها يدويا بعد تدريب طويل في
هذا الميدان. كما يتيح لنا التجميع إمكانية معرفة ما يتوفر عليه ملفنا
الثنائي (ملف تنفيذي .exe أو .com في بيئة مايكروسفت).

معجم التجميع:
المصرف:
هو برنامج يقوم بتحويل كود مصدري (ملف نصي، أما للتجميع، فالملف يكون ذو
توسع .asm) إلى كود الآلة، يعني إنشاء ملف ثنائي (ملف ذو توسع -امتداد-
.obj أو .exe أو .com).

الست عشري (Hexadecimal): في نظام العد
المتداول بين الناس، نستعمل الأرقام العربية، والمحصورة بين 0 والـ 9، إذن
ما مجموعه 10 أرقام، والرقم الأكبر هو 9 (10-1). نقول إذن عن هذا النظام
أنه نظام عشري decimal. فالعدد 451 يمكننا تفكيكه على شكل:

( 4×100) + (5×10) + (1×1)= 4×10 2 + 5×10 1 + 1×10 0.

النظام
الست عشري ينتهي عند 16، والسبب الذي دفع إلى ذلك هو تمثيل النظام الثنائي
بأقل عدد ممكن من الأرقام. فكما نعلم جميعا، فالنظام الثنائي يتكون من
رقمين فقط، وهما الـ 0 والـ 1، ولتكوين أي رقم آخر، فإننا نكتب متوالية من
الأصفار والوحدات على شاكلة 01101001 وهذا الرقم يمثل 105 في نظام عدنا
الذي نستعمله يوميا، ولكن لتمثيل أعداد كبيرة نحتاج إلى أصفار ووحدات
كثيرة، مما يسبب العديد من الأخطاء ويضيع الوقت، ويعقد الفهم، لهذا جاء
دور النظام الست عشري ليحل الإشكال، ويعوض كل أربعة أرقام ثنائية برقم ست
عشري واحد.

01101001 = 1001 و 0110 = 9 و 6 = 69 في النظام الست عشري.

النظام
الست عشري يبدأ من الـ 0 وينتهي عند الـ 15، ولكن الأرقام الستة الأخيرة
(من 10 إلى 15) تتكون من وحدتين، وهذا ما سيخلط الأمور، لهذا تم تعويضها
بحروف (( طبعا كلنا اخدنا هالشي وعارفينه))

البايت (Byte):
البايت هو متوالية من ثمانية بتات (8 bits)، فإذا كان البايت مرمّزا
(signed) فإنه يمكنه أخذ قيمة محصورة بين –128 و +127 (128= 2 8-1 = 2 7 ،
و127= 2 (8-1)-1)، إذن تحتل القيم المحصورة 7 بتات فقط، والبت الأخير
يستخدم للإشارة (السلب أو الإيجاب)، إما إذا كان البايت غير مرمّز فإنه
بإمكانه أخذ قيمة محصورة بين 0 و 255، أي 256 حالة = (2^Cool.

الكلمة (Word): بما أن البايت يشغل 8 بتات، فإن الكلمة تشغل 16 بتا، وبالتالي يمكن القول أن الكلمة تحوي 2 بايت.
إذا
كانت الكلمة مرمزة، فإنها قادرة على احتواء قيمة محصورة بين –32768 أي (2
15)، و 32767 أي (2 15 - 1)، أما إذا كانت غير مرمزة، فالقيمة المحتواة
تكون محصورة بين 0 و65535 (2 16 -1).


الكلمة المضاعفة (Double
Word أو DWord): وتشغل الكلمة من هذا النوع قيم ذات 4 بايت. إذن إذا كانت
مرمزة، فإنها تكون بين –2147483648 أي (2 31)، و +2147483647 (2 31 –1)،
أما إذا كانت غير مرمزة، فبإمكانها حصر قيمة تتراوح بين 0 و 4294967295.

السجل
(Register): هو فراغ ذاكري موجود بصفة فيزيائية في قلب المعالج
(Processor)، والذي تحفظ فيه القيم أثناء معالجتها. في البداية كانت
السجلات تعمل على ثمانية بتات (بايت واحد)، وكانت تسمى آنذاك ?L (حيث يمكن
للرمز " ?" أن يكون A أو B أو C أو D)، ثم تطورت السجلات إلى 16 بت
(كلمة)، وصارت مسماة بـ ?X، الشيء العجيب في هذا، هو أننا لو قمنا بتغيير
قيمة ?L فإننا نكون بذلك قد غيرنا الجزء المنخفض من السجل ?X. بمعنى آخر،
?X مكون من بايت ومن ?L (ويقال أيضا من جزء مرتفع وجزء منخفض). ثم بعد
وصول معالجات 386، تم الانتقال إلى سجلات 32 بت، وصارت بالتالي تسمى بـ E
?X، وهنا إذا ما قمنا بتغيير قيمة ?L أو ?X فإننا نكون بذلك قد قمنا
بتغيير الجزء E ?X

القطاع والفرع (Segment & Offset): العناوين
الذاكرية (مواقع البايتات على صفائح الذاكرة) معرفة بسجّلين، القطاع
(الجزء المرتفع من العنوان)، وبالفرع (الجزء المنخفض من العنوان). نشير أن
العنوان يحدد بـ [Segment :[Offset (حيث أن النقطتين ":" هما الفاصل، في
حين يعتبر المجالان "]" و "[" غير إجباريين). مثال: [DS :[DI
مع وصول
الـ 386، تطورت الفروع إلى 32 بت، من أجل الوصول إلى أقصى الذاكرة (16
ميغا بايت)، وظهرت بذلك الفروع بالسابقة E، مثل (ESI, EDI, ESP, EBP)، هذا
بالنسبة لسجلات 32 بت، ونفس الشيء كان مع سجلات 16 بت، حيث كانت الفروع
SI, DI, SP, SB.


المقاطعة (Interruption): يمكن وصف المقاطعة
على أنها برنامج صغير مخزّن في الذاكرة، ويتم طلبه عدة مرات لأداء مهمة
محدّدة ، وبوثيرة متزايدة أو متناقصة. يوجد على الأكثر 256 مقاطعة،
فالأولى منها مدمجة في البيوس (BIOS، وهو برنامج ينفذ عند تشغيل الحاسب،
والذي يسيّر العتاد: القرص الصلب، الوصول إلى الذاكرة ...)، مثل مقاطعات
بطاقة الفيديو ولوحة المفاتيح.

المكدس (Stack): في المكدس نقوم
بإضافة القيم بفضل التعليمة PUSH، ونقوم بحذفها من خلال التعليمة POP. في
قمّة المكدس نجد قيمة السجلE]BP]. ويمكننا بذلك معرفة ما هو موجود في
الطابق X من خلال التعليمة "[mov AX, [Bp-4"، ولكن ليس لحذف هذه القيمة،
لأننا لو قمنا بحذف قيمة من وسط المكدس، فإن هذه الأخيرة تتقهقر، وهذا ما
يؤدي إلى توقف الحاسب عن العمل.

الراية (Flag): الرايات هي بتات موجودة بداخل المعالج.


صحيح الموضوع طويل بس عن جد مفيد وبيعطينا شوية معلومات عن ماهو قادم ...

الله معكم
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://rsma-m.yoo7.com
 
مقدمه عن الاسمبلى
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» مقدمه عن التجميع
» مقدمه عن البى اتش بى

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
.:رسمه مبدع:. :: ¨°o.O (لغات البرمجه) O.o°¨ :: .:لغه التجميع الاسمبلى:.-
انتقل الى: