2 MARS What is MARS? How to get it? How to use it? MIPS simulator Java basedHow to use it?Use the tutorial in the websiteAssemble->execute->step-by-step execute
3 Format of a MIPS program Every line contains at most one instruction# marks beginning of commentassembly language program require more comments!at least one per line!
4 Parts of a MIPS program Identify data segment and text (code) segment .globl mainmain: # start of codeOn simulator, data segment starts at 0x
5 Data segment Identify data segment and text (code) segment .data .word 7 #one word with initial value 7.word 3 #one word with initial value 3.text.globl mainmain: # start of codeOn simulator, data segment starts at 0x
6 Data and labels Locations in data section can be marked with label Label represents the address of where the data is in memory.datafirst: .word 7 #one word with initial value 7last: .word 3 #one word with initial value 3
7 System callssyscall instruction is used for calls to the operating systemsinputoutputBasic operationload $v0 with command to executeput output value in $a0 (or $f12)get input result from $v0 (or $f0)
8 Useful syscall Commands Command Event Arguments Result (in $v0) 1 print int $a0 = integer $a0 is printed out 2 print float $f12 = float $f12 is printed out 4 print string $a0 = pointer to string string is printed out 5 read int $v0 holds integer read 6 read float $f0 holds float read 8 read string $a0 = buffer,a1 = length string is read from console 10 exit program 11 print byte $a0 = byte byte is printed out
9 Printing an integer Command is 1 Command must be in register Value to print must be in register a0Example: print the value 10addi $v0, $v0, 1 # command to print integeraddi $a0, $a0, 10 # value to printsyscall
10 Strings for output Define in data section of program Use labels to identify different stringsLabels represent addresses in memoryStrings are C strings (end with 0).dataprompt: .asciiz "Enter in an integer: "str1: .asciiz "The integer is: "newline: .asciiz "\n "hello: asciiz”Hello, students of CSE230!”
11 Printing a string Command is 4 $v0 must hold command $a0 must hold address of string to printExample: print helloli $v0, 4 #command to print stringla $a0, hello # load address of stringsyscall
12 Reading input Command is 5 $v0 must hold command $v0 get result Example: read numberli $v0, 5 # command to read integersyscallmove $t0, $v0 # result saved in $t0
Your consent to our cookies if you continue to use this website.