title: LC2K ISA. Can someone explain what this program is doing?
body: <p>Using the LC2K ISA, can someone explain to me what this program is doing?</p>
  
  <pre><code>        lw      0       1       five    load reg1 with 5 (symbolic address)
          lw      1       2       3       load reg2 with -1 (numeric address)
  start   add     1       2       1       decrement reg1
          beq     0       1       2       goto end of program when reg1==0
          beq     0       0       start   go back to the beginning of the loop
          noop
  done    halt                            end of program
  five    .fill   5
  neg1    .fill   -1
  stAddr  .fill   start                   will contain the address of start (2)
  </code></pre>
  
  <p>What is the difference between a symbolic and numeric address?  For example, why does line 2 load reg2 with -1?  Where does the -1 come from?</p>
  
  <p>What does the "start" mean on line 3, and why does that line decrement reg1 when it's using add?  Also, how are lines 4-5 and 7-9 working?</p>
  
  <p>If someone can explain the program concisely I'd greatly appreciate it.</p>
  
  <p>Thank you.</p>