First Programming Assignment For MIPS R3000 Processor Department of Computer Science Southern Illinois University Edwardsville Fall, 2015 Dr. Hiroshi Fujinoki.

Slides:



Advertisements
Similar presentations
King Fahd University of Petroleum and Minerals King Fahd University of Petroleum and Minerals Computer Engineering Department Computer Engineering Department.
Advertisements

Lecture 13: 10/8/2002CS170 Fall CS170 Computer Organization and Architecture I Ayman Abdel-Hamid Department of Computer Science Old Dominion University.
Write a program step by step. Step 1: Problem definition. Given the coordinate of two points in 2-D space, compute and print their straight distance.
Dr. Ken Hoganson, © August 2014 Programming in R COURSE NOTES 2 Hoganson Language Translation.
The 8051 Microcontroller and Embedded Systems
SPIM and MIPS programming
Syscall in MIPS Xinhui Hu Yuan Wang.
MIPS Assembly Language Programming
1 Computer Architecture MIPS Simulator and Assembly language.
Assembly Language Working with the CPU.
1 COMS 361 Computer Organization Title: Instructions Date: 9/28/2004 Lecture Number: 10.
ECE 0142 Recitation #5.
SPIM : A MIPS Simulator Archi & Net Lab 이용석
Lab #1 PCSpim SPIM is a software simulator that loads and executes assembly language programs for the MIPS RISC computers. Download and install PCSpim.
MIPS Instruction Set Advantages
Chapter 2 Software Tools and Assembly Language Syntax.
ICS312 Set 4 Program Structure. Outline for a SMALL Model Program Note the quiz at the next lecture will be to reproduce this slide.MODEL SMALL.586 ;
1 MIPS Assembly Language Programming CDA 3101 Discussion Section 03.
19/02/2009CA&O Lecture 05 by Engr. Umbreen Sabir Computer Architecture & Organization Instructions: PCSpim Tutorial Engr. Umbreen Sabir Computer Engineering.
MIPS R3000 Subroutine Calls and Stack Department of Computer Science Southern Illinois University Edwardsville Fall, 2015 Dr. Hiroshi Fujinoki
Computer Organization CS345 David Monismith Based upon notes by Dr. Bill Siever and notes from the Patterson and Hennessy Text.
Chapter 2 (PART 1) Light-Weight Process (Threads) Department of Computer Science Southern Illinois University Edwardsville Summer, 2004 Dr. Hiroshi Fujinoki.
Datapath Architecture Department of Computer Science Southern Illinois University Edwardsville Fall, 2015 Dr. Hiroshi Fujinoki
Department of Computer Science Southern Illinois University Edwardsville Spring, 2008 Dr. Hiroshi Fujinoki FTP Protocol Programming.
Parallel Computers Organizations and Architecture Department of Computer Science Southern Illinois University Edwardsville Summer, 2015 Dr. Hiroshi Fujinoki.
1 Compilers Modern Compiler Design Supplementary Note 2 SPIM Overview NCYU C. H. Wang.
MIPS coding. slt, slti slt $t3, $t1, $t2 – set $t3 to be 1 if $t1 < $t2 ; else clear $t3 to be 0. – “Set Less Than.” slti $t3, $t1, 100 – set $t3 to be.
Assembly Language A Brief Introduction. Unit Learning Goals CPU architecture. Basic Assembler Commands High level Programming  Assembler  Machine Language.
R3000/001 Assembly Programming using MIPS R3000 CPU R3000 CPU Chip Manufactured by IDT What is MIPS R3000 Processor? A 32-bit RISC CPU developed by MIPS.
Computer Organization CS345 David Monismith Based upon notes by Dr. Bill Siever and notes from the Patternson and Hennessy Text.
Lecture # 1 SPIM & MIPS Programming. SPIM SPIM is a MIPS32 simulator that reads and executes assembly language program written for SPIM. Platform -Unix,
Copyright 2006 by Timothy J. McGuire, Ph.D. 1 MIPS Assembly Language CS 333 Sam Houston State University Dr. Tim McGuire.
MIPS coding. Review Shifting – Shift Left Logical (sll) – Shift Right Logical (srl) – Moves all of the bits to the left/right and fills in gap with 0’s.
Lecture 161 Lets examine a SPIM program in detail. io.asm This program is a simple routine which demonstrates input/output using assembly code. SPIM.
MIPS coding. slt, slti slt $t3, $t1, $t2 – set $t3 to be 1 if $t1 < $t2 ; else clear $t3 to be 0. – “Set Less Than.” slti $t3, $t1, 100 – set $t3 to be.
Copyright 2006 by Timothy J. McGuire, Ph.D. 1 MIPS Assembly Language CS 333 Sam Houston State University Dr. Tim McGuire.
3-Apr-2006cse spim © 2006 DW Johnson and University of Washington1 SPIM simulator CSE 410, Spring 2006 Computer Systems
Lecture 16: 10/29/2002CS170 Fall CS170 Computer Organization and Architecture I Ayman Abdel-Hamid Department of Computer Science Old Dominion University.
CS501 Advanced Computer Architecture Lecture 29 Dr.Noor Muhammad Sheikh.
CS 312 Computer Architecture & Organization
MIPS Assembly Language Programming
MIPS Assembly Language Programming
INTRODUCTION TO AVRASSEMBLY PROGRAMMING
MIPS Instruction Set Advantages
Introduction to Lab #1 José Nelson Amaral.
CS 286 Computer Organization and Architecture
ACOE301: Computer Architecture II Labs
The 8051 Microcontroller and Embedded Systems
CS 286 Computer Organization and Architecture
Assembly Programming using MIPS R3000 CPU
MIPS coding.
Week 5 Computers are like Old Testament gods; lots of rules and no mercy. Joseph Campbell.
MIPS coding.
MARIE: An Introduction to a Simple Computer
COMS 361 Computer Organization
CS-401 Assembly Language Programming
CS 286 Computer Architecture & Organization
CS 286 Computer Organization and Architecture
CS 286 Computer Organization and Architecture
Assembly Programming using MIPS R3000 CPU
MIPS coding.
Chapter 6 Programming the basic computer
Process Synchronization
Department of Computer Science
Threads: Light-Weight Processes
CS 286 Computer Architecture & Organization
Week 5 Computers are like Old Testament gods; lots of rules and no mercy. Joseph Campbell.
MIPS R3000 Subroutine Calls and Stack
Computer Architecture and System Programming Laboratory
COMPUTER ARCHITECTURE
Presentation transcript:

First Programming Assignment For MIPS R3000 Processor Department of Computer Science Southern Illinois University Edwardsville Fall, 2015 Dr. Hiroshi Fujinoki CS 312 Computer Organization and Architecture FirstProgram/001

R3000/001 Assembly Programming using MIPS R3000 CPU R3000 CPU Chip Manufactured by IDT What is MIPS R3000 Processor? A 32-bit RISC CPU developed by MIPS Technologies Inc., Used for high-performance desktops such as workstations Many venders manufacture the chip (NEC, IDT, Toshiba)

R3000/002 Assembly Programming using MIPS R3000 CPU The process of assembly programming We start from here! SPIM Simulator does these for us

“Test.asm” FirstProgram/001 (2) Program Definition (1) Data Section (3) Program Body Start developing your first assembly program using SPIM Prepare your source code Step #1 Three major components in your SPIM program Your source code file w/ “.asm” file extension CS 312 Computer Organization and Architecture

# ############################################################### # # Test2.asm # # # Sample assembly code No. 2 for testing SPIM Simulator. # # This sample program is just for understanding SPIM assembler. # # # ############################################################### #.text.globl main main: li $s1, 1 # Load "1" to register $S1 li $s2, 2 # Load "2" (decimal "2") to register $S2 add $s0, $s1, $s2 # Add register S1 and S2 and save the # result to S0 register jr $31 # Return from main (stop the program) # END OF THE LINES ############################################### FirstProgram/002 Overview: an assembly program source code for SPIM The program body Stop your assembly program Declaring your program body name “.text” label declares the beginning of your assembly program source code “#” indicates an in-line comment Assembly instructions CS 312 Computer Organization and Architecture

FirstProgram/003 The three components in your SPIM program 1. “Data” Section This is the place where you keep any constants in your program - Error message - Prompt message for user input - Any constant, such as “3.14” - Input/Output buffers (contents vary, but buffer size unchanged) The data section is declared by “.data” assembler directive SPIM assumes the data section at the beginning - Because the program codes are supposed to be at the end This section is “optional” CS 312 Computer Organization and Architecture

FirstProgram/004 The three components in your SPIM program (continued) 2. “Program Definition” Section This is the place where you declare your assembly program The program definition section is declared by “.text” assembler directive The beginning label of your assembly program declared by “.globl name_of_your_beginning_label” The program definition section should be the simplest (and shortest) We will see this in examples later CS 312 Computer Organization and Architecture

FirstProgram/005 The three components in your SPIM program (continued) 3. “Program Body” Section This is the place where you write your program (assembly instructions) Your program should be stopped by “jr $31” instruction You must start with the beginning label you declared  If you forget that, the CPU continues to execute What instructions will be executed? - If you declare “.globl main” in program definition - You must start your program with “main:” label We never know before. CS 312 Computer Organization and Architecture

Your program main: jr$31# Stop program Instruction field Comment field Stop your program Beginning of a program Dissection: Program Body Section Label field FirstProgram/006 CS 312 Computer Organization and Architecture

FirstProgram/007 Start using SPIM Open your program source code CS 312 Computer Organization and Architecture This is when we start PC-SPIM for the first time

FirstProgram/008 Start using SPIM (continued) Specify your source code file CS 312 Computer Organization and Architecture

FirstProgram/009 Start using SPIM (continued) Once assembly program is opened, the four windows will be automatically re-loaded CS 312 Computer Organization and Architecture

FirstProgram/010 Close-Look (1): “Register” Window “Register” window Contents of registers CS 312 Computer Organization and Architecture

FirstProgram/011 Close-Look (2): “Text Segment” Window Assembler instructions (from your source code) Generated machine codes (in Hexadecimal expression) Address for your instructions CS 312 Computer Organization and Architecture

FirstProgram/012 Close-Look (3): “Data Segment” Window Address of major program components are shown CS 312 Computer Organization and Architecture

FirstProgram/013 Close-Look (4): “Message” Window Most probably, the least important window... Messages from SPIM Assembler are shown here CS 312 Computer Organization and Architecture

FirstProgram/014 To run your program, press this button CS 312 Computer Organization and Architecture

FirstProgram/015 Text Segment Window Specify starting address of your assembly program (optional) CS 312 Computer Organization and Architecture

FirstProgram/016 Examining registers for the result of program execution CS 312 Computer Organization and Architecture

FirstProgram/017 The three components in your SPIM program (continued) CS 312 Computer Organization and Architecture

FirstProgram/018 The three components in your SPIM program (continued) The results of program execution CS 312 Computer Organization and Architecture