📘 قراءة كتاب أسمبيلي للمبتدئين Assembly أونلاين
2
أسمبيلي للمبتدئين Assembly
تأليف: مشتاق طالب رشيد العامري
أسمبيلي للمبتدئين Assembly
تأليف: مشتاق طالب رشيد العامري
مقدمة ف لغة الأسمبل هذه اللغة مزودة لوصف كل من العمل اٌت الأساس ةٌ الت مٌكن إنجازها بواسطة
المعالج المصغر، تُكتب تعليمٌات هذه اللغة باستعمال الرموز الهجائ ةٌ أو ما دٌُعى
بدل ا من الأصفار و الواحدات ف ش فٌرة الآلة للمعالج. إن ALPHANUMERIC
الص غٌة العامة لكتابة الأمر )التعل مٌة( ف لغة الأسمبله :ً
لفتة : تعل مٌة ; تعل قٌ
عادة فإن التعليقٌات أو الملاحظات الت تصف الأوامر توضع على الطرف الأ مٌن.
و هذا النوع من التوث قٌ ب نٌ التعل مٌة و التعل قٌ جٌعل من السهل على المبرمج كتابة
و قراءة و تصح حٌ الش فٌرة. و نقصد بكلمة الش فٌرة أن البرنامج مكتوب بلغة الآلة
أما البرنامج المكتوب بلغة object code للمعالج و الذي عٌُرف بش فٌرة الهدف
هذا و إن كل تعل مٌة ف برنامج . source code الأسمبل ف دٌعى بش فٌرة المصدر
المصدر تطابق أمر اا واحد اا ف لغة الأسمبل ح ثٌ أن الأمر جٌب أن حٌدِّد أي عمل ةٌ
س تٌم تنف ذٌها و ما ه متحولت المعط اٌت الت ستُعالج. لهذا السبب تُقسم التعل مٌة
و المتحولت opcode = operation code إلى قسم نٌ منفصل نٌ : رمز التعل مٌة
رمز العمل ةٌ هو جزء من التعل مٌة و الذي حٌدد العمل ةٌ الت ستُنفذ . operands
فمثلا ا نذكر بعض العمل اٌت النموذج ةٌ كالجمع و الطرح و النقل.
من أجل التعل مٌات فمثلا ا mnemonic ف لغة الأسمبل تستخدم الكلمات المختزلة
بالنسبة للمعالج 0806 فالكلمات المختزلة ف لغة الأسمبل لعمل اٌت الجمع و الطرح
أما المتحولت فتحدد المعط اٌت . MOV و SUB و ADD و النقل ه على الترت بٌ
الت ستُعالج من قِبل المعالج بواسطة رمز العمل ةٌ للتعل مٌة فمثلا ا ف التعل مٌة الت ه AX و BX تض فٌ محتو اٌت مسجل القاعدة إلى محتو اٌت المراكم فإن
فف هذا المثال تُضاف ADD AX,BX المتحولت و تُكتب التعل مٌة على الشكل التال
متحول BX و لذلك عٌُتَبر AX و وٌضع ناتج الجمع ف AX إلى BX محتو اٌت
متحول الهدف. AX المصدر و
طاقم تعل مٌات المعالج 0806
زٌُود المعالج 0806 بمجموعة تعل مٌات مإلفة من 111 تعل مٌة أساس ةٌ و كذلك إن
المجال الواسع للمتحولت و أنظمة العنونة المسموحة للاستعمال مع هذه التعليمٌات
- تعليمٌات السلسلة
نقصد بكلمة السلسلة أن با تٌات أو كلمات معط اٌت تكمن ف حجرات متعاقبة
للذاكرة. إن تعل مٌات السلسلة تسمح للمبرمج بتنف ذٌ عمل اٌت مثل نقل المعط اٌت من
بلوك ذاكرة إلى بلوك آخر ف الذاكرة، مسح أو كنس SCAN سلسلة من عناصر
المعط اٌت المخزنة ف الذاكرة و البحث عن ق مٌة مع نٌة، مقارنة عناصر سلسلت نٌ
لتحد دٌ ف مٌا إذا كانا متطابقت نٌ أو مختلفت نٌ.
و تعل مٌات السلسلة الأساس ةٌ ه :ً
الأعلام المتؤثرة العمل ةٌ الص غٌة المعنى الكلمة المختزلة
ل وٌجد MOVS operand نقل عنصر من سلسلة MOVS
الأعلام المتؤثرة العمل ةٌ الص غٌة المعنى الكلمة المختزلة
ل وٌجد نفس العمل ةٌ السابقة و مقدار التزا دٌ هو 1 MOVSB نقل عنصر
با تٌ من سلسلة MOVSB
ل وٌجد نفس العمل ةٌ السابقة و مقدار التزا دٌ هو 8 MOVSW نقل عنصر
كلمة من السلسلة MOVSW
أعلام الحالة CMPS operand مقارنة عنصر سلسلة CMPS
الأعلام المتؤثرة العمل ةٌ الص غٌة المعنى الكلمة المختزلة
أعلام الحالة SCAS operand مسح عنصر سلسلة SCAS(B or W )
الأعلام المتؤثرة العمل ةٌ الص غٌة المعنى الكلمة المختزلة
ل وٌجد
LODS operand تحملٌ عنصر سلسلة LODS (B or W )
الأعلام المتؤثرة العمل ةٌ الصيغٌة المعنى الكلمة المختزلة
لو وٌجد
STOS operand تخز نٌ عنصر سلسلة STOS(B or W )
12 - تعل مٌات تكرار السلسلة
ف معظم التطب قٌات جٌب تكرار العمل اٌت الأساس ةٌ للسلسلة من أجل معالجة جم عٌ
عناصرها. و تٌم إنجاز هذا العمل بواسطة إدخال تعل مٌات التكرار قبل التعل مٌة
الأساس ةٌ للسلسلة الت سوف تُكرر. هذا و إن أنواع تعل مٌات التكرار مب نٌة ف الجدول التال :ً
الستخدام المعنى الكلمة المختزلة
MOVS, STOS التكرار طالما لم نصل إلى نها ةٌ السلسلة أي
CX ≠ 0 REP
CMPS, SCAS التكرار طالما لم نصل إلى نها ةٌ السلسلة و السلسلتان
متساو تٌان أي ZF=1, CX≠0 REPE/REPZ
CMPS, SCAS التكرار طالما لم نصل إلى نها ةٌ السلسلة و السلسلتان غ رٌ
متساو تٌان أي ZF=0, CX≠0 REPNE/REPNZ
مثال:
بفرض أن :
SI = 0100h DS = 0200h
DI = 0110h ES = 0400h
فإن نت جٌة تنف ذٌ التعل مٌت نٌ التال تٌ نٌ :
MOV CX,20h
REP MOVSB
ه أن التعل مٌة الأولى تقوم بتحم لٌ المسجل CX بالق مٌة 88 h = 32d أما التعل مٌة
الثان ةٌ فتنقل 38 با تٌ من حجرات ذاكرة المصدر المحددة بواسطة DS و SI إلى
بلوك حجرات ذاكرة الهدف المحددة بواسطة ES و DI .
13 - تعل مٌتا مسح و توض عٌ علم التجاه
ذكرنا أنه تٌم ز اٌدة أو إنقاص ق مٌ SI و DI بشكل أوتومات كٌ أثناء تنف ذٌ تعل مٌات
السلسلة و أنه تٌم تقر رٌ الز اٌدة أو الإنقاص اعتماد اا على ق مٌة علم التجاه DF ح ثٌ
عندما DF = 0 تحدث الز اٌدة الأوتومات كٌ ةٌ و العكس بالعكس. و تٌم التحكم بعلم
التجاه بواسطة التعل مٌت نٌ التال تٌ نٌ:
الأعلام المتؤثرة العمل ةٌ الص غٌة المعنى الكلمة المختزلة
DF → 8 DF CLD تنظ فٌ DF CLD
DF → 1 DF STD توض عٌ DE STD
14 - تعل مٌتا IN و OUT
العمل ةٌ الص غٌة المعنى الكلمة المختزلة
( port) → Acc IN Acc,port تعل مٌة دخل مباشرة IN
(( DX)) → Acc IN Acc,DX تعل مٌة دخل غ رٌ مباشرة IN
Acc → (port) OUT port,Acc تعل مٌة خرج مباشرة OUT
Acc → ((DX)) OUT DX,Acc تعل مٌة خرج غ رٌ مباشرة OUT
ح ثٌ ف التعل مٌة المباشرة كٌون طول ال port با تٌ اا واحد اا و ف التعل مٌة غ رٌ
المباشرة كٌون DX محتو اا على عنوان نافذة.
مثال:
بفرض أن نافذت دخل بحجم با تٌ ف العناو نٌ AAh, A9h على الترت بٌ سَتُقرأ و
من ثم س تٌم إخراج محتو اٌتها إلى نافذة خرج بحجم كلمة ف العنوان B000h
المطلوب كتابة التعل مٌات اللازمة لإنجاز هذا العمل.
الحل:
IN AL,[0AAh ]
MOV AH,AL
IN AL,[0A9h ]
MOV DX,0B000h
OUT DX,AX
أسمبيلي للمبتدئين
أعداد المبرمج: مشتاق طالب العامري
لغة الأس مٌبل للمبتدئ نٌ
[email protected]
1/1/2009
سنة النشر : 2009م / 1430هـ .
حجم الكتاب عند التحميل : 1.7 ميجا بايت .
نوع الكتاب : PDF.
عداد القراءة:
اذا اعجبك الكتاب فضلاً اضغط على أعجبني و يمكنك تحميله من هنا:
شكرًا لمساهمتكم
شكراً لمساهمتكم معنا في الإرتقاء بمستوى المكتبة ، يمكنكم االتبليغ عن اخطاء او سوء اختيار للكتب وتصنيفها ومحتواها ، أو كتاب يُمنع نشره ، او محمي بحقوق طبع ونشر ، فضلاً قم بالتبليغ عن الكتاب المُخالف:
قبل تحميل الكتاب ..
يجب ان يتوفر لديكم برنامج تشغيل وقراءة ملفات pdf
يمكن تحميلة من هنا 'http://get.adobe.com/reader/'