# Common Problems on Homework

Size: px
Start display at page:

## Transcription

1 MIPS Functions

2 Common Problems on Homework 1.3: Convert ten to binary in 8bit, 16bit, and 32bit Even though it overflows with 8bits, there is plenty of room with 16 and 32 bit.

3 Common Problems on Homework 2.3: Convert two to decimal It says that it is in two s complement but that is just a standard to distinguish positive numbers from negative. You don t have to do two s complement conversion. That s used to see what the decimal equivalent is or to convert an unsigned number to a signed one

4 Common Problems on Homework 3.3: Convert -0.3 ten to a floating-point binary number In single precision, you would get 0xBE and not 0xBE99999A because when you run out of hardware, instead of rounding, you truncate the number.

5 In Class Exercise 2 Write the MIPS assembly code to do insertion sort (shown by the following C code segment). You may use any MIPS instructions that you ve learned inside or outside of class. int main() { int i, j, v; int A[10] = {6, 3, 7, 2, 0, 9, 1, 8, 4, 5}; for (i = 1; i < 10; ++i) { v = A[i]; for (j = i - 1; j >= 0 && A[j] >= v; --j) { A[j+1] = A[j]; } A[j+ 1] = v; } return 0; }

6 In Class Exercise 2 Solution.data A:.word 6, 3, 7, 2, 0, 9, 1, 8, 4, 5.text.globl main main: la \$s0, A # Array A li \$s1, 10 # Length of A li \$s2, 1 # i li \$s3, 0 # j li \$s4, 0 # v li \$t0, 0 # Address of A[i] li \$t1, 0 # Address of A[j] li \$t2, 0 # Value of A[i] li \$t3, 0 # Value of A[j] Set up program Initialize variables Exit: li \$v0, 10 # Load exit operation syscall # Exit

7 In Class Exercise 2 Solution.data A:.word 6, 3, 7, 2, 0, 9, 1, 8, 4, 5.text.globl main main: la \$s0, A # Array A li \$s1, 10 # Length of A li \$s2, 1 # i li \$s3, 0 # j li \$s4, 0 # v li \$t0, 0 # Address of A[i] li \$t1, 0 # Address of A[j] li \$t2, 0 # Value of A[i] li \$t3, 0 # Value of A[j] Loop1: Set up outer loop addi \$s2, \$s2, 1 # ++i blt \$s2, \$s1, Loop1 # Loop while i < 10 Exit: li \$v0, 10 # Load exit operation syscall # Exit

8 In Class Exercise 2 Solution.data A:.word 6, 3, 7, 2, 0, 9, 1, 8, 4, 5.text.globl main main: la \$s0, A # Array A li \$s1, 10 # Length of A li \$s2, 1 # i li \$s3, 0 # j li \$s4, 0 # v li \$t0, 0 # Address of A[i] li \$t1, 0 # Address of A[j] li \$t2, 0 # Value of A[i] li \$t3, 0 # Value of A[j] Loop1: addi \$s3, \$s2, -1 # j = i - 1 Set up Inner Loop Loop2: addi \$s3, \$s3, -1 # --j bge \$s3, \$0, Loop2 # Loop if j >= 0 addi \$s2, \$s2, 1 # ++i blt \$s2, \$s1, Loop1 # Loop while i < 10 Exit: li \$v0, 10 # Load exit operation syscall # Exit

9 In Class Exercise 2 Solution.data A:.word 6, 3, 7, 2, 0, 9, 1, 8, 4, 5.text.globl main main: la \$s0, A # Array A li \$s1, 10 # Length of A li \$s2, 1 # i li \$s3, 0 # j li \$s4, 0 # v li \$t0, 0 # Address of A[i] li \$t1, 0 # Address of A[j] li \$t2, 0 # Value of A[i] li \$t3, 0 # Value of A[j] Loop1: sll \$t0, \$s2, 2 # Convert i to memory access add \$t0, \$t0, \$s0 # Add offset i to base A lw \$s4, 0(\$t0) # v = A[i] addi \$s3, \$s2, -1 # j = i - 1 Load A[i] into v Loop2: addi \$s3, \$s3, -1 # --j bge \$s3, \$0, Loop2 # Loop if j >= 0 addi \$s2, \$s2, 1 # ++i blt \$s2, \$s1, Loop1 # Loop while i < 10 Exit: li \$v0, 10 # Load exit operation syscall # Exit

13 Procedures and Functions We programmers use procedures and functions to structure and organize programs To make them easier to understand To allow code to be reused 6/4/2013 week04-3.ppt 13

14 Function A function carries out a well-defined functionality, that can be called and produce the result to be used by the caller.

15 Functions A function is a consecutive piece of code stored in the memory. To invoke (or call) a function, we must go to that piece of code. Then it does certain things, and get the result we need. What do we know about going to a piece of code?

16 Functions So, we can call a function by j Function And, the function code will do something we need. Problem: how to come back to the caller?

17 Two Interesting Instructions and One Interesting Register jal: jump and link jal L1: does TWO things 1. Goto L1. (the next instruction to be executed is at address L1) 2. Save the address of the next instruction in \$ra. \$ra is the interesting register that stores the return address jr \$ra Does ONE thing. Goto the instruction whose address is the value stored in \$ra. This is ALL we need to support function calls in MIPS!

18 Functions The procedure add \$t0, \$t1, a \$t0 a a a sub \$t2, \$t1, \$t0 jal Function sll \$t0, \$t0, 2... Function: a a a add \$t0, \$t1, \$t0 sub \$t2, \$t1, \$t0 jr \$ra

19 A simple function

20 .data A:.word 12, 34, 67, 1, 45, 90, 11, 33, 67, 19 main: loop: done:.text.globl main la \$s7, A li \$s0, 0 #i li \$s1, 0 #res li \$s6, 9 sll \$t0, \$s0, 2 add \$t0, \$t0, \$s7 lw \$a0, 0(\$t0) lw \$a1, 4(\$t0) jal addfun add \$s1, \$s1, \$v0 addi \$s0, \$s0, 2 bgt \$s0, \$s6, done j loop li \$v0,10 syscall addfun: add \$v0, \$a0, \$a1 jr \$ra

21 Key things to keep in mind 1. A function is just a segment of code stored sequentially in the memory. To call a function is just to go there. 2. The name of a function in MIPS is JUST A LABEL or JUST AN ADDRESS. 3. We cannot simply use j addfun to go to addfun, because we do not know where come back. Therefore, we need to store the address of the instruction that should be executed after going to the function somewhere, and in MIPS, it is \$ra. 4. At the end of a function, we write jr \$ra, to go back.

22 MIPS Calling Conventions MIPS assembly follows the following convention in using registers \$a0 - \$a3: four argument registers in which to pass parameters \$v0 - \$v1: two value registers in which to return values \$ra: one return address register to return to the point of origin 6/4/2013 week04-3.ppt 22

23 MIPS Conventions Quite often, our function needs to use some registers to do dome calculation. So we will modify the values of them. We can use \$t0-\$t9 freely inside a function, because the caller does not expect the values inside \$t0-\$t9 to stay the same after the function call. But, the caller do expect the values in \$s0 to \$s7 to be the same after a function call.

24 MIPS Conventions So, just try to avoid using \$s0 and \$s7 inside a function whenever possible. But what if do need it? Such occasions will arise

25 So, if we do have to use \$s0 - \$s7, we MUST save it somewhere before entering the main part of the function, and restore it before you return (before we execute jr \$ra ). In MIPS, we save them in the stack. Stack is a part in the memory allocated for functions. It starts at 0x7ffffffc and grows down as we add more stuffs to it. Stack is first in last out. Stack

26 \$sp The top address of the stack, the address of the first word that is storing value, is (should be) always be stored in \$sp. So, adding a word into the stack (pushing a word onto the stack) is a two-step thing, because you have to maintain the correctness of \$sp: addi \$sp, \$sp, -4 sw \$s0, 0(\$sp)

27 Suppose we want to

28 Stack and \$sp Suppose we want to store a/2 in \$s0. How do we get a/2? At the beginning, we do addi \$sp, \$sp, -4 sw \$s0, 0(\$sp) At the end, we do lw \$s0, 0(\$sp) addi \$sp, \$sp, 4

29 .data A:.word 12, 34, 67, 1, 45, 90, 11, 33, 67, 19 main: loop: done:.text.globl main la \$s7, A li \$s0, 0 #i li \$s1, 0 #res li \$s6, 9 sll \$t0, \$s0, 2 add \$t0, \$t0, \$s7 lw \$a0, 0(\$t0) lw \$a1, 4(\$t0) jal weirdfun add \$s1, \$s1, \$v0 addi \$s0, \$s0, 2 bgt \$s0, \$s6, done j loop li \$v0,10 syscall weirdfun: addi \$sp, \$sp, -4 sw \$s0, 0(\$sp) srl \$s0, \$a0, 1 add \$t0, \$a0, \$a0 add \$t0, \$t0, \$a1 sub \$t0, \$t0, \$s0 ori \$v0, \$t0, 0 lw \$s0, 0(\$sp) addi \$sp, \$sp, 4 jr \$ra

30 Function calls inside a function What if we need to call another function inside a function? Will this work? twofun: addi \$sp, \$sp, -4 sw \$s0, 0(\$sp) jal addfun srl \$s0, \$a0, 1 sub \$v0, \$v0, \$s0 lw \$s0, 0(\$sp) addi \$sp, \$sp, 4 jr \$ra

31 Function calls inside a function The problem is that the value of \$ra is changed whenever you use jal somelabel. How to deal with it? twofun: addi \$sp, \$sp, -4 sw \$s0, 0(\$sp) jal addfun srl \$s0, \$a0, 1 sub \$v0, \$v0, \$s0 lw \$s0, 0(\$sp) addi \$sp, \$sp, 4 jr \$ra

32 The working versions twofun1: addi \$sp, \$sp, -4 sw \$s0, 0(\$sp) addi \$sp, \$sp, -4 sw \$ra, 0(\$sp) jal addfun srl \$s0, \$a0, 1 sub \$v0, \$v0, \$s0, lw \$ra, 0(\$sp) addi \$sp, \$sp, 4 lw \$s0, 0(\$sp) addi \$sp, \$sp, 4 jr \$ra twofun2: addi \$sp, \$sp, -8 sw \$s0, 4(\$sp) sw \$ra, 0(\$sp) jal addfun srl \$s0, \$a0, 1 sub \$v0, \$v0, \$s0, lw \$ra, 0(\$sp) lw \$s0, 4(\$sp) addi \$sp, \$sp, 8 jr \$ra

33 Saving registers In case of nested function calls, before calling a function, to be safe, the caller should save \$t0-\$t9 save \$a0-\$a3 If such registers are needed later. and save \$ra Because \$ra is going to be needed later and it will be changed The callee should save \$s0-s7

### MIPS function continued

MIPS function continued Review Functions Series of related instructions one after another in memory Called through the jal instruction Pointed to by a label like any other Returns by calling Stack Top

### CDA3100 Midterm Exam, Summer 2013

CDA3100 Midterm Exam, Summer 2013 Name : Instructions: 1. This is a close-book and close-notes exam. 2. You have 75 minutes to answer the questions. 3. Please write down your name on the top of this page

### MIPS Coding Continued

MIPS Coding Continued Exercise 1 Suppose we have three arrays, A, B, C, all of size 10. Now we want to set C[i] = min(a[i], B[i]) for all 0

### Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: MIPS Programming

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: MIPS Programming We spent some time looking at the MIPS Instruction Set Architecture. We will now consider

### ECE331: Hardware Organization and Design

ECE331: Hardware Organization and Design Lecture 8: Procedures (cont d), Binary Numbers and Adders Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Review: Procedure Calling Steps

### COMP 303 Computer Architecture Lecture 3. Comp 303 Computer Architecture

COMP 303 Computer Architecture Lecture 3 Comp 303 Computer Architecture 1 Supporting procedures in computer hardware The execution of a procedure Place parameters in a place where the procedure can access

### Subroutines. int main() { int i, j; i = 5; j = celtokel(i); i = j; return 0;}

Subroutines Also called procedures or functions Example C code: int main() { int i, j; i = 5; j = celtokel(i); i = j; return 0;} // subroutine converts Celsius to kelvin int celtokel(int i) { return (i

### Lecture 7: Examples, MARS, Arithmetic

Lecture 7: Examples, MARS, Arithmetic Today s topics: More examples MARS intro Numerical representations 1 Dealing with Characters Instructions are also provided to deal with byte-sized and half-word quantities:

### Chapter 2. Computer Abstractions and Technology. Lesson 4: MIPS (cont )

Chapter 2 Computer Abstractions and Technology Lesson 4: MIPS (cont ) Logical Operations Instructions for bitwise manipulation Operation C Java MIPS Shift left >>> srl Bitwise

### Lecture 6: Assembly Programs

Lecture 6: Assembly Programs Today s topics: Procedures Examples Large constants The compilation process A full example 1 Procedures Local variables, AR, \$fp, \$sp Scratchpad and saves/restores, \$fp Arguments

### Format. 10 multiple choice 8 points each. 1 short answer 20 points. Same basic principals as the midterm

Final Review Format 10 multiple choice 8 points each Make sure to show your work Can write a description to the side as to why you think your answer is correct for possible partial credit 1 short answer

### Instruction Set Architectures (4)

Computer Architecture Week 06 Instruction Set Architectures (4) College of Information Science and Engineering Ritsumeikan University subroutines functions, procedures remember the next instruction s address

### Lecture 5. Announcements: Today: Finish up functions in MIPS

Lecture 5 Announcements: Today: Finish up functions in MIPS 1 Control flow in C Invoking a function changes the control flow of a program twice. 1. Calling the function 2. Returning from the function In

### Functions in MIPS. Functions in MIPS 1

Functions in MIPS We ll talk about the 3 steps in handling function calls: 1. The program s flow of control must be changed. 2. Arguments and return values are passed back and forth. 3. Local variables

### Control Instructions. Computer Organization Architectures for Embedded Computing. Thursday, 26 September Summary

Control Instructions Computer Organization Architectures for Embedded Computing Thursday, 26 September 2013 Many slides adapted from: Computer Organization and Design, Patterson & Hennessy 4th Edition,

### Control Instructions

Control Instructions Tuesday 22 September 15 Many slides adapted from: and Design, Patterson & Hennessy 5th Edition, 2014, MK and from Prof. Mary Jane Irwin, PSU Summary Previous Class Instruction Set

### Lecture 5: Procedure Calls

Lecture 5: Procedure Calls Today s topics: Memory layout, numbers, control instructions Procedure calls 1 Memory Organization The space allocated on stack by a procedure is termed the activation record

### Lecture 7: MIPS Functions Part 2. Nested Function Calls. Lecture 7: Character and String Operations. SPIM Syscalls. Recursive Functions

Part Part Part What if we need to call a function inside of a function? Will this work? int twofun(int a, int b) { int res; res = addfun(a, b) a / ; return res; } twofun: addi \$sp, \$sp, -4 sw \$s0, 0(\$sp)

Branch Addressing Branch instructions specify Opcode, two registers, target address Most branch targets are near branch Forward or backward op rs rt constant or address 6 bits 5 bits 5 bits 16 bits PC-relative

### Function Calling Conventions 1 CS 64: Computer Organization and Design Logic Lecture #9

Function Calling Conventions 1 CS 64: Computer Organization and Design Logic Lecture #9 Ziad Matni Dept. of Computer Science, UCSB Lecture Outline More on MIPS Calling Convention Functions calling functions

### Today. Putting it all together

Today! One complete example To put together the snippets of assembly code we have seen! Functions in MIPS Slides adapted from Josep Torrellas, Craig Zilles, and Howard Huang Putting it all together! Count

### Lectures 5. Announcements: Today: Oops in Strings/pointers (example from last time) Functions in MIPS

Lectures 5 Announcements: Today: Oops in Strings/pointers (example from last time) Functions in MIPS 1 OOPS - What does this C code do? int foo(char *s) { int L = 0; while (*s++) { ++L; } return L; } 2

### CSCI 402: Computer Architectures. Instructions: Language of the Computer (3) Fengguang Song Department of Computer & Information Science IUPUI.

CSCI 402: Computer Architectures Instructions: Language of the Computer (3) Fengguang Song Department of Computer & Information Science IUPUI Recall Big endian, little endian Memory alignment Unsigned

### CS 61c: Great Ideas in Computer Architecture

MIPS Functions July 1, 2014 Review I RISC Design Principles Smaller is faster: 32 registers, fewer instructions Keep it simple: rigid syntax, fixed instruction length MIPS Registers: \$s0-\$s7,\$t0-\$t9, \$0

### MIPS Functions and the Runtime Stack

MIPS Functions and the Runtime Stack COE 301 Computer Organization Prof. Muhamed Mudawar College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals Presentation Outline

### Memory Usage 0x7fffffff. stack. dynamic data. static data 0x Code Reserved 0x x A software convention

Subroutines Why we use subroutines more modular program (small routines, outside data passed in) more readable, easier to debug code reuse i.e. smaller code space Memory Usage A software convention stack

### MIPS Assembly (Functions)

ECPE 170 Jeff Shafer University of the Pacific MIPS Assembly (Functions) 2 Lab Schedule This Week Activities Lab work time MIPS functions MIPS Random Number Generator Lab 11 Assignments Due Due by Apr

### ECE232: Hardware Organization and Design

ECE232: Hardware Organization and Design Lecture 6: Procedures Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Overview Procedures have different names in different languages Java:

### CSE Lecture In Class Example Handout

CSE 30321 Lecture 07-09 In Class Example Handout Part A: A Simple, MIPS-based Procedure: Swap Procedure Example: Let s write the MIPS code for the following statement (and function call): if (A[i] > A

### Lecture 2. Instructions: Language of the Computer (Chapter 2 of the textbook)

Lecture 2 Instructions: Language of the Computer (Chapter 2 of the textbook) Instructions: tell computers what to do Chapter 2 Instructions: Language of the Computer 2 Introduction Chapter 2.1 Chapter

### Lecture 5: Procedure Calls

Lecture 5: Procedure Calls Today s topics: Procedure calls and register saving conventions 1 Example Convert to assembly: while (save[i] == k) i += 1; i and k are in \$s3 and \$s5 and base of array save[]

### CENG3420 Computer Organization and Design Lab 1-2: System calls and recursions

CENG3420 Computer Organization and Design Lab 1-2: System calls and recursions Wen Zong Department of Computer Science and Engineering The Chinese University of Hong Kong wzong@cse.cuhk.edu.hk Overview

### Compiling Techniques

Lecture 10: An Introduction to MIPS assembly 18 October 2016 Table of contents 1 Overview 2 3 Assembly program template.data Data segment: constant and variable definitions go here (including statically

### Chapter 2A Instructions: Language of the Computer

Chapter 2A Instructions: Language of the Computer Copyright 2009 Elsevier, Inc. All rights reserved. Instruction Set The repertoire of instructions of a computer Different computers have different instruction

### Do-While Example. In C++ In assembly language. do { z--; while (a == b); z = b; loop: addi \$s2, \$s2, -1 beq \$s0, \$s1, loop or \$s2, \$s1, \$zero

Do-While Example In C++ do { z--; while (a == b); z = b; In assembly language loop: addi \$s2, \$s2, -1 beq \$s0, \$s1, loop or \$s2, \$s1, \$zero 25 Comparisons Set on less than (slt) compares its source registers

### Thomas Polzer Institut für Technische Informatik

Thomas Polzer tpolzer@ecs.tuwien.ac.at Institut für Technische Informatik Branch to a labeled instruction if a condition is true Otherwise, continue sequentially beq rs, rt, L1 if (rs == rt) branch to

### MIPS Assembly (FuncDons)

ECPE 170 Jeff Shafer University of the Pacific MIPS Assembly (FuncDons) Instructor: Dr. Vivek Pallipuram 2 Lab Schedule This Week AcDviDes Lab work Dme MIPS funcdons MIPS Random Number Generator Lab 10

### CS64 Week 5 Lecture 1. Kyle Dewey

CS64 Week 5 Lecture 1 Kyle Dewey Overview More branches in MIPS Memory in MIPS MIPS Calling Convention More Branches in MIPS else_if.asm nested_if.asm nested_else_if.asm Memory in MIPS Accessing Memory

### Contents. Slide Set 2. Outline of Slide Set 2. More about Pseudoinstructions. Avoid using pseudoinstructions in ENCM 369 labs

Slide Set 2 for ENCM 369 Winter 2014 Lecture Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Winter Term, 2014 ENCM 369 W14 Section

### SPIM Instruction Set

SPIM Instruction Set This document gives an overview of the more common instructions used in the SPIM simulator. Overview The SPIM simulator implements the full MIPS instruction set, as well as a large

### SPIM Procedure Calls

SPIM Procedure Calls 22C:60 Jonathan Hall March 29, 2008 1 Motivation We would like to create procedures that are easy to use and easy to read. To this end we will discuss standard conventions as it relates

### MIPS ISA and MIPS Assembly. CS301 Prof. Szajda

MIPS ISA and MIPS Assembly CS301 Prof. Szajda Administrative HW #2 due Wednesday (9/11) at 5pm Lab #2 due Friday (9/13) 1:30pm Read Appendix B5, B6, B.9 and Chapter 2.5-2.9 (if you have not already done

### COMP MIPS instructions 2 Feb. 8, f = g + h i;

Register names (save, temporary, zero) From what I have said up to now, you will have the impression that you are free to use any of the 32 registers (\$0,..., \$31) in any instruction. This is not so, however.

### Computer Systems and Networks

LECTURE 16: MIPS (11 AND 12) Computer Systems and Networks Dr. Pallipuram (vpallipuramkrishnamani@pacific.edu) University of the Pacific Deadline Lab 11 is open: DUE 1 st NOV 5 AM Lab 12 is open: DUE 8

### CS 316: Procedure Calls/Pipelining

CS 316: Procedure Calls/Pipelining Kavita Bala Fall 2007 Computer Science Cornell University Announcements PA 3 IS out today Lectures on it this Fri and next Tue/Thu Due on the Friday after Fall break

### CENG3420 Lecture 03 Review

CENG3420 Lecture 03 Review Bei Yu byu@cse.cuhk.edu.hk 2017 Spring 1 / 38 CISC vs. RISC Complex Instruction Set Computer (CISC) Lots of instructions of variable size, very memory optimal, typically less

### Lec 10: Assembler. Announcements

Lec 10: Assembler Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University Announcements HW 2 is out Due Wed after Fall Break Robot-wide paths PA 1 is due next Wed Don t use incrementor 4 times

### comp 180 Lecture 10 Outline of Lecture Procedure calls Saving and restoring registers Summary of MIPS instructions

Outline of Lecture Procedure calls Saving and restoring registers Summary of MIPS instructions Procedure Calls A procedure of a subroutine is like an agent which needs certain information to perform a

### ECE 30 Introduction to Computer Engineering

ECE 30 Introduction to Computer Engineering Study Problems, Set #4 Spring 2015 Note: To properly study and understand the problems below, it is strongly recommended to implement and run your solution (and/or

### COMP2611: Computer Organization MIPS function and recursion

COMP2611 Fall2015 COMP2611: Computer Organization MIPS function and recursion Overview 2 You will learn the following in this lab: how to use MIPS functions in a program; the concept of recursion; how

### CS61C Machine Structures. Lecture 12 - MIPS Procedures II & Logical Ops. 2/13/2006 John Wawrzynek. www-inst.eecs.berkeley.

CS61C Machine Structures Lecture 12 - MIPS Procedures II & Logical Ops 2/13/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L12 MIPS Procedures II / Logical (1)

### ECE260: Fundamentals of Computer Engineering

Accessing and Addressing Memory James Moscola Dept. of Engineering & Computer Science York College of Pennsylvania Based on Computer Organization and Design, 5th Edition by Patterson & Hennessy American

### Problem 3: Theoretical Questions: Complete the midterm exam taken from a previous year attached at the end of the assignment.

CSE 2021: Computer Organization Assignment # 1: MIPS Programming Due Date: October 25, 2010 Please note that a short quiz based on Assignment 1 will be held in class on October 27, 2010 to assess your

### Compiling Code, Procedures and Stacks

Compiling Code, Procedures and Stacks L03-1 RISC-V Recap Computational Instructions executed by ALU Register-Register: op dest, src1, src2 Register-Immediate: op dest, src1, const Control flow instructions

### Overview. Introduction to the MIPS ISA. MIPS ISA Overview. Overview (2)

Introduction to the MIPS ISA Overview Remember that the machine only understands very basic instructions (machine instructions) It is the compiler s job to translate your high-level (e.g. C program) into

### 1/26/2014. Previously. CSE 2021: Computer Organization. The Load/Store Family (1) Memory Organization. The Load/Store Family (2)

CSE 202: Computer Organization Lecture-4 Code Translation-2 Memory, Data transfer instructions, Data segment,, Procedures, Stack Shakil M. Khan (adapted from Prof. Roumani) Previously Registers \$s0 - \$s7,

### We will study the MIPS assembly language as an exemplar of the concept.

MIPS Assembly Language 1 We will study the MIPS assembly language as an exemplar of the concept. MIPS assembly instructions each consist of a single token specifying the command to be carried out, and

### ICS DEPARTMENT ICS 233 COMPUTER ARCHITECTURE & ASSEMBLY LANGUAGE. Midterm Exam. First Semester (141) Time: 1:00-3:30 PM. Student Name : _KEY

Page 1 of 14 Nov. 22, 2014 ICS DEPARTMENT ICS 233 COMPUTER ARCHITECTURE & ASSEMBLY LANGUAGE Midterm Exam First Semester (141) Time: 1:00-3:30 PM Student Name : _KEY Student ID. : Question Max Points Score

### MIPS Programming. A basic rule is: try to be mechanical (that is, don't be "tricky") when you translate high-level code into assembler code.

MIPS Programming This is your crash course in assembler programming; you will teach yourself how to program in assembler for the MIPS processor. You will learn how to use the instruction set summary to

### Function Calls. Tom Kelliher, CS 220. Oct. 24, SPIM programs due Wednesday. Refer to homework handout for what to turn in, and how.

Function Calls Tom Kelliher, CS 220 Oct. 24, 2011 1 Administrivia Announcements Assignment SPIM programs due Wednesday. Refer to homework handout for what to turn in, and how. From Last Time Outline 1.

### Rui Wang, Assistant professor Dept. of Information and Communication Tongji University.

Instructions: ti Language of the Computer Rui Wang, Assistant professor Dept. of Information and Communication Tongji University it Email: ruiwang@tongji.edu.cn Computer Hierarchy Levels Language understood

Storage in rograms Almost all operand storage used by programs is provided by memory. Even though registers are more efficiently accessed by instructions, there are too few registers to hold the stored

### Implementing Procedure Calls

1 / 39 Implementing Procedure Calls February 18 22, 2013 2 / 39 Outline Intro to procedure calls Caller vs. callee Procedure call basics Calling conventions The stack Interacting with the stack Structure

### ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 Sources: Computer

### Calling Conventions. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. See P&H 2.8 and 2.12

Calling Conventions Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University See P&H 2.8 and 2.12 Goals for Today Calling Convention for Procedure Calls Enable code to be reused by allowing

### QtSPIM and MARS : MIPS Simulators

QtSPIM and MARS : MIPS Simulators Learning MIPS & SPIM MIPS assembly is a low-level programming language The best way to learn any programming language is to write code We will get you started by going

### Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13. Fall Lecture #7. Warehouse Scale Computer

CS 61C: Great Ideas in Computer Architecture Everything is a Number Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13 9/19/13 Fall 2013 - - Lecture #7 1 New- School Machine Structures

### MIPS R-format Instructions. Representing Instructions. Hexadecimal. R-format Example. MIPS I-format Example. MIPS I-format Instructions

Representing Instructions Instructions are encoded in binary Called machine code MIPS instructions Encoded as 32-bit instruction words Small number of formats encoding operation code (opcode), register

### Shift and Rotate Instructions

Shift and Rotate Instructions Shift and rotate instructions facilitate manipulations of data (that is, modifying part of a 32-bit data word). Such operations might include: Re-arrangement of bytes in a

Fall 2018 EE 3613: Computer Organization Chapter 2: Instruction Set Architecture Introduction 4/4 Avinash Karanth Department of Electrical Engineering & Computer Science Ohio University, Athens, Ohio 45701

### NAME: 1. (2) What is a transistor?

NAME: CS3411 Test #1, 6 September 2007. You have 1h15min (one css period). Answer all questions. The number of points (out of 100) each problem is worth is shown in (parentheses). Be as concise as you

### Assembly labs start this week. Don t forget to submit your code at the end of your lab section. Download MARS4_5.jar to your lab PC or laptop.

CSC258 Week 10 Logistics Assembly labs start this week. Don t forget to submit your code at the end of your lab section. Download MARS4_5.jar to your lab PC or laptop. Quiz review A word-addressable RAM

### MIPS Procedure Calls. Lecture 6 CS301

MIPS Procedure Calls Lecture 6 CS301 Function Call Steps Place parameters in accessible location Transfer control to function Acquire storage for procedure variables Perform calculations in function Place

### COMPUTER ORGANIZATION AND DESIGN

COMPUTER ORGANIZATION AND DESIGN 5 th The Hardware/Software Interface Edition Chapter 2 Instructions: Language of the Computer 2.1 Introduction Instruction Set The repertoire of instructions of a computer

### Function Calls. 1 Administrivia. Tom Kelliher, CS 240. Feb. 13, Announcements. Collect homework. Assignment. Read

Function Calls Tom Kelliher, CS 240 Feb. 13, 2002 1 Administrivia Announcements Collect homework. Assignment Read 3.7 9. From Last Time SPIM lab. Outline 1. Function calls: stack execution model, memory

### Review of Activation Frames. FP of caller Y X Return value A B C

Review of Activation Frames In general, activation frames are organized like this: HI LO Bookkeeping/preserved registers I/O parameters Locals and temps RA of caller FP of caller Y X Return value A B C

### Machine Language Instructions Introduction. Instructions Words of a language understood by machine. Instruction set Vocabulary of the machine

Machine Language Instructions Introduction Instructions Words of a language understood by machine Instruction set Vocabulary of the machine Current goal: to relate a high level language to instruction

### Prof. Kavita Bala and Prof. Hakim Weatherspoon CS 3410, Spring 2014 Computer Science Cornell University. See P&H 2.8 and 2.12, and A.

Prof. Kavita Bala and Prof. Hakim Weatherspoon CS 3410, Spring 2014 Computer Science Cornell University See P&H 2.8 and 2.12, and A.5 6 compute jump/branch targets memory PC +4 new pc Instruction Fetch

### Solutions for Chapter 2 Exercises

Solutions for Chapter 2 Exercises 1 Solutions for Chapter 2 Exercises 2.2 By lookup using the table in Figure 2.5 on page 62, 7fff fffa hex = 0111 1111 1111 1111 1111 1111 1111 1010 two = 2,147,483,642

### ECE 331 Hardware Organization and Design. Professor Jay Taneja UMass ECE - Discussion 3 2/8/2018

ECE 331 Hardware Organization and Design Professor Jay Taneja UMass ECE - jtaneja@umass.edu Discussion 3 2/8/2018 Study Jams Leader: Chris Bartoli Tuesday 5:30-6:45pm Elab 325 Wednesday 8:30-9:45pm Elab

### ECE 473 Computer Architecture and Organization Lab 4: MIPS Assembly Programming Due: Wednesday, Oct. 19, 2011 (30 points)

ECE 473 Computer Architecture and Organization Lab 4: MIPS Assembly Programming Due: Wednesday, Oct. 19, 2011 (30 points) Objectives: Get familiar with MIPS instructions Assemble, execute and debug MIPS

### MIPS%Assembly% E155%

MIPS%Assembly% E155% Outline MIPS Architecture ISA Instruction types Machine codes Procedure call Stack 2 The MIPS Register Set Name Register Number Usage \$0 0 the constant value 0 \$at 1 assembler temporary

### Computer Organization and Structure. Bing-Yu Chen National Taiwan University

Computer Organization and Structure Bing-Yu Chen National Taiwan University Instructions: Language of the Computer Operations and Operands of the Computer Hardware Signed and Unsigned Numbers Representing

### EN164: Design of Computing Systems Lecture 11: Processor / ISA 4

EN164: Design of Computing Systems Lecture 11: Processor / ISA 4 Professor Sherief Reda http://scale.engin.brown.edu Electrical Sciences and Computer Engineering School of Engineering Brown University

### Instruction Set Architecture part 1 (Introduction) Mehran Rezaei

Instruction Set Architecture part 1 (Introduction) Mehran Rezaei Overview Last Lecture s Review Execution Cycle Levels of Computer Languages Stored Program Computer/Instruction Execution Cycle SPIM, a

### MODULE 4 INSTRUCTIONS: LANGUAGE OF THE MACHINE

MODULE 4 INSTRUCTIONS: LANGUAGE OF THE MACHINE 1 ARCHITECTURE MODEL The basic instruction set of a computer is comprised of sequences of REGISTER TRANSFERS. Example: Add A, B, C Register B # A

### Computer Organization and Structure. Bing-Yu Chen National Taiwan University

Computer Organization and Structure Bing-Yu Chen National Taiwan University Instructions: Language of the Computer Operations and Operands of the Computer Hardware Signed and Unsigned Numbers Representing

### Previously. CSE 2021: Computer Organization. Memory Organization. The Load/Store Family (1) 5/26/2011. Used to transfer data to/from DRAM.

CSE 2021: Computer Organization Lecture-4 Code Translation-2 Memory, Data transfer instructions, Data segment,, Procedures, Stack Shakil M. Khan (adapted from Profs. Roumani & Asif) Previously Registers

### Lecture 6 Decision + Shift + I/O

Lecture 6 Decision + Shift + I/O Instructions so far MIPS C Program add, sub, addi, multi, div lw \$t0,12(\$s0) sw \$t0, 12(\$s0) beq \$s0, \$s1, L1 bne \$s0, \$s1, L1 j L1 (unconditional branch) slt reg1,reg2,reg3

### Functions and Procedures

Functions and Procedures Function or Procedure A separate piece of code Possibly separately compiled Located at some address in the memory used for code, away from main and other functions (main is itself

### 2/16/2018. Procedures, the basic idea. MIPS Procedure convention. Example: compute multiplication. Re-write it as a MIPS procedure

Procedures, the basic idea CSCI206 - Computer Organization & Programming Introduction to Procedures zybook: 81 (for next class) MIPS Procedure convention 1 Prepare parameters in \$a0 through \$a3 2 Return

### COMPSCI 313 S Computer Organization. 7 MIPS Instruction Set

COMPSCI 313 S2 2018 Computer Organization 7 MIPS Instruction Set Agenda & Reading MIPS instruction set MIPS I-format instructions MIPS R-format instructions 2 7.1 MIPS Instruction Set MIPS Instruction

### Introduction to MIPS Processor

Introduction to MIPS Processor The processor we will be considering in this tutorial is the MIPS processor. The MIPS processor, designed in 1984 by researchers at Stanford University, is a RISC (Reduced

### Computer Architecture Instruction Set Architecture part 2. Mehran Rezaei

Computer Architecture Instruction Set Architecture part 2 Mehran Rezaei Review Execution Cycle Levels of Computer Languages Stored Program Computer/Instruction Execution Cycle SPIM, a MIPS Interpreter

### CA Compiler Construction

CA4003 - Compiler Construction David Sinclair When procedure A calls procedure B, we name procedure A the caller and procedure B the callee. A Runtime Environment, also called an Activation Record, is

### MIPS Assembly Language Programming

MIPS Assembly Language Programming ICS 233 Computer Architecture and Assembly Language Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals [Adapted

### Architecture II. Computer Systems Laboratory Sungkyunkwan University

MIPS Instruction ti Set Architecture II Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Making Decisions (1) Conditional operations Branch to a

### ELEC / Computer Architecture and Design Fall 2013 Instruction Set Architecture (Chapter 2)

ELEC 5200-001/6200-001 Computer Architecture and Design Fall 2013 Instruction Set Architecture (Chapter 2) Victor P. Nelson, Professor & Asst. Chair Vishwani D. Agrawal, James J. Danaher Professor Department