Professional Documents
Culture Documents
CH2 PDF
CH2 PDF
,
ر
التشابت عن ال Instruction formatو ال memory نحك بهاد _ رح
ي
_ ورح نتعامل مع ال MIPS Processor
_ ال MIPSك unit of speedر
بتعت عن عدد ال instruction per unit of timeبس
تعتت مقياس دقيق النو ما بعرف شو نوعية هاي ال instruction
ه ال ر
ي
ش بينعمل ع ال hardwareارسع من انو ينعمل ع ال softwareبس اذا عملت _ اي ي
ئ
ابط النو بدل ما يتعامل مع basic complete sit يصت
كتت اشياء ع ال hardwareرح ر ر
ئ
ابط بصت ر
بصت معقد اكت و ر بالتال ر
ي رح يتعامل الف instruction
_ال MIPSي
مبن بشكل بسيط ع امل انو يطلع ال softwareارسع من ال hardware
Register Operands:
• Arithmetic instructions use register operands
operands معيني الخزن فيهم ال
ر Register مع انو ح استخدم
هون ح يفرق ي
file register بنحكيلهمRegister مجموعة ال
• MIPS has a 32 × 32-bit register file
31 ل0 ترقيمهم من32-bit كل واحد يف32 register عنديMIPS بال
word بنسميهم32-bit كل
- Numbered 0 to 31
• Assembler names
رمز خاص فيه منهمregister عنا لكلMIPS بال
t بالحرف10 register -
s بالحرف8 register -
قبل$ بانو بنحط اشارةregister ** مهم تنتبه لطريقة كتابة اسم ال
كالتال:
ي مع الحل
ال قبل رح يفرق ي
يعن لو بدنا نرجع للمثال ي
ي
رح نفرض انو ال gمخزنه ع ال s1وال hع ال s2وال iع ال s3وال jع ال s4وال fع s0
ونحط اسم ال registerبدل الحرف
add $t0, $s1, $s2
add $t1, $s3, $s4
sub $s0, $t0, $t1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Memory Operands :
ش مخزن بال memoryالزم اعرف ال addressتبعه
هالء لما بدي استخدم ي
تعو نتعرف ع memoryال : MIPSي
ه عباره عن
-byte address
-word a line
يعن كل addressعباره عن byte=8-bit
ي
وكل سطر 4byteبمثل wordالنو ال word = 32-bit
طريقتي معروفات
ر نحك عن طريقة تخزين ال dataبالميموري وعنا
ي هالء ح
1) Big Endian: Most-significant byte at least address of a word
ال هو ال Most-significantرح يتخزن ب
بحيل لما بدي اخزن wordف اول byteي
ي
ال رقمه اقل
االدرس ي
مثال لو عندي هاد الرقم بالهيكسا AB-CD-F0-02
كالتال :
ي رفي بنخزنهم ب byte
يعن كل ح ر
كل حرف 4bitي
0 1 2 3
AB CD F0 02
ال هو ال least-significantرح
بحيل لما بدي اخزن wordف اخر byteي
ي هون
ال رقمه اقل
يتخزن ب االدرس ي
~~~~~~~~~~~~~~~~~~
تنتي :
نحك عن العمليات ع الميموري و همه ر
ي هالء ح
1) load (lw) :
ر
للريجست *بنقل ال dataمن الميموري
Form : lw destination , address in memory
EX:
;]C code: g = h + A[8
g in $s1, h in $s2, base address of A in $s3
? Find compiled MIPS code
معطين كل رمز ع اي Registerموجود :
ي ين كود بال cوبدو احوله لكود MIPSو
معط ي
ر
ريجست و ارري وحكينا انو االري بتكون ع الميموري والعمليات هالء عندي عملية جمع ربي
تنتي بس همه " " load and sort ال بقدر اعملها ع الميموري ر
ي
ر
ريجست القدر اجمعها ال بدي ياها من االري ع
ف رح اعمل loadللقيمه ي
كيف بعمل ال load؟
Form : lw destination , address in memory
ر
رجست انا بختاره الخزن يف مثال $t0 ال destinationهو اي
ال address in memoryهو ] address A[8وكيف ح نطلعو حكينا هو عباره عن
Address A[n] = 4*n + base address
Address A[8] = 4*8 + $s3
بنكتبه هيك 32($s3) = 4*n ( base address ) :
بصت الكود عنا :
ف ر
lw $t0, 32($s3) # load word
وبعدين بجمعهم :
Sixth Lecture
op rs rt rd shamt funct
6 5 5 5 5 6
bits bits bits bits bits bits
arithmetic and وتحديدا الMIPS بالInstruction هو عباره عن طريقه لكتابة ال
معي
اش رال فوق بتدل ع ي
بحيث انو كل خانه من ي, shift Instruction
• Instruction fields:
- op: operation code (opcode)
format بحددل كيف اعرف نوع ال
ي
"000000" تحديدا بكونوR-format و بال
- rs: first source register number
ر
" source register" ريجست رقم اول
- rt: second source register number
ر
" source register" ريجست تان
رقم ي
ش برقم
اعت عن كل ي
ان ر
ثالت خطوه ي
مع
وحكينا انو كل registerالو رقم الزم اكون حافظه اما الفنكشن ف بكون ي
op rs rt constant or address
6 5 5 16
bits bits bits bits
Immediate arithmetic and load/store لكتابة الformat بستخدم هاد ال
instructions
Instruction fields:
- op: operation code (opcode)
- rs , rt first and second register number
ورحload/store اوImmediate arithmetic و عل شو بدلو بالزبط بتختلف ازا كان
اوضحها كمان شوي
- constant or address
Shift Operations:
حكينا انو بستخدمله ال R-Formatوانو خانة ال shamtبتمثل عدد مرات ال shift
◼ Shift left logical
** مالحظه :
وال بساوي 14
يصت 01110ي
ال بساوي 7وعملتله sllرح ر
مع الرقم 00111ي
لو ي
يعن بنالحظ انو عمليت ال Shift left logicalكانها عملية ضب ب 2طيب لو عملت sll
ي
مرتي كانو ضب ب 4طيب ثلث مرات ضب ب 8وهيك بستنتج القاعده : ر
** ** sll by i bits multiplies by 2i
Seventh Lecture
Conditional Operations:
بصت ::
فالكود كامل ر
Compiled MIPS code:
Loop: sll $t1, $s3, 2
add $t1, $t1, $s6
)lw $t0, 0($t1
bne $t0, $s5, Exit
addi $s3, $s3, 1
j Loop
… Exit:
~~~~~~~~~~~~~~~~~~~~~~~~~~
More Conditional Operations:
Slt: set one if less than
كالتال :
ي الصيغه الو
slt rd, rs, rt
;if (rs < rt) rd = 1; else rd = 0
كالتال :
ي وممكن يكون Immediateبانو يقارن ربي محتوى registerوعدد ثابت
slti rt, rs, constant
;if (rs < constant) rt = 1; else rt = 0
االنستكشن ر
اكت بس ال ر رح يكون عددsoftware يف حال كان ع ال-
اكت
ابسط ورسعته رhardware
Eighth Lecture
ر
باالنستكشن هو ال offsetوهو بحدد كم wordبدي ابعد عن ال pc ال
ال addressي
مع ؟
ال ي
طيب كيف بنحصل عل ال target addressمن ال offsetي
ال عنا بكون word_ addressوانو memoryال MIPS احنا اعرفنا انو ال addressي
ه عملية
عباره عن byte_ addressف الزم اضبه ب " 4عملية الضب ب 4بالبايتي ي
لتي " "00للرقم "
اضافة مت ر
ال بدي اروحله هو عباره عن وين
يعن ال addressي
مكان ي
ي طيب انا عرف كم الزم ابعد عن
انا هالء " " pcوكم بدي ابعد
Target address = PC + offset × 4
- Note :
ال بدي انفذه 1) pc : ر
هو ادرس النكست انستكشن ي
2) PC already incremented by 4 by this time
op address
6 26
bit bits
ال قبل انو عباره عن wordوبدي اضبه ب 4بس هون
ال addressهون نفس فكرت ي
كالتال
ي بقرق عندي انو 26-bitف رح اتعامل معه
اليمي "للضب ب "4ر )1بضيف 2bitع
)2بضيف 4bitع الشمال من ال PC31…28
EX:
ال معوالجزئي ي
ر العرف ال offsetالزم اتخلص من
كبت 31 28
ش رال الرينج الهم ربي 2و 2وهو ي بتعت عن اخر 4bitيمع 8000وال pcر ال يالرقم ي
بالتال فيه اشيلهم وما بأثره ع القيمه
ي مع ف حيكونه اصفارال يع الرقم ي
اما بالنسبه للصفرين ف همه اجو من الضب ب 4بتخلص منهم بالقسمه ع 4
8000 /4=2000
بالتال ال offsetيساوي 2000
ي
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
مع 32-bit
** اما بال jumpف ي
EX:
beq $s0,$s1, L1
L2: …..
.
.
……L1 :
كالتال
ي كتت عن ال Beqح اعدل ع الكود
لو كانت ال L2بعيده ر