File indexing completed on 2025-02-02 03:54:44
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>highlight.asm-mips</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (MIPS Assembler) - Theme (Breeze Dark)"/> 0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre> 0007 <span style="color:#7a7c7d"># A demonstration of some simple MIPS instructions</span> 0008 <span style="color:#7a7c7d"># used to test QtSPIM</span> 0009 0010 <span style="color:#7a7c7d"># Declare main as a global function</span> 0011 <span style="color:#2980b9">.globl</span> main 0012 0013 <span style="color:#7a7c7d"># All program code is placed after the</span> 0014 <span style="color:#7a7c7d"># .text assembler directive</span> 0015 <span style="font-weight:bold">.text</span> 0016 0017 <span style="color:#7a7c7d"># The label 'main' represents the starting point</span> 0018 <span style="color:#27ae60">main:</span> 0019 <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> 0020 <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> 0021 <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> 0022 <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> 0023 <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> 0024 0025 <span style="color:#7a7c7d"># Exit the program by means of a syscall.</span> 0026 <span style="color:#7a7c7d"># There are many syscalls - pick the desired one</span> 0027 <span style="color:#7a7c7d"># by placing its code in $v0. The code for exit is "10"</span> 0028 <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> 0029 <span style="font-weight:bold">syscall</span> <span style="color:#7a7c7d"># Exit</span> 0030 0031 <span style="color:#7a7c7d"># All memory structures are placed after the</span> 0032 <span style="color:#7a7c7d"># .data assembler directive</span> 0033 <span style="font-weight:bold">.data</span> 0034 0035 <span style="color:#7a7c7d"># The .word assembler directive reserves space</span> 0036 <span style="color:#7a7c7d"># in memory for a single 4-byte word (or multiple 4-byte words)</span> 0037 <span style="color:#7a7c7d"># and assigns that memory location an initial value</span> 0038 <span style="color:#7a7c7d"># (or a comma separated list of initial values)</span> 0039 <span style="color:#27ae60">value:</span> <span style="color:#2980b9">.word</span> <span style="color:#f67400">12</span> 0040 <span style="color:#27ae60">Z:</span> <span style="color:#2980b9">.word</span> <span style="color:#f67400">0</span> 0041 </pre></body></html>