SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_...
Transcript of SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_...
![Page 1: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/1.jpg)
SPIM & MIPS Programming
Computer Organization and Structure 2012
Department of Information Management National Taiwan University
![Page 2: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/2.jpg)
Outline
Introduction to Assembly Language
SPIM – Getting Started
MIPS – Assembly Language Programming
Homework 2 (Programming Assignment)
![Page 3: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/3.jpg)
Assembly Language
Machine language • Computer’s binary encoding
Assembly language • Symbolic representation of a computer’s binary
encoding
Assembler • Translates assembly language into binary
instructions
![Page 4: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/4.jpg)
What is SPIM?
MIPS32 simulator that reads and executes assembly language program written for SPIM.
SPIM does NOT execute binary program.
![Page 5: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/5.jpg)
References of SPIM
Official website of SPIM: http://spimsimulator.sourceforge.net/
Assemblers, Linkers, and the SPIM Simulator:http://pages.cs.wisc.edu/~larus/HP_AppA.pdf
MIPS Instruction Reference:http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
![Page 6: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/6.jpg)
QtSPIM - Installation
![Page 7: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/7.jpg)
QtSPIM - Installation
Windows
Mac
![Page 8: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/8.jpg)
QtSPIM - Screenshot
Console Window
![Page 9: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/9.jpg)
MIPS Assembly Language
• add, sub, addi, addu, addiu, subu Arithmetic Instructions
• lw, sw, lbu, sb, lui, ori Data Transfer Instructions
• beq, bne, slt, slti, sltu Logic Instructions
• j , jr, jal Branch and Jump-
Related Instructions
Operation Code (Opcode)
![Page 10: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/10.jpg)
MIPS Assembly Language
MIPS Registers and Usage Convention $zero constant 0 $v0, $v1 expression of a function $a0~$a3 argument 1~4 $t0~$t9 temporary registers $s0~$s7 save registers $sp stack pointer $fp frame pointer $ra return address …
![Page 11: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/11.jpg)
MIPS Assembly Language
• 32/16 bit integer .word, .half
• 8 bit integer .byte
• string .ascii, .asciiz
• floating point .double, .float
Some Data Types in MIPS
![Page 12: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/12.jpg)
Assembler Syntax
Page 12
Everything from the sharp sign to the end of the line is ignored.
Identifier are a sequence of alphanumeric characters, underbars (_), and dots (.) that do not begin with a number.
Instruction opcodes are reserved words that are not valid identifiers.
Labels are declared by putting them at the beginning of a line followed by a
colon.
Comment (#)
Identifier (A sequence of alphanumeric characters, _ , and .)
Instruction Opcode
Label
![Page 13: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/13.jpg)
Example – Hello World
C vs MIPS
int main() { printf(“Hello World¥”);
return 0; }
.data Mystr: .asciiz “Hello World¥n”
.text main: li $v0, 4 la $a0, Mystr syscall li $v0, 10 syscall
![Page 14: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/14.jpg)
Example – Hello World
MIPS Architecture
.data Mystr: .asciiz “Hello World¥n” Yourint: .word 75 Hisarray: .word 100, 100, 100 .word 20 , 40 , 60 .word 1 , 2 , 3
.text ……
![Page 15: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/15.jpg)
Example – Hello World
MIPS Architecture
.data .text main: # do anything you want …… # end of the program li $v0, 10 syscall
![Page 16: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/16.jpg)
MIPS System Calls
SPIM provides a small set of operating-system-like services through the system call instruction.
A program loads the system call code into register $v0 and arguments into registers $a0-$a3 (or $f12 for floating-point values).
System calls that return values put their results in register $v0 (or $f0 for floating-point results).
![Page 17: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/17.jpg)
MIPS System Calls
FIGURE A.9.1 System services. $v0
![Page 18: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/18.jpg)
MIPS System Calls - Example
.data str: .asciiz "the answer = "
.text li $v0, 4 # system call code for print_str
la $a0, str # address of string to print
syscall # print the string
li $v0, 1 # system call code for print_int
li $a0, 5 # integer to print
syscall # print it
li $v0, 10 #system call code for exit
syscall
Output: “the answer = 5’’
FIGURE A.9.1 System services.
![Page 19: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/19.jpg)
How to Execute My Program Using QtSPIM?
Write your own assembly program, and save it as .s file
Simulator Reinitialize Simulator
Open your .s file
Simulator Clear Registers
Simulator Run / Continue
![Page 20: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/20.jpg)
Homework
![Page 21: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/21.jpg)
Homework
This is an individual assignment Plagiarism will be heavily punished Write the following three programs in MIPS assembly
language. (Must run correctly on SPIM)
Find out all prime numbers
Mutual prime
Tower of Hanoi
![Page 22: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/22.jpg)
Documentation (20%)
Detailed documentation for each program is required The following parts must be included:
Your name, student ID, and email address Explanation of the design or the flow of each
program What you’ve learnt from writing the programs
Problems or difficulties you’ve encountered during writing the programs are nice to be included in the document
![Page 23: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/23.jpg)
Problem 1. Find out all prime numbers
Input: • a positive integer n>1 output: • All prime numbers which is
smaller than n Requirements: • Print the correct answer. • Can do many calculations
iteratively • The file name is FindPrime.s
![Page 24: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/24.jpg)
Problem 2: Mutual prime
Input: • two positive integers x,y>1 output: • If gcd(x, y)=1 ,output True • otherwise output False Requirements: • Print the correct answer. • Can do many calculations iteratively • The file name is MutualPrime.s
![Page 25: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/25.jpg)
Problem 3:Tower of Hanoi
A hanoi tower with 3 rods A,B,C and n disks Move all the disk from A to C Input: • a positive integers n, 1<n≤5 Output: • Print all the steps Requirements: • Print the correct step. • The file name is Hanoi.s
![Page 26: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/26.jpg)
Submission
Deadline: You must submit at least the following files: FindPrime.s MutualPrime.s Hanoi.s (Your student id)_hwX_document.doc/pdf/docx
Please put all your files in a directory named by your student id in uppercase, and then compress it into one zipped file. (e.g. zip/tgz …)
The file name should be like B00xxxxxx.zip. Email your zipped file to TA
![Page 27: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/27.jpg)
Grading Guidelines
Description For Each Problem
Program runs without error messages 10%
Program executes correctly 60%
Documentation and description of the program 20%
Implementation Detail 10%
![Page 28: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/28.jpg)
Contact Information
TA Hours @ 管五 503-C Chien-Wen Jung(榮芊雯) Wed. 15:00~17:00 Hsiao-Ching You (尤筱青) Wed. 13:00~15:00 Shao-Chi Chen (陳少祁) Fri. 10:00~12:00
Contact us if you have any problem 榮芊雯 [email protected] 尤筱青 [email protected] 陳少祁[email protected]
![Page 29: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/29.jpg)
Deadline
Late submission policy: 10% off from your total
score each day
![Page 30: SPIM & MIPS Programmingrobin/courses/arch12/ppt/arch12... · (Your student id)_ hwX_document.doc/pdf/docx Please put all your files in a directory named by your student id in uppercase](https://reader033.fdocuments.net/reader033/viewer/2022052103/603e396a1812a353a77778d8/html5/thumbnails/30.jpg)
A N Y Q U E S T I O N S ?
Thank you for Your Attention