1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight.asm-mips</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (MIPS Assembler) - Theme (Breeze Dark)"/>
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
<span style="color:#7a7c7d"># A demonstration of some simple MIPS instructions</span>
<span style="color:#7a7c7d"># used to test QtSPIM</span>
<span style="color:#7a7c7d"># Declare main as a global function</span>
<span style="color:#2980b9">.globl</span> main
<span style="color:#7a7c7d"># All program code is placed after the</span>
<span style="color:#7a7c7d"># .text assembler directive</span>
<span style="font-weight:bold">.text</span>
<span style="color:#7a7c7d"># The label 'main' represents the starting point</span>
<span style="color:#27ae60">main:</span>
<span style="color:#8e44ad">li</span> <span style="color:#0000ff">$t2</span>, <span style="color:#f67400">25</span> <span style="color:#7a7c7d"># Load immediate value (25) </span>
<span style="font-weight:bold">lw</span> <span style="color:#0000ff">$t3</span>, value <span style="color:#7a7c7d"># Load the word stored in value (see bottom)</span>
<span style="font-weight:bold">add</span> <span style="color:#0000ff">$t4</span>, <span style="color:#0000ff">$t2</span>, <span style="color:#0000ff">$t3</span> <span style="color:#7a7c7d"># Add</span>
<span style="font-weight:bold">sub</span> <span style="color:#0000ff">$t5</span>, <span style="color:#0000ff">$t2</span>, <span style="color:#0000ff">$t3</span> <span style="color:#7a7c7d"># Subtract</span>
<span style="font-weight:bold">sw</span> <span style="color:#0000ff">$t5</span>, Z <span style="color:#7a7c7d">#Store the answer in Z (declared at the bottom) </span>
<span style="color:#7a7c7d"># Exit the program by means of a syscall.</span>
<span style="color:#7a7c7d"># There are many syscalls - pick the desired one</span>
<span style="color:#7a7c7d"># by placing its code in $v0. The code for exit is "10"</span>
<span style="color:#8e44ad">li</span> <span style="color:#2980b9">$v0</span>, <span style="color:#f67400">10</span> <span style="color:#7a7c7d"># Sets $v0 to "10" to select exit syscall</span>
<span style="font-weight:bold">syscall</span> <span style="color:#7a7c7d"># Exit</span>
<span style="color:#7a7c7d"># All memory structures are placed after the</span>
<span style="color:#7a7c7d"># .data assembler directive</span>
<span style="font-weight:bold">.data</span>
<span style="color:#7a7c7d"># The .word assembler directive reserves space</span>
<span style="color:#7a7c7d"># in memory for a single 4-byte word (or multiple 4-byte words)</span>
<span style="color:#7a7c7d"># and assigns that memory location an initial value</span>
<span style="color:#7a7c7d"># (or a comma separated list of initial values)</span>
<span style="color:#27ae60">value:</span> <span style="color:#2980b9">.word</span> <span style="color:#f67400">12</span>
<span style="color:#27ae60">Z:</span> <span style="color:#2980b9">.word</span> <span style="color:#f67400">0</span>
</pre></body></html>
|