MIPS Assembly/System Instructions

From Wikibooks, open books for an open world
Jump to navigation Jump to search

This page is going to discuss some of the more advanced MIPS instructions that might not be used in every-day programming tasks.

Instruction:
syscall
type:
R Type

syscall allows you to call upon the basic system functions. To use syscall, first set $v0 with the code of the function you want to call, then use syscall. The exact codes available may depend on the specific system used, but the following are examples of common system calls.

code call arguments results
1 print integer $a0 = integer to print
2 print float $f12 = float to print
3 print double $f12 = float to print
4 print string $a0 = address of beginning of string
5 read integer integer stored in $v0
6 read float float stored in $f0
7 read double double stored in $f0
8 read string $a0 = pointer to buffer, $a1 = length of buffer string stored in buffer
9 sbrk (allocate memory buffer) $a0 = size needed $v0 = address of buffer
10 exit
11 print character $a0 = character to print
Example: printing the number 12
li $a0, 12→;loads the number we want printed, 12 in this case, into the first argument register
li $v0, 1→;stores the code for the print integer call into $v0
syscall→;Executes system call


Instruction:
break
type:
R Type
Instruction:
sync
type:
R Type
Instruction:
cache
type:
R Type
Instruction:
pref
type:
R Type