CS477 - Module09
CS477 - Module09
واليُسمح بنشر أو تبادل هذه الملفات (شرعا ً وقانوناً) لغير المشتركين في الدورة
Compiler Design
Module 9 summary
ً
تقريبا ،وبدأ ARM Processor History:الـ ARM Processor Architectureتاريخه قديم زي X86 •
كـ -bit Acorn RISC Machine 32سنة 1987واستخدموه يف أجهزة كمبيوتر زي الـ Acorn
ً Archimedes.بعد كده اتطور وبدأ ى
يبق مشهور جدا يف الـ Embedded Systemsوالموبايالت،
وعرفوه باسمAdvanced RISC Machine (ARM).
Recent Versions:أحدث اإلصدارات هما ) ARMv7-A (32-bitوARMv8-A (64-bit). •
الىل بيعتمد
بيعتب مثال عىل ) Reduced Instruction Set Computer (RISCي ر ARMو RISCالـ ARM •
الىل بيستخدم Complex Instruction Set صغب من الـ Instructionsمقارنة بـ X86ي
ر عىل عدد
)Computer (CISCعشان يتعامل مع أوامر معقدة.
Comparison to X86:الـ ARMبيتمب إن التعليمات الىل فيه أقل وبسيطة ى
أكب ،فده بيقلل الـ •
ي ر
Complexityوكمان استهالك الطاقة.
ً
أحيانا ARMى
صغبة يف التعليمات.
ر بيبق "جز ًئيا " RISCعشان يف استثناءات Partially RISC: •
RegistersفيARM-32:
معي زي:
عندك Register 16عامة) ، (General Purpose Registersوكل واحد له استخدام ر •
محتاجي نخزنها.
ر الىل
r4-r11 Saved Registersللـ Dataي o
الىل شغالة.
r15 (pc) Program Counterعشان يتابع مكان التعليمات ي o
خالصة كده : ARMبسيط وفعال ،بيشتغل بطاقة أقل ،والـ Registersبتاعته منظمة بطريقة •
مجي كتابة الكود.
المب ر
واضحة عشان تسهل عىل ر
الـي Registersوأنواعهايفيمعمارية ARM-32
Registersفي ARM-32
عامي) ، (General Purpose Registersكل واحد منهم ليه وظيفة
ر r0-r15دول Register 16 •
مختلفة زي:
)r11 (fpده Frame Pointer o
https://kbseducation.com/
0550602949 / 0557715267
جميع الحقوق محفوظة لمنصة KBS Education
واليُسمح بنشر أو تبادل هذه الملفات (شرعا ً وقانوناً) لغير المشتركين في الدورة
الحال للتنفيذ
ي r15 (pc) Program Counterبيقرا العنوان o
CPSR (Current Program Status Register):بيمسك حالة العمليات والمقارنات أثناء العملية. o
SPSR (Saved Program Status Register):بيمسك حالة الحفظ الخاصة بالـ Privileged o
Modes.
Data SizesوالـSuffixes
نظام ARMبيدعم suffixesمختلفة لتحديد حجم البيانات زي : •
Addressing Modes:
طريقتي :
ر بيوضح إزاي يتحرك البيانات ربي الـ Registersوالذاكرة .فيه •
التعليمة دي بتستخدم علشان تنقل قيمة ) (Immediate Valueمعروفة أو تنقل قيمة من سجل o
)(Registerآلخر.
اليمي.
ر ً
دائما الوجهة ) (Destinationبتكون عىل الشمال والمصدر ) (Sourceعىل o
https://kbseducation.com/
0550602949 / 0557715267
جميع الحقوق محفوظة لمنصة KBS Education
واليُسمح بنشر أو تبادل هذه الملفات (شرعا ً وقانوناً) لغير المشتركين في الدورة
الىل يف r0لـr1
MOV r1, r0:هنا بننقل القيمة ي ▪
LDRو STRي
)LDR (Load •
التانية بتستخدم العنوان الموجود يف r1لتحميل القيمة الفعلية لـ xيف r2 ▪
https://kbseducation.com/
0550602949 / 0557715267
جميع الحقوق محفوظة لمنصة KBS Education
واليُسمح بنشر أو تبادل هذه الملفات (شرعا ً وقانوناً) لغير المشتركين في الدورة
Basic Arithmetic:
.1التعليماتيالحسابيةياألساسية:
ARMبتدعم تعليمات زي : o
ADD Rd, Rm, Rnتجمع القيمة يف السجالت Rmو Rnوتحط الناتج يف Rd. ▪
SUB Rd, Rm, Rnتطرح القيم ربي السجالت بنفس الطريقة. ▪
متغبة من سجل.
األوبباند الثالث ممكن يكون ثابت -bit 8أو قيمة ر
ر ▪
.2الضب)(Multiplication
القيمتي وبتحتفظ فقط باألرقام األقل(Low bits).
ر العملية MUL Rd, Rm, Rnبتضب o
ً
سجلي(64-bit result).
ر العملية UMULLبتحتفظ بالناتج كامال عن طريق استخدام o
ط(Logical Instructions):
.3المن ي
تعليمات منطقية شبيهة بالرياضية : o
قيمتي.
ر ANDعملية bitwise-andربي ▪
ORRعمليةbitwise-or ▪
EORعمليةXOR ▪
BICعمليةand-not ▪
تنق القيمة)(NOT
MVNي ▪
.4القسمة:
ً مفيش تعليمات قسمة ر
مباشة ألن العملية معقدة جدا ومش بتنفع مع الـpipelining o
https://kbseducation.com/
0550602949 / 0557715267
جميع الحقوق محفوظة لمنصة KBS Education
واليُسمح بنشر أو تبادل هذه الملفات (شرعا ً وقانوناً) لغير المشتركين في الدورة
ر
الشط ده بيتم تحديده يف حقل خاص ) (4-Bit Fieldجوه كل كلمة تعليمات. o
لو ر
الشط مش متحقق ،التعليمة بتتجاهل. o
الغب ضورية.
تحسي كفاءة التعليمات وتقليل عدد القفزات ر
ر الىل بتساعد يف
الممبات ي
ر دي
The Stack
The stack is an auxiliary data structure...
الىل بتحصل أثناء تشغيل
"الـ Stackعبارة عن مكان بنستخدمه علشان نخزن بيانات زي الحاجات ي o
متغبات محلية مالهاش مكان يف الـ"registers.
البنامج ،زي استدعاء الدوال أو ر
ر
By convention, the stack grows downward...
الىل قبلها،
"الـ Stackبيشتغل بطريقة غريبة شوية ،كل ما تحط بيانات جديدة ،بتنضاف تحت البيانات ي o
بيكب لتحت مش لفوق".
يعن كأنه ر
ي
The sp register is known as the stack pointer...
"فيه حاجة اسمها الـ) ، stack pointer (spدي بتقولنا آخر مكان البيانات موجودة فيه جوه الـ"stack. o
https://kbseducation.com/
0550602949 / 0557715267
جميع الحقوق محفوظة لمنصة KBS Education
واليُسمح بنشر أو تبادل هذه الملفات (شرعا ً وقانوناً) لغير المشتركين في الدورة
https://kbseducation.com/
0550602949 / 0557715267