first programming assignment for mips r3000 processor department of computer science southern...

21
First Programming Assignment For MIPS R3000 Processor Department of Computer Science Southern Illinois University Edwardsville Fall, 2015 Dr. Hiroshi Fujinoki E-mail: [email protected] S 312 Computer Organization and Architecture FirstProgram/001

Upload: cameron-wood

Post on 12-Jan-2016

234 views

Category:

Documents


6 download

TRANSCRIPT

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

First Programming AssignmentFor MIPS R3000 Processor

Department of Computer ScienceSouthern Illinois University Edwardsville

Fall, 2015

Dr. Hiroshi FujinokiE-mail: [email protected]

CS 312 Computer Organization and Architecture

FirstProgram/001

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

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)

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

R3000/002

Assembly Programming using MIPS R3000 CPU

The process of assembly programming

We start from here!

SPIM Simulatordoes these for us

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

“Test.asm”

FirstProgram/001

(2) Program Definition

(1) Data Section

(3) Program Body

Start developing your first assembly program using SPIM

Prepare your source codeStep #1

Three major components in your SPIM program

Your source code filew/ “.asm” file extension

CS 312 Computer Organization and Architecture

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

# ############################################################### ## 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

Assemblyinstructions

CS 312 Computer Organization and Architecture

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

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

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

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

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

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

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

Your program

main:

jr $31 # Stop program

Instruction field

Comment field

Stop your program

Beginning of a program

Dissection: Program Body Section

Labelfield

FirstProgram/006

CS 312 Computer Organization and Architecture

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

FirstProgram/007

Start using SPIMOpen your program source code

CS 312 Computer Organization and ArchitectureThis is when we start

PC-SPIM for the first time

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

FirstProgram/008

Start using SPIM (continued) Specify your source code file

CS 312 Computer Organization and Architecture

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

FirstProgram/009

Start using SPIM (continued)

Once assembly program isopened, the four windows willbe automatically re-loaded

CS 312 Computer Organization and Architecture

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

FirstProgram/010

Close-Look (1): “Register” Window

“Register” window

Contents of registers

CS 312 Computer Organization and Architecture

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

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

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

FirstProgram/012

Close-Look (3): “Data Segment” Window

Address of major programcomponents are shown

CS 312 Computer Organization and Architecture

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

FirstProgram/013

Close-Look (4): “Message” Window

Most probably, the least important window ...

Messages from SPIMAssembler are shown here

CS 312 Computer Organization and Architecture

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

FirstProgram/014

To run your program, press this button

CS 312 Computer Organization and Architecture

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

FirstProgram/015

Text Segment Window

Specify starting address of your assembly program (optional)

CS 312 Computer Organization and Architecture

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

FirstProgram/016

Examining registers for the result of program execution

CS 312 Computer Organization and Architecture

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

FirstProgram/017

The three components in your SPIM program (continued)

# ############################################################### ## 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 $S1li $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 ###############################################

# ############################################################### ## 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 $S1li $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 ###############################################

CS 312 Computer Organization and Architecture

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

FirstProgram/018

The three components in your SPIM program (continued)

The results of program execution

CS 312 Computer Organization and Architecture