Professional Documents
Culture Documents
1684929242_4
1684929242_4
1684929242_4
بنيان الحواسيب
محاضرة 4
https://manara.edu.sy/
• إلعطاء أوامر لجهاز الكمبيوتر ،يجب أن نتحدث لغته .تسمى الكلمات املكونة للغة الكمبيوتر بالتعليمات
( ،)Instructionsوتسمى مفرداتها مجموعة التعليمات(.)Instruction Set
• ربما يظن البعض أن لغات أجهزة الكمبيوتر متنوعة مثل تلك الخاصة بالناس ،ولكن في الواقع ،فإن لغات
الكمبيوتر متشابهة ً
تماما .يحدث هذا التشابه ألن جميع أجهزة الكمبيوتر مصنعة من تقنيات تعتمد على مبادئ
أساسية مماثلة وألن هناك بعض العمليات األساسية التي يجب أن توفرها جميع أجهزة الكمبيوتر.
• في هذه املحاضرة ،سندرس مجموعة التعليمات الخاصة بجهاز كمبيوتر حقيقي ،كصيغة مكتوبة من قبل
األشخاص و كصيغة مقروءة من قبل الكمبيوتر.
https://manara.edu.sy/
التعليمات الحسابية
مثال :إن مهمة املترجم ( )Compilerهي إسناد متغيرات البرنامج إلى املسجالت .على سبيل املثال في العالقة:
;)f=(g + h)-(i + j
تم إسناد املتغيرات fو gو hو iو jللمسجالت $s0و $s1و $s2و $s3و $s4على الترتيب .ما هو كود MIPS
الناتج عن املترجم؟
الحل:
add $t0,$s1,$s2 # register $t0 contains g + h
add $t1,$s3,$s4 # register $t1 contains i + j
sub $s0,$t0,$t1 )# f gets $t0 – $t1, which is (g + h)–(i + j
https://manara.edu.sy/
عناوين الذاكرة ومحتويات الذاكرة في تلك
املو اقع
• تحتوي العديد من البرامج على متغيرات أكثر من عدد املسجالت التي تمتلكها أجهزة الكمبيوتر .وبالتالي ،يحاول
ً
استخداما في املسجالت ويضع الباقي في الذاكرة ،باستخدام تعليمات النقل املترجم االحتفاظ باملتغيرات األكثر
لنقل املتغيرات بين املسجالت والذاكرة.
ُ ً
• عادة ما يطلق على تعليمة نقل البيانات التي تنسخ البيانات من الذاكرة إلى املسجل تعليمة . load
ً
متبوعا باملسجل املراد تحميله بالقيمة املسحوبة من الذاكرة، • صيغة تعليمة loadهي كما يلي :اسم العملية
ثم قيمة ثابتة ومسجل مستخدم للوصول إلى الذاكرة.
• يشكل مجموع القيمة الثابتة من التعليمة ومحتويات املسجل الثاني عنوان موقع الذاكرة املطلوب الوصول
إليه.
• االسم الفعلي لهذه التعليمة في قائمة تعليمات MIPSهو ،lwوهي اختصار لـ load word
https://manara.edu.sy/
عناوين الذاكرة ومحتويات الذاكرة في تلك
املو اقع
• تحتوي لغات البرمجة على متغيرات بسيطة تحتوي على عناصر بيانات مفردة ،كما هو الحال في املثال السابق ،
ً
تعقيدا مثل املصفوفات. ولكنها تحتوي ً
أيضا على بنى بيانات أكثر
• يمكن أن تحتوي بنى البيانات املعقدة هذه على العديد من عناصر البيانات أكثر من عدد املسجالت املوجودة في
الكمبيوتر .كيف يمكن للكمبيوتر أن يمثل ويصل إلى مثل هذه البنى الكبيرة؟
• يمكن للمعالج االحتفاظ بكمية صغيرة فقط من البيانات في املسجالت ،لكن ذاكرة الكمبيوتر تحتوي على مليارات
من عناصر البيانات .وبالتالي ،يتم االحتفاظ ببنى البيانات (املصفوفات) في الذاكرة.
• تحدث العمليات الحسابية فقط على املسجالت في تعليمات ،MIPSوبالتالي ،يجب أن تتضمن مجموعة تعليمات
MIPSتعليمات تنقل البيانات بين الذاكرة واملسجالت .تسمى هذه التعليمات تعليمات نقل البيانات Data
. Transfer Instructions
• تستخدم مجموعة تعليمات MIPSفي الواقع عنونة البايت،حيث تمثل كل كلمة أربعة بايتات.
• للوصول إلى كلمة في الذاكرة ،يجب أن تحتوي التعليمات على عنوان الذاكرة لهذه الكلمة.
https://manara.edu.sy/
عناوين الذاكرة ومحتويات الذاكرة في تلك
املو اقع
• باإلضافة إلى ربط املتغيرات باملسجالت ،يحجز املترجم لبنى البيانات مثل املصفوفات مواقع في
الذاكرة.
• يمكن للمجمع بعد ذلك وضع عنوان البداية الصحيح في تعليمات نقل البيانات.
نظرا ألن معظم بنى املعطيات تتعامل مع وحدات البايت الفردية .لذلك ،يتطابق عنوان الكلمة مع • ً
عنوان واحد من 4بايت داخل الكلمة ،وتختلف عناوين الكلمات املتسلسلة بمقدار .4
ً
• على سبيل املثال ،يوضح الشكل جانبا عناوين MIPSالفعلية للكلمات؛ عنوان البايت للكلمة الثالثة
هو .8
• في ،MIPSيجب أن تبدأ الكلمات من العناوين التي تعد من مضاعفات الرقم .4وهذا املتطلب يسمى
ً
تقييد املحاذاة (( ،)alignmentسنرى الحقا أن املحاذاة تؤدي إلى عمليات نقل أسرع للبيانات).
• تنقسم أجهزة الكمبيوتر إلى تلك التي تستخدم عنوان أقص ى اليسار أو بايت "النهاية الكبيرة "big end
كعنوان للكلمة مقابل تلك التي تستخدم بايت أقص ى اليمين أو "النهاية الصغيرة ."little end
• تتبع مجموعة تعليمات MIPSنمط العنونة big end
https://manara.edu.sy/
ترجمة عبارة حسابية عندما تكون
املعامالت في الذاكرة
مثال :افترض أن املتغير hمرتبط بالسجل $s2وأن العنوان األساس ي للمصفوفة Aموجود في$s2ما هو برنامج لغة األسمبلي MIPS
للعبارة التالية؟
;]A[12] = h + A[8
الحل:
lw )$t0,32($s3 ]# Temporary reg $t0 gets A[8
add $t0,$s2,$t0 ]# Temporary reg $t0 gets h + A[8
sw )$t0,48($s3 ]# Stores h + A[8] back into A[12
https://manara.edu.sy/
معامالت ثابتة أو فورية
ُ ن ً
• تقدم مجموعة تعليمات MIPSنسخا من التعليمات الحسابية يكو فيها أحد املعامالت قيمة ثابتة .يطلق على
تعليمة الجمع مع معامل واحد ثابت اسم add immediateأو. addi
• مثال :إلضافة 4للمسجل $s3نكتب فقط التعليمة :
addi $s3,$s3,4 # $s3 = $s3 + 4
• نصادف املعامالت الثابتة بشكل متكرر ،وبتضمين الثوابت داخل التعليمات الحسابية ،تكون العمليات أسرع
بكثير وتستخدم طاقة أقل مما لو تم تحميل الثوابت من الذاكرة.
https://manara.edu.sy/
Signed and Unsigned Numbers
• يتم االحتفاظ باألرقام في أجهزة الكمبيوتر كسلسلة من اإلشارات اإللكترونية العالية واملنخفضة ،وبالتالي يتم تمثيل
األرقام في الحواسيب بالنظام الثنائي.
ً
مختلفا تمثل األرقام من 0إلى ) ( (232 −1أي • يبلغ طول كلمة ً 32 MIPSبتا ،لذا يمكننا تمثيل 232نمط 32بت
من 0إلى :)4،294،967،295
https://manara.edu.sy/
Signed and Unsigned Numbers
• برامج الكمبيوتر تتعامل مع كل من األعداد املوجبة والسالبة ،لذلك نحتاج إلى تمثيل نستطيع من خالله تمييز
األعداد املوجبة عن السالبة.
• في لغة البرمجة ،Cعلى سبيل املثال ،تسمى األعداد بإشارة باألعداد الصحيحة (يتم التصريح عنها كـ intفي
البرنامج) بينما يتم التصريح عن األعداد بدون إشارة كـ unsigned int
https://manara.edu.sy/
األعداد الصحيحة بإشارة
Signed Integers
توجد عدة طرق لتمثيل األرقام بإشارة (األرقام املوجبة و السالبة) :
-املتمم األحادي 1's complement
-املتمم الثنائي 2's complement
• سيكون التركيز على تمثيل األعداد بإشارة من خالل املتمم الثنائي باعتبار أنه هو املستخدم على نطاق واسع في الكومبيوتر
لتمثيل األعداد الصحيحة بإشارة .
https://manara.edu.sy/
تمثيل األعداد بإشارة باستخدام املتمم
الثنائي
• إليجاد مطال القيمة بإشارة ممثلة باستخدام املتمم
https://manara.edu.sy/
مجال األعداد بإشارة
https://manara.edu.sy/
تشكيل املتمم الثنائي
https://manara.edu.sy/
خانة اإلشارة
Sign Bit
https://manara.edu.sy/
توسعة خانة اإلشارة
• يمكن توسعة العدد بإشارة من خالل تكرار خانة اإلشارة في أقص ى اليسار بعدد خانات التوسعة
https://manara.edu.sy/
ترجمة تعليمات لغة التجميع إلى
تعليمات لغة اآللة
• تقوم هذه التعليمة بجمع محتوى املسجل $s1مع محتوى املسجل $s2و تضع نتيجة املجموع في املسجل $t1
• كل جزء من هذه األجزاء املكونة للتعليمة يسمى حقل :
-يخبر الحقالن األول واألخير (الحقل opو الحقل ً )funct
معا جهاز الكمبيوتر أن هذه التعليمة تنجز عملية جمع.
-يعطي الحقل الثاني رقم املسجل الذي يمثل املعامل األول لعملية الجمع ()17 = $s1
-يعطي الحقل الثالث معامل املصدر اآلخر لعملية الجمع ()18 = $s2
-يحتوي الحقل الرابع على رقم املسجل الذي سيحصل على املجموع ()8 = $t0
-الحقل الخامس غير مستخدم في هذه التعليمة ،لذلك يتم تعيينه على قيمة .0
https://manara.edu.sy/
صيغ التعليمات
Instruction Formats
I-type أوI-format •
https://manara.edu.sy/
صيغ التعليمات
Instruction Formats
• I-formatأو I-type
• يتم وضع ( 19من أجل )$s3في حقل ،rsو ( 8من أجل )$t0في الحقل ،rtو 32في حقل العنوان.
• نالحظ أن معنى الحقل rtقد تغير بالنسبة لهذه التعليمات :في تعليملة ،lwيحدد الحقل rtمسجل الوجهة الذي يتلقى نتيجة التعليمة.
• الحقول الثالثة األولى من صيغ التعليمات من النوع Rو النوع Iهي بنفس الحجم ولها نفس األسماء ؛ طول الحقل الرابع في النوع Iيساوي
• يتم تمييز التنسيقات بالقيم املوجودة في الحقل األول :يتم تعيين مجموعة مميزة من القيم لكل صيغة في الحقل األول ( )opحتى يعرف الجهاز ما
إذا كان سيعامل النصف األخير من التعليمات على أنه ثالثة حقول ( )R-typeأو كحقل فردي (.)I-type
https://manara.edu.sy/
صيغ التعليمات
Instruction Formats
https://manara.edu.sy/
مثال
• إذا كان املسجل $t1يحتوي على العنوان األساس للمصفوفة Aو $s2يتوافق مع ،hفإن التعليمة التالية
;]A[300] = h + A[300
https://manara.edu.sy/
مثال
: • الحل
https://manara.edu.sy/
https://manara.edu.sy/