Instructions: Language of the Computer

Slides:



Advertisements
Similar presentations
1 Lecture 3: MIPS Instruction Set Today’s topic:  More MIPS instructions  Procedure call/return Reminder: Assignment 1 is on the class web-page (due.
Advertisements

Goal: Write Programs in Assembly
Review of the MIPS Instruction Set Architecture. RISC Instruction Set Basics All operations on data apply to data in registers and typically change the.
Lecture 5: MIPS Instruction Set
The University of Adelaide, School of Computer Science
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /15/2013 Lecture 11: MIPS-Conditional Instructions Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER.
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 5: Data Transfer Instructions / Control Flow Instructions Partially adapted from Computer.
Lecture 6: MIPS Instruction Set Today’s topic –Control instructions –Procedure call/return 1.
ELEN 468 Advanced Logic Design
Chapter 2 Instructions: Language of the Computer
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /17/2013 Lecture 12: Procedures Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE CENTRAL.
The University of Adelaide, School of Computer Science
ENEE350 Spring07 1 Ankur Srivastava University of Maryland, College Park Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005.”
S. Barua – CPSC 440 CHAPTER 2 INSTRUCTIONS: LANGUAGE OF THE COMPUTER Goals – To get familiar with.
1 Lecture 2: MIPS Instruction Set Today’s topic:  MIPS instructions Reminder: sign up for the mailing list cs3810 Reminder: set up your CADE accounts.
مقدمه دستورات & کتاب Patterson & Henessi
Lecture 5 Sept 14 Goals: Chapter 2 continued MIPS assembly language instruction formats translating c into MIPS - examples.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Hao Ji.
CDA 3101 Fall 2012 Introduction to Computer Organization Instruction Set Architecture MIPS Instruction Format 04 Sept 2013.
COSC 2021: Computer Organization Instructor: Dr. Amir Asif Department of Computer Science York University Handout # 3: MIPS Instruction Set I Topics: 1.
Department of Computer and IT Engineering University of Kurdistan Computer Architecture MIPS ISA and Assembly By: Dr. Alireza Abdollahpouri.
April 23, 2001Systems Architecture I1 Systems Architecture I (CS ) Lecture 9: Assemblers, Linkers, and Loaders * Jeremy R. Johnson Mon. April 23,
Lecture 4: MIPS Instruction Set
CHAPTER 6 Instruction Set Architecture 12/7/
Computer Architecture CSE 3322 Lecture 3 Assignment: 2.4.1, 2.4.4, 2.6.1, , Due 2/3/09 Read 2.8.
Chapter 2 CSF 2009 The MIPS Assembly Language. Stored Program Computers Instructions represented in binary, just like data Instructions and data stored.
Computer Organization CS224 Fall 2012 Lessons 7 and 8.
Computer Architecture CSE 3322 Lecture 4 Assignment: 2.4.1, 2.4.4, 2.6.1, , Due 2/10/09
Chapter 2 — Instructions: Language of the Computer — 1 Memory Operands Main memory used for composite data – Arrays, structures, dynamic data To apply.
Chapter 2 — Instructions: Language of the Computer — 1 Conditional Operations Branch to a labeled instruction if a condition is true – Otherwise, continue.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 7, 8 Instruction Set Architecture.
CDA 3101 Spring 2016 Introduction to Computer Organization
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 11 Conditional Operations.
Chapter 2 Instructions: Language of the Computer.
آشنايي با سيستم اعداد.
Computer Architecture & Operations I
Computer Architecture Instruction Set Architecture
COMPUTER ARCHITECTURE & OPERATIONS I
Computer Architecture Instruction Set Architecture
MIPS Coding Continued.
Lecture 4: MIPS Instruction Set
ELEN 468 Advanced Logic Design
Computer Architecture & Operations I
RISC Concepts, MIPS ISA Logic Design Tutorial 8.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
Assembly Programming using MIPS R3000 CPU
مظفر بگ محمدی دانشگاه ایلام
The University of Adelaide, School of Computer Science
Instructions - Type and Format
Lecture 4: MIPS Instruction Set
Computer Architecture & Operations I
The University of Adelaide, School of Computer Science
ECE232: Hardware Organization and Design
معماري کامپيوتر استاد درس: منصور فاتح.
Chapter 2 Instructions: Language of the Computer
دانشگاه آزاد اسلامی واحد جزیره هرمز
Lecture 5: Procedure Calls
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
فصل ششم مدارهای ترتیبی.
The University of Adelaide, School of Computer Science
مدار منطقي مظفر بگ محمدي
مدار منطقي مظفر بگ محمدي
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
Computer Instructions
CSC3050 – Computer Architecture
Assembly Programming using MIPS R3000 CPU
Reduced Instruction Set Computer (RISC)
Introduction Lab1 A crash course in assembler programming
Instruction Set Architecture
Presentation transcript:

Instructions: Language of the Computer فصل 2 Instructions: Language of the Computer Chapter 1

مجموعه دستورات : ISA مخزن دستورات یک کامپیوتر کامپیوترهای متفاوت دارای مجموعه دستورات متفاوت ولی در جنبه‌های زیادی مشترکند کامپیوترهای اولیه دارای مجموعه دستورات ساده پیاده‌سازی راحت بسیاری از کامپیوترهای مدرن نیز دارای دستورات ساده‌اند Chapter 2 Chapter 1

مجموعه دستورات MIPS به عنوان نمونه. تجاری شده بوسیله MIPS Technologies (www.mips.com) در کامپیوترهای تعبیه شده: دستگاه‌های الکترونیکی، دوربین‌ها، چاپگرها، تجهیزات شبکه و ... Chapter 2 Chapter 1

زبان اسمبلی MIPS الزامات یادگیری زبان اسمبلی: ثبات‌ها و فرمت دودویی دستورات دستورات منطقی و محاسباتی دستورات انتقال داده‌ها دستورات کنترلی (پرش، انشعاب و ... ) دستورات متفرقه Chapter 2

نمایش دستورات دستورات CPU کد می‌شوند در دودویی دستورات ماشین دستورات MIPS دارای طول 32 بیتی با فرمت منظم دارای 32 ثبات 32بیتی شماره ثبات‌ها : $0-$31 استفاده از نام در زبان اسمبلی $zero for $0 $t0-$t9 for $8-$15 and $24-25 $s0-$s7 for $16-$23 Chapter 2

فرمت دودویی دستورات شماره ثبات : rs, rt, rd کد تابع : funct MIPS دارای سه فرمت دستور دودویی است: R-type opcode rs rt rd shamt funct 6-bit 5-bit I-type opcode rs rt address offset/immediate 6-bit 5-bit 16-bit J-type opcode jump address 6-bit 26-bit شماره ثبات : rs, rt, rd کد تابع : funct Chapter 2 Chapter 1

عملیات محاسباتی مثال: C code: MIPS code: f = (g + h) - (i + j); add t0, g, h # temp t0 = g + h add t1, i, j # temp t1 = i + j sub f, t0, t1 # f = t0 - t1 Chapter 2 Chapter 1

کاربرد ثبات به عنوان عملوند C code: f = (g + h) - (i + j); f, …, j in $s0, …, $s4 Compiled MIPS code: add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 Chapter 2 Chapter 1

مثالی از کد دستورات R 18 19 17 I 100 add R reg 32 / sub 34 addi I 8 Instruction Format op rs rt rd shamt funct address add R reg 32 / sub 34 addi I 8 constant lw 35 sw 43 Instruction Example Comments add R 18 19 17 32 add $s1, $s2, $s3 sub 34 sub $s1, $s2, $s3 addi I 8 100 addi $s1, $s2, 100 lw 35 lw $s1, 100($s2) sw 43 sw $s1, 100($s2) Chapter 2

عملوندهای حافظه حافظه اصلی جهت داده مرکب جهت انجام عملیات محاسباتی آرایه، ساختار و ... جهت انجام عملیات محاسباتی بارگذاری به ثبات‌ها : Load ذخیره نتیجه در حافظه : Store حافظه براساس بایت ادرس دهی می‌شود. هر آدرس یک بایت کلمات در حافظه آدرس مضربی از چهار MIPS is Big Endian بایت وزن بیشتر کلمه در آدرس کمتر Little Endian : بایت وزن کمتر کلمه در آدرس کمتر Chapter 2 Chapter 1

مثال 1 C code: Compiled MIPS code: g = h + A[8]; g in $s1 , h in $s2, base address of A in $s3 Compiled MIPS code: Index 8 requires offset 32 4 bytes per word lw $t0, 32($s3) # load word add $s1, $s2, $t0 offset base register Chapter 2 Chapter 1

مثال 2 C code: Compiled MIPS code: A[12] = h + A[8]; h in $s2, base address of A in $s3 Compiled MIPS code: Index 8 requires offset of 32 lw $t0, 32($s3) # load word add $t0, $s2, $t0 sw $t0, 48($s3) # store word Chapter 2 Chapter 1

ثبات و حافظه ثبات سریعتر از حافظه عملیات روی حافظه نیاز به بارگذاری و ذخیره دستورات بیشتر کامپایلر بایستی از ثبات‌ها برای متغیرها استفاده کند فقط از حافظه برای متغیرهایی که کمتر در طول برنامه استفاده شده‌اند. بهینه‌سازی ثبات‌ها مهم است Chapter 2 Chapter 1

عملوند بیواسطه (صریح) داده ثابت مشخص شده در دستور addi $s3, $s3, 4 عدم دستور تفریق بیواسطه به جای آن ثابت منفی addi $s2, $s1, -1 قاعده طراحی : تندکردن حالت متداول ثابت‌های کوچک متداول عملوند بیواسطه باعث اجتناب از یک بارگذاری Chapter 2 Chapter 1

صفر MIPS register 0($zero) ثابت صفر است مناسب برای عملیات متداول قابل تغییر نیست مناسب برای عملیات متداول مثال: انتقال بین ثبات‌ها add $t2, $s1, $zero Chapter 2 Chapter 1

اعداد بدون علامت عدد n بیتی محدوده : 0 to +2n – 1 مثال 0000 0000 0000 0000 0000 0000 0000 10112 = 0 + … + 1×23 + 0×22 +1×21 +1×20 = 0 + … + 8 + 0 + 2 + 1 = 1110 استفاده از 32 بیت 0 to +4,294,967,295 Chapter 2 Chapter 1

اعداد مکمل 2 n بیت محدوده : –2n – 1 to +2n – 1 – 1 مثال: 1111 1111 1111 1111 1111 1111 1111 11002 = –1×231 + 1×230 + … + 1×22 +0×21 +0×20 = –2,147,483,648 + 2,147,483,644 = –410 استفاده از 32 بیت –2,147,483,648 to +2,147,483,647 Chapter 2 Chapter 1

گسترش علامت نمایش یک عدد در تعداد بیت بیشتر در مجموعه دستورات MIPS حفظ مقدار عدد در مجموعه دستورات MIPS addi : گسترش مقدار بیواسطه lb, lh : گسترش مقدار بارگذاری beq, bne : گسترش مقدار جابجایی تکثیر بیت علامت به چپ برای اعداد بدون علامت : گسترش بیت صفر مثال : 8-bit to 16-bit +2: 0000 0010 => 0000 0000 0000 0010 –2: 1111 1110 => 1111 1111 1111 1110 Chapter 2 Chapter 1

نام ثبات‌ها نام شماره استفاده Preserved $zero Constant value 0 N/A $at Constant value 0 N/A $at 1 Assembler temporary No $v0-$v1 2-3 Values for function results and expression evaluation $a0-$a3 4-7 Arguments $t0-$t7 8-15 Temporaries $s0-$s7 16-23 Saved temporaries Yes $t8-$t9 24-25 $k0-$k1 26-27 Saved for OS kernel $gp 28 Global pointer $sp 29 Stack pointer $fp 30 Frame pointer $ra 31 Return address 6 18 6 Chapter 2

مثال 3 f = (g + h) - (i + j); فرض چه تعداد دستور ؟ متغیرها در حافظه آدرس پایه : $gp (global pointer) آدرس افست به ترتیب : 0, 4, 8, 12, 16 چه تعداد دستور ؟ Load: 4 Arithmetic: 3 Store: 1 Chapter 2

ادامه مثال 3 f = (g + h) - (i + j); # f,g,h,i,j: $s0,$s1,$s2,$s3,$s4 lw $s1, 4($gp) # g lw $s2, 8($gp) # h lw $s3, 12($gp) # i lw $s4, 16($gp) # j add $t0, $s1, $s2 # g+h add $t1, $s3, $s4 # i+j sub $s0, $t0, $t1 sw $s0, 0($gp) # f Chapter 2 Chapter 1

عملیات شیفت Shamt : تعداد بیت شیفت شیفت چپ منطقی شیفت منطقی راست op rs rt rd shamt funct 6 bits 5 bits Shamt : تعداد بیت شیفت شیفت چپ منطقی شیفت چپ و پرکردن با صفر sll by i bits : ضربدر 2i شیفت منطقی راست شیفت راست و پرکردن با صفر srl by i bits : تقسیم بر 2i (unsigned only) Ex: sll $s0, $s0, 4 #sll by 4 bits Chapter 2 Chapter 1

عملیات AND مفید جهت پوشش بیت‌های یک کلمه انتخاب بعضی بیت‌ها و بقیه صفر شود and $t0, $t1, $t2 $t2 0000 0000 0000 0000 0000 1101 1100 0000 $t1 0000 0000 0000 0000 0011 1100 0000 0000 $t0 0000 0000 0000 0000 0000 1100 0000 0000 Chapter 2 Chapter 1

عملیات NOT مناسب جهت معکوس کردن بیت‌ها MIPS دارای دستور NOR 3-operand a NOR b == NOT ( a OR b ) nor $t0, $t1, $zero Register 0: always read as zero $t1 0000 0000 0000 0000 0011 1100 0000 0000 $t0 1111 1111 1111 1111 1100 0011 1111 1111 Chapter 2 Chapter 1

عملیات شرطی اگر شرط درست است آنگاه پرش به دستور برچسب‌دار در غیر این صورت ادامه beq rs, rt, L1 if (rs == rt) پرش به L1; bne rs, rt, L1 if (rs != rt) پرش به L1; j L1 پرش غیر شرطی به L1 Chapter 2 Chapter 1

Assembler calculates addresses مثال4 : جملات شرطی C code: if (i==j) f = g+h; else f = g-h; f, g, … in $s0, $s1, … Compiled MIPS code: bne $s3, $s4, Else add $s0, $s1, $s2 j Exit Else: sub $s0, $s1, $s2 Exit: … Assembler calculates addresses Chapter 2 Chapter 1

مثال 5 : جملات تکرار C code: Compiled MIPS code: while (save[i] == k) i ++; i in $s3, k in $s5, address of save in $s6 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: … Chapter 2 Chapter 1

عملیات شرطی دیگر اگر شرط درست است نتیجه یک شود slt rd, rs, rt در غیر اینصورت صفر slt rd, rs, rt if (rs < rt) rd = 1; else rd = 0; slti rt, rs, constant if (rs < constant) rt = 1; else rt = 0; استفاده در ترکیب با beq, bne slt $t0, $s1, $s2 # if ($s1 < $s2) bne $t0, $zero, L # branch to L Chapter 2 Chapter 1

علامت‌دار و بدون علامت مقایسه علامت‌دار : slt, slti مقایسه بدون علامت : sltu, sltui مثال: $s0 = 1111 1111 1111 1111 1111 1111 1111 1111 $s1 = 0000 0000 0000 0000 0000 0000 0000 0001 slt $t0, $s0, $s1 # signed –1 < +1  $t0 = 1 sltu $t0, $s0, $s1 # unsigned +4,294,967,295 > +1  $t0 = 0 Chapter 2 Chapter 1