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

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

شبكة الاصدقاء ترحب بكم

برمجة MIL@D ESBER
 
الرئيسيةأحدث الصورالتسجيلدخولتسجيل دخول الأعضاء
a3e7be10.gif - 55.72 KB

 

 لغة الأسمبلي

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


الجنس : ذكر الابراج : العقرب عدد المساهمات : 10
نقاط : 4941
السٌّمعَة : 10
تاريخ التسجيل : 16/11/2010
العمر : 28
مكان الإقامة : عين دابش

لغة الأسمبلي Empty
مُساهمةموضوع: لغة الأسمبلي   لغة الأسمبلي Emptyالأربعاء 22 ديسمبر 2010, 4:25 am

ماھي الأسمبلي :
في قديم الزمان أيام بدايات الكمبیوتر كانت برمجة الكمبیوتر تتم بواسطة لغة الأله
لغة الآله ھي اللغه التي تفھمھا الآله مباشرة ) ML أختصاراً Machine Language
دو ن الحاجة الى تفسیر وھي تخزن بصورة ثنائبة [ تركیبة من الأصفار والوحايد] في
الذاكرة على شكل تعلیمات ووسائط تأخذ كل واحد منھا عادة مقدار 8بت=ا بايت )
وكان ھذا النوع من البرمجة صعب جداً عندھا طور المبرمجون أو ل لغة برمجة وھذه
اللغه فكرتھا بسیطة جداً حیث أنه بدل أ ن تكتب رموز الآله يتم كتابة كلمات مختصره
ثم ببرنامج بسیط يتم تحويل ھذه ( MOV,ADD,CMP ) تدل على نوع العملیه مثال
الشفرة الى لغة الآله بأستخدام تخطیط واحد-الى-واحد أ ي أ ن كل سطر أو عبارة في
الأسمبلي تحول الى تعلیمة واحدة مقابله في لغة الآله (مثال بدل كتابة
يعرف البرنامج الذي يقوم بعملیة التحويل ( mov al, 011000000000101 يتم كتابة 5
علماً بأن ھناك عدة أنواع من الأسمبلر كل نوع يختص ، Assembler بالأسمبلر
بتقنیة معینة وبعائلة معینه من المعالجات
IBM-PC ونحن ھنا بصدد تعلم البرمجة بالأسمبلي للمعالجات المبنیة على تقنیة
وھي تضم : X 80 ويرمز لھا أختصاراً 86 × والمنتجة من شركة أنتل وھي العائلة 86
/ 80486 / 80286 ) ل معالجاتلا 16 بت و ( 80386 / 80186 / 8088 / 8086 )
( 80886 =بنتنیوم 4 / 80786 =بنتنیوم 3 / 80686 =بنتنیوم 2 / 80586 =بنتنیوم 1
ملعالجاتلا 32 بت وسوف أتطرق في دروس متقدمة الى المعالج أتنیوم 64 بت
المبني بتقنیة جديده كلیاً لمن يرغب بمعرفة مسبقة لھذا المعالج الجديد كذلك سوف
أتطرق بأذ ن الله الى الكرو س أسمبلر وھي مجموعة برامج خاصة مصممه للتحويل
من لغة أسمبلي لعائلة معالجات معینة الى عائله أخرى .
تعريف لغة الأسمبلي
الأسمبلي ھي لغة برمجة تتكون من سلسلة من التعلیمات المتتابعة كل تعلیمة فیھا تحول الى تعلیمة
مقابلة بلغة الآله .
تعريف الأسمبلر
الأسمبلر ھو برنامج يقوم بتحويل التعلیمات المكتوبة بلأسمبلي الى لغة الآله .
لماذا أريد أستخدام الأسمبلي :
بتعلمك لغة الأسمبلي فأنك تكشف النقاب عن الأسرار المختفیه وراء الكمبیوتر وتصبح
قادراً على الفھم تماماً كیف يعمل المعالج وكیف يعمل البرنامج وبذلك تزيد خبرتك
كمبرمج وبالطبع فأن الأسمبلي أقوى من اللغات العالیة المستوى في التعامل مع
العتاد وتعطیك مرونة عالیة وقدرة وصول الى أشیاء لم تكن تستطیع الوصول الیھا من
قبل ، كذلك ھناك نوعیات من البرامج لايمكن الا برمجتھا بالأسمبلي مثل
الدرايفات(سواقات) الأجھزه ، كذلك فأن الأسمبلي يعطیط برامج سريعة جداً ، وبالطبع
فأن بناء برنامج متطور بالأسمبلي أشبه بحفر حفرة بواسطة الملعقه فالبرغم أنك تحفر
الا أ ن ك أنت اجی تك قلی لهولكن من المحبذ جداً برمجة بعض الدولا و الأح ز اء من البر امج
بالأسمبلي وبقیة البرنامج بواسطة لغة عالیة المستوى مثل السي++.
العلاقة بین الأسمبلي واللغات الأخرى :
Low-Level تعتبر كل من لغة الآله و الأسمبلي لغتین منخفضتي المستوى
لأنھا تكتب تعلیمه تعلیمه ( بعض الناس يعتبر لغة السي لغة LLL أختصاراً Language
منخفضة المستوى ، وھذا الكلام أرجح الى الخطأ منه الى الصوا ب ) بینما تعتبر باقي
وفي ھذه اللغات تختفي تقنیة تخطیط HLL أختصاراً High-Level Language اللغات
واحد-الى-واحد وتفسر التعلیمة الواحدة الى عدد كبیر من تعیلمات لغة الآله
مخطط يوضح العلاقة بین لغة الأسمبلي ولغة الآله ولغة عالیة المستوى ولغة الآله
تطبیقات لغة الأسمبلي :
تتطلب كتابة البرامج بلغة الأسمبلي معرفة بالعتاد وعناية خاصة مع الأھتمام بأد ق
وأقل التفاصیل ، في أيام البرمجة القديمة كان المبرمجون يكتبون برامجھم بلغة
الأسمبلي لأن ذاكرة الرام وقتھا كانت صغیرة (أقل من 64 كیلوبايت) وھم بحاجة الى
برامج أصغر وأسرع خصوصاً أ ن معالجتھم أيضاً كانت بطیئة ، مع تطور الحاسوب وتوسع
سعة ذاكرة الرام وزيادة سرعته أصبحت البرامج أكثر طولاً وتعقیداً ، ھذا التعقید أدى
مثل السي والكوبول والبیسك HLL الى أستخدام اللغات البرمجیة عالیة المستوى
والباسكال والفورترن ، مرة أخرى تطور الحاسوب فأدى الى أستخدام اللغات العلیا
مثل السي++ والجافا والتي مكنت من كتابة برامج قوامھا آلاف OOP الموجھة الھدف
الأسطر والتعلیمات المعقده والمتداخله .
من الصعب أ ن تلاقي برامج كبیرة مكتوبة كاملة بلغة الأسمبلي لأن كتابتھا صعب
والأھم من ذلك تطويرھا وصیانتھا أصعب بكثیر ، بدل ذلك يقوم المبرمجین ببرمجة
مقاطع مبرمجة برمجة مثلى بلغة الأسمبلي لأستخدمھا في تنفیذ أسرع أو الوصول
الى العتاد عن طريقھا وباقي البرنامج بواسطة لغة عالیة المستوى .
يفض المبرمجین لغة السي++ كلغة قیاسیة للبرمجة بلغة علیا لأن لھا قدرة عالیة
وقوية جداً وموجھة الھدف مع القدرة على كتابة مقاطع السي فیھا وھي لغة أقل
أنخفاضاً وأكثر مرونة مع أستخدام الأسمبلي كعنصر مھم في الوصول الى العتاد
وبرمجة الجزئیات المحتاجة للسرعة .
لا يستخدم المبرمجون شفرة الأسمبلي وسط شفرة لغة عالیة المستوى عادة وأنما
يستخدمونھا عن طريق واجه على شكل دالة أو كائن وتحتوي ھذه الدالة أو ھذا الكائن
على شفرة الأسمبلي المطلوبة ، وقد تستخدم روتیناً فرعیاً أو دالة في لغة عالیة
المستوى وأنت لاتعلم بأنك باستدعاء ھذه الدالة أو الروتین الفرعي قد أستدعیت
شفرة مكتوبة بلغة الأسمبلي .
لغة الآله :
لغة الآله كما ذكرنا سابقاً ھي اللغة التي تسطیع الآله أو المعالج التعامل معھا مباشرة
كل معالج يحتوي يستطیع تنفیذ تعلیمات المعالج الذي قبله ويملك X ، في العائلة 86
مجموعة تعلیمات موسعة وأ ضافیة لا تستطیع المعالجات التي قبله تنفیذھا وأما
المعالج الذي يأتي بعد ھذا المعالج فأنه يدعم التعلیمات الموسعة للمعالج الذي قبله
بینما يحتوي ھو أيضاً على تعلیمات جديدة وموسعة ، بأختصار اذا صممت برنامج
لمعالح ما فأن المعالجات ماقبل ھذا المعالح لن تستطیع تشغیله بینما المعالج نفسة
والمعالجات التي بعده (من نفسالعائلة) تستطیع تشغیل البرنامج .
أبتداء من المعالج 8086 وصولاً X لفد حافظت شركة أنتل على التوافقیة في العائلة 86
80886 ولكن الحفاظ على التوافقیة يفرض قیود على تصمیم المعالج = الى بانتنیوم 4
عند X وأستخدام تقنیات قديمة ، ومؤخراً قرر ت شركة أنتل ايقاف عائلة المعالح 86
مبني على تقنیة ( X بانتنیوم 4 وقامت بأنشاء معالج جديد (غیر متوافق مع العائلة 86
لا 64 بت وھو المعالج اتانیوم الجديد .
مثال على لغة الآله :
التعلیمیة 1011000000000101 ھي تعلیمة بلغة الآله ومعناھا أنقل الرقم 5 الى
لا 8 بت الأولى من التعلیمة تشكل mov ah, يقابلھا بلغة الأسمبلي 5 ah المسجل
وھي تعني نقل قیمة بطول 8 بت الى OP-code=operation code شفرة التعلیمة
لاجزء الثاني منلا 16 تبلا 8بت الأخرى تشكل الرقم 5 ثنائیاً ، AL المسجل

king king king king
تعلم الأسمبلي باللغه العربیه - الدرس 1.2
الرئیسة | الدرس التالي | منتدى الأسمبلي | العودة الى الوحدة الأولى
2001 | عدد الزوار /7/ | آخر تحديث : 19
قد تتسائل ما علاقة تمثیل البیانات والعد الثنائي بالأسمبلي ؟ حسناً كما وضحت من
قبل فأن الأسمبلي ھي لغة قريبة جداً من لغة الآله وھي لغه منخفضة المستوى
تتعامل مع العتاد والمعالح بصورة مباشرة ولكي نحقق فھماً أوسع لھذه اللغه يجب أ ن
نفھم بعض الأشیاء المھمة جداً في بنیة المعالج .
العد الثنائي :
يتم تمثیل الشفرا ت والبیانات في ذاكرة الكمبیوتر كتوالیف من الشحنات الكھربائیة تأخذ
أو ‘ 1’ والأخرى TRUE أو صحیح ON قیمتین الأولى وھي وجود الشحنة ويرمز لھا ب
أو ‘ 0’ ، ووجود الشحنة يكون عادة FALSE أو خطأ OFF وھي غیاب الشحنه ويركز لھا ب
بین 4.5 الى 5.5 فولت ( المعالجات الحديثه بین 2.5 الى 3.5 فولت ) وغیاب الشحنة
يكون بین + 0.5 فولت و - 0.5 فولت .
وحدا ت الذاكره الأساسیه في الذاكره والوحدا ت التي سنتعامل معھا كثیراً ھي :
أسم الوحدة الأحتمالات مايعادلھا
أحتمالین 0 و 1 1 بت Bit البت
256 أحتمال 8بت Byte البايت
65536 أحتمال 16 بت= 2بايت Word الكلمة
4,294,967,296 أحتمال 32 بت= 4بايت= 2كلمة DoubleWord=Dword الكلمة
المضاعفة
64 بت= 8بايت= 4كلمات= 2كلمة
مضاعفة
18,446,744,073,709,551,616
أحتمال Quafword=Qword ا لكلمة
الرابعیة
بالطبع ھذه الوحدا ت الأساسیة والصغیره أما مضاعفاتھا فھي :
الوحده الرمز مايعادلھا
1024 بايت KB الكیلوبايت
1024 كیلوبايت MB المیجابايت
1024 میجابايت GB الجیجابايت
1024 جیجابايت TB التیرابايت
1024 تیرابايت PB البیتابايت
1024 بیتابايت EB الأكسابايت
1024 أكسابايت ZB الزيتابايت
1024 يوتابايت YB الیوتابايت
تخزين الأرقام بدو ن أشارة يأخذ النطاق الآتي لكل وحده من الوحدا ت الأساسیة
unsigned: بأستخدام طريقة بدو ن الأشارة
المجال
من الى
أسم
الوحدة
البايت 256 0
الكلمة 65536 0
الكلمة 4,294,967,296 0
المضاعفة
الكلمة 18,446,744,073,709,551,616 0
الرباعیة
:ASCII الأسكي كود
يتم في الحاسوب وبقیة توحید أستخدام الرموز أستخدام شفرة الآسكي كود (حالیاً
وھي تسمح بتعدد اللغات في مستند واحد حیث unicode عيمل على تبني شفرةلا
ھي أختصار ل : ASCII يتم تمثیل كل حرف بأستخدام كلمة واحده= 2بايت) كلمة
Interchange Information Code For Standard American National
ويتم أستخدام ھذا الكود الموحد لتسھیل تناقل البیانات ويمثل كل رمز فیه بعدد ثنائي
بطول 1بايت= 8بت= 256 أحتمال .
طريقة كتابة الأرقام في الأسمبلر :
لدلالة على أنه باينري مثال : (b) لكتابة عدد ثنائي يوضع في آخر الرمز
أما العدد العشري فلايحتاج الى أضافة وأما العدد لأساس 8 Binary=11010010B
Octal=1276O في نھايته O)) أو الرمز Octal=1276Q في نھايته (Q) فیكتب مع المرمز
مع hexadecimal=0AB9CDH في نھايته H أما العدد السداسي عشر فیكتب بوضع
مراعاة وضع 0 اذا كان العدد يبدأ بحرف كما المثال .
يجب أ ن تعرف الفرق بین تخزين الرقم كرقم أو تخزينه كنص فتخزين الرقم 201 مثلاً
كرقم سسیأخذ بايت واحد وھو جاھز للقیام بعملیات رياضیة ومنطقیه علیه أما تخزينه
' كنص فسیأخذ ثلاثة بايت في البايت الأو ل سیخزن الرقم الخاص بالأسكي كود للرمز ' 2
وكما قلت يخزن كرقم يدل على الرمز أما البايت الثاني فسیخزن رقم الآسكي كود
للرمز ' 0' أما البايت الثالث فیأخذ القیمه الخاصة بالرمز ' 1' في الآسكي كود أ ي أ ن الرقم
خزن بطريقة " 102 " ولیس 102 وھذه الطريقة لیست جاھز للجمع أو الطرح ولكنھا
ممتاز للطباعه على الشاشه ويمكن تحويل النص الى رقم والعكس .
الأعداد ذ ي الأشارھ :
يتم تخزين الأعداد ذ ي الأشارھ كالتالي :
العدد موجب أذا كانت البت الأخیره صفر وقیمة الرقم ھي باقي البتات أ ي لو أخذنا رقماً
من بايت واحد فأن البت رقم 7 (الثامنه - الترقیم يبدأ من الصفر ) يجب أ ن تكون صفراً
لیكون العدد موجب أما البتات من 0 الى 6 ( السبعه الأولى ) فتشكل قیمة الرقم
أما أذا كان العدد سالب فأن البت الأخیرة تساو ي واحد أما قیمة الرقم فتساو ي سالب
المكمل الثنائي للعدد أ ي لو أخذنا رقم مخزن في واحد بايت مثال = 11110110 بما أ ن
/ البت السابعه= 1 فأن الرقم سالب / نأخذ الآن المكمل الثنائي للعدد وھو 00001010
القیمة تساو ي - 00001010 أ ي سالب عشرة .
وبتخزين الرقم بالأشارة يختلف النطاق الذي تأخذ كل وحده :
المجال
من الى
أسم
الوحدة
127+ البايت - 128
32,767+ الكلمة - 32,768
2,147,483,647+ الكلمة - 2,147,483,648
المضاعفة
9,223,372,036,854,775,807+ الكلمة - 9,223,372,036,854,775,808
الرباعیة
تعلم الأسمبلي باللغه العربیه - الدرس 1.3
الرئیسة | أسئلة الوحدة الأولى | منتدى الأسمبلي | العودة الى الوحدة الأولى
2001 | عدد الزوار /7/ | آخر تحديث : 19
تعلیمات وأوامر الأسمبلي :
تتكون التعلیمه الواحدة في الأسمبلي من تمثیل بسیط بالأحرف الأنجلیزيه يقابله
بالأرقام تعلیمة لغة آله ، تتكون كل تعلیمة من ممايلي : أولاُ جزء الأمر وھو أمر يدل
للجمع) ، الجزء الثاني ھو الوسائط علماً بأن ) ADD على نوع العملیة المطلوبة مثل
بعض التعلیمات لايأخذ وسائط والجزء الآخر وسیطة واحدة فقط والبعض الآخر أكثر من
ذلك ، تحدد ھذه الوسائط الشئ الذي سیعمل علیه الأمر ،
يدل على جمع الرقم 5 ADD AX, لوحده عقیم لايدل على شئ لكن الأمر 5 ADD فالأمر
ويوضح المثال التالي بعض الأوامر AX مع القیمة الموجودة في المسجل
clc ; وسائط فقط أمر بدو ن
dec ax ; وسیطة واحدة فقط
mov cx,dx ; وسیطتین
لاحظ أ ن أ ي نص في شفرة الأسمبلي يأتي بعد الفاصلة المنقوطة ھو مجرد تعلیق
الوسائط ممكن تكون عدة أنواع :
a'' / 30 / 1. معلومة فورية (مباشرة) (أ ي ثابته) مثال : 10
AX / : 2. مسجل (سوف يتم شرح المسجلات بالتفصیل في الدروس القادمه ) مثال
EAX / BL
bx] / [100]] / [ 3. موقع ذاكره (يتم تحديده عن طريق العنوا ن) مثال : [ 200
4.متغیر (وھو نفسالسابق لكن بدل أ ن تحفظ أو تحسب العنوا ن يدوياً يقوم الأسمبلر
count / VAR1 / INTVAL / STR ب أ ست بدلا المتغیر برقم يدل علىع نو انه ) مثال : 1
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
لغة الأسمبلي
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
شبكة الاصدقاء ترحب بكم :: منتدى الكومبيوتر و التكنلوجيا :: أخر أخبار التكناوجيا-
انتقل الى: