Computer Organization and Structure 2011                              SPIM & MIPS                              PROGRAMMING...
OUTLINE                                        Homework 2                                        (Programming             ...
ASSEMBLY LANGUAGEMachine language• Computer’s binary encodingAssembly language• Symbolic representation of a computer’s bi...
WHAT IS SPIM?      MIPS32 simulator that reads and executes      assembly language program written for      SPIM.      SPI...
REFERENCES OF SPIMOfficial website of SPIM: http://spimsimulator.sourceforge.net/Assemblers, Linkers, and the SPIM Simul...
QTSPIM - INSTALLATION      http://spimsimulator.sourceforge.net                       /
QTSPIM - INSTALLATION            Linux           Windows             Mac
QTSPIM - SCREENSHOT      Text WindowRegister Window   Data Window                           Console Window
MIPS ASSEMBLY LANGUAGE                  Operation Code (Opcode)
MIPS ASSEMBLY LANGUAGEMIPS Registers and Usage Convention                                  n $zero            constant 0...
MIPS ASSEMBLY LANGUAGESome Data Types in MIPS                      S  .word, .half      • 32/16 bit integer    .byte      ...
MIPS SYSTEM CALLSSPIM provides a small set of operating-system- like services through the system call instruction.A prog...
MIPS SYSTEM CALLS                                         $v0         FIGURE A.9.1 System services.
EXAMPLE – HELLO WORLDC vs MIPSint main()                    .data{                             Mystr: .asciiz “Hello World...
EXAMPLE – HELLO WORLDMIPS Architecture                e                    .data                    Mystr:     .asciiz “He...
EXAMPLE – HELLO WORLDMIPS Architecture                e                    .data                    .text                 ...
MIPS SYSTEM CALLS - EXAMPLE   Output: “the answer = 5’’.data    str:    .asciiz "the   answer = ".text    li $v0, 4       ...
ASSEMBLER SYNTAXComment (#) Everything from the sharp sign to the end of the line is ignored.Identifier (A sequence of al...
HOMEWORK
HOMEWORK This is an individual assignment Plagiarism will be heavily punished Write the following three programs in MIP...
DOCUMENTATION (20%) Detailed documentation for each program is required The following parts must be included:    Your n...
PROBLEM 1. SIMPLE CALCULATOR Input:                                   Sample input / output  • Two integer x, y     ( x,...
PROBLEM 2: STAR PYRAMID Build a pyramid using stars(*) and white spaces given  number of rows  Example:                  ...
PROBLEM 2: STAR PYRAMID Input:    Number of rows of the pyramid: N     (N>0)                                  Sample Inp...
PROBLEM 3: DEFORMATION OF PASCALTRIANGLEF(m ,n) = F(m-1 ,n-1)+ 2*F(m-1 ,n) (F(x, 0)=1 for all x and F(0, y)=0 for y>0)   ...
PROBLEM 3: DEFORMATION OF PASCALTRIANGLEInput:   Two integers m, n (m=1~20, n=1~99)Requirements:   Output F(m ,n) = F(...
HOW TO EXECUTE MY PROGRAM USING QTSPIM?Write your own assembly program, andsave it as .s file   Simulator  Clear Register...
SUBMISSION Deadline: 11:59pm, 1 Nov. (Tue.) You must submit at least the following files:    Calculator.s    StarPyram...
Remember to rename your fileSUBMISSION         for multiple uploads!!!        https://filestork.net/suv6oro7              ...
GRADING GUIDELINES              Description             For Each Problem                                            Proble...
CONTACT INFORMATIONTA Hours @ 管五 503-C   Shu-Yang Lin (林書漾)    Fri. 10:00~12:00   Hsun-Pei Wang (王珣沛)   Fri. 10:00~12:0...
DEADLINE2011/11/1 (Tue.)Late submission policy: 10% off from your total score each day after the deadline
THANK YOU FORYOUR ATTENTIONAny Questions?
Upcoming SlideShare
Loading in...5
×

MIPS-SPIM Taiwan

1,420

Published on

MIPS, SPIM

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,420
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MIPS-SPIM Taiwan

  1. 1. Computer Organization and Structure 2011 SPIM & MIPS PROGRAMMING Created and Presented by Shu-Yang Lin, Hsun-Pei Wang, Liang-Tsen Shen Department of Information Management National Taiwan University
  2. 2. OUTLINE Homework 2 (Programming MIPS – Assignment) Assembly SPIM – Language Getting Programming Introduction Started to Assembly Language
  3. 3. ASSEMBLY LANGUAGEMachine language• Computer’s binary encodingAssembly language• Symbolic representation of a computer’s binary encodingAssembler• Translates assembly language into binary instructions
  4. 4. WHAT IS SPIM? MIPS32 simulator that reads and executes assembly language program written for SPIM. SPIM does NOT execute binary program.
  5. 5. REFERENCES OF SPIMOfficial website of SPIM: http://spimsimulator.sourceforge.net/Assemblers, Linkers, and the SPIM Simulator:http://pages.cs.wisc.edu/~larus/HP_Ap pA.pdfMIPS Instruction Reference:http://www.mrc.uidaho.edu/mrc/peopl e/jff/digital/MIPSir.html
  6. 6. QTSPIM - INSTALLATION http://spimsimulator.sourceforge.net /
  7. 7. QTSPIM - INSTALLATION Linux Windows Mac
  8. 8. QTSPIM - SCREENSHOT Text WindowRegister Window Data Window Console Window
  9. 9. MIPS ASSEMBLY LANGUAGE Operation Code (Opcode)
  10. 10. MIPS ASSEMBLY LANGUAGEMIPS Registers and Usage Convention n $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…
  11. 11. MIPS ASSEMBLY LANGUAGESome Data Types in MIPS S .word, .half • 32/16 bit integer .byte • 8 bit integer .ascii, .asciiz • string .double, .float • floating point
  12. 12. 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).
  13. 13. MIPS SYSTEM CALLS $v0 FIGURE A.9.1 System services.
  14. 14. EXAMPLE – HELLO WORLDC vs MIPSint main() .data{ Mystr: .asciiz “Hello World¥n” printf(“Hello World¥”); return 0; .text main:} li $v0, 4 la $a0, Mystr syscall li $v0, 10 syscall
  15. 15. EXAMPLE – HELLO WORLDMIPS Architecture e .data Mystr: .asciiz “Hello World¥n” Yourint: .word 75 Hisarray: .word 100, 100, 100 .word 20 , 40 , 60 .word 1 , 2 , 3 .text ……
  16. 16. EXAMPLE – HELLO WORLDMIPS Architecture e .data .text main: # do anything you want …… # end of the program li $v0, 10 syscall
  17. 17. MIPS SYSTEM CALLS - EXAMPLE Output: “the answer = 5’’.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 FIGURE A.9.1 System services.
  18. 18. ASSEMBLER SYNTAXComment (#) Everything from the sharp sign to the end of the line is ignored.Identifier (A sequence of alphanumeric characters, _ , and .) Identifier are a sequence of alphanumeric characters, underbars (_), and dots (.) that do not begin with a number. Instruction Opcode Instruction opcodes are reserved words that are not valid identifiers. Label Labels are declared by putting them at the beginning of a line followed by a colon. PAGE 18
  19. 19. HOMEWORK
  20. 20. 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) Simple Calculator Star Pyramid Pascal Triangle
  21. 21. 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
  22. 22. PROBLEM 1. SIMPLE CALCULATOR Input:  Sample input / output • Two integer x, y ( x, y may be positive, negative or  zero) • An operator (+, ‐, *, /) Requirements: • Print  the correct answer. • Can do many calculations  iteratively • If the answer of division includes a  remainder please print it out • The file name is Calculator.s
  23. 23. PROBLEM 2: STAR PYRAMID Build a pyramid using stars(*) and white spaces given number of rows Example: Space # of rows = 5 4 * 3 * * * 2 * * * * * 1 * * * * * * * * * * * * * * * *
  24. 24. PROBLEM 2: STAR PYRAMID Input:  Number of rows of the pyramid: N (N>0) Sample Input Requirements:  Print the correct answer (Number of white spaces and stars should be correct)  File Name: StarPyramid.s Sample Output Pyramid may seemed to be a little inclined caused by the default display settings of the console window in QtSPIM  will NOT affect your score
  25. 25. PROBLEM 3: DEFORMATION OF PASCALTRIANGLEF(m ,n) = F(m-1 ,n-1)+ 2*F(m-1 ,n) (F(x, 0)=1 for all x and F(0, y)=0 for y>0) 0 1 2 3 4 5 … 0 1 0 0 0 0 0 … *2 1 1 1 0 0 0 0 … *2 *2 2 1 3 1 0 0 0 … *2 *2 *2 3 1 7 5 1 0 0 … 4 *2 *2 *2 *2 1 15 17 7 1 0 …
  26. 26. PROBLEM 3: DEFORMATION OF PASCALTRIANGLEInput:  Two integers m, n (m=1~20, n=1~99)Requirements:  Output F(m ,n) = F(m-1 ,n-1)+ 2*F(m-1 ,n) (F(x, 0)=1 for all x and F(0, y)=0 for y>0)  Print the correct answer  Can do many calculations iteratively  File Name: PascalDeform.s
  27. 27. HOW TO EXECUTE MY PROGRAM USING QTSPIM?Write your own assembly program, andsave it as .s file Simulator  Clear Registers Simulator Reinitialize Simulator Open your .s file Simulator  Run / Continue
  28. 28. SUBMISSION Deadline: 11:59pm, 1 Nov. (Tue.) You must submit at least the following files:  Calculator.s  StarPyramid.s  PascalDeform.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 …) You should upload your zipped file HW#2 to https://filestork.net/suv6oro7 before the deadline. The file name should be like B99xxxxxx.zip, eg. B99705099.zip Rename your file for multiple uploads, eg. B99705099_v2.zip, B99705099_v3.zip …
  29. 29. Remember to rename your fileSUBMISSION for multiple uploads!!! https://filestork.net/suv6oro7 7
  30. 30. GRADING GUIDELINES Description For Each Problem ProblemProgram runs without error messages 10%Program executes correctly 60%Documentation and description of 20%the programImplementation Detail 10%
  31. 31. CONTACT INFORMATIONTA Hours @ 管五 503-C  Shu-Yang Lin (林書漾) Fri. 10:00~12:00  Hsun-Pei Wang (王珣沛) Fri. 10:00~12:00  Liang-Tsen Shen (沈亮岑) Mon. 10:00~12:00Contact us if you have any problem  林書漾 young@cmlab.csie.ntu.edu.tw  王珣沛 garfieldduck@cmlab.csie.ntu.edu.tw  沈亮岑 olga@cmlab.csie.ntu.edu.tw
  32. 32. DEADLINE2011/11/1 (Tue.)Late submission policy: 10% off from your total score each day after the deadline
  33. 33. THANK YOU FORYOUR ATTENTIONAny Questions?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×