Difference between revisions of "CSC103 2011 Homework 3 Solution"

From dftwiki3
Jump to: navigation, search
(Problem #2)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
--[[User:Thiebaut|D. Thiebaut]] 10:57, 25 February 2011 (EST)
 
--[[User:Thiebaut|D. Thiebaut]] 10:57, 25 February 2011 (EST)
 
----
 
----
 
+
<onlydft>
 
=Problem #1=
 
=Problem #1=
 
* Here are two options provided by Kristina.
 
* Here are two options provided by Kristina.
Line 108: Line 108:
  
  
</pre><code>
+
</pre></code>
  
 
<br />
 
<br />
 +
=Problem #3=
 +
<code><pre>
 +
; Problem #3
 +
; Julia Fernandez
 +
; (Edited by D. Thiebaut)
 +
; Computes the sum of all the numbers between
 +
; 1 and 10.
 +
 +
; The accumulator will find the sum of the numbers 1-10,
 +
; beginning with ;10 and adding backwards (so 10+9+8…).
 +
 +
Start:  Lod-c    10                ; Store 10 to the location “Index”
 +
        Sto      Index                 
 +
        Lod-c    0                  ; Store 0 to the location “Sum”
 +
        Sto      Sum
 +
 +
 +
; I will now create a loop that counts backwards from zero.
 +
; As it counts down, it adds whatever number it’s on to the
 +
; total at location “Sum”.
 +
; Once the counter has reached zero, the program will stop.
 +
 +
Loop:    Lod        Sum              ; Load data at address  Sum into acc
 +
        Add        Index            ; Add data at address Index to Sum
 +
        Sto        Sum              ; Store result in Sum
 +
        Lod        Index            ; Load data at address Index into acc
 +
        Dec                          ; acc = acc-1
 +
        Jmz        Done              ; If acc=0, then skip to address Done
 +
        Sto        Index            ; If acc does not equal 0, store number in acc in Index
 +
        Jmp        Loop              ; Jump to beginning of loop
 +
 +
Done:    HLT                          ; If acc=0, program stops
 +
 +
@15
 +
Index:  data
 +
Sum:    0
 +
 +
             
 +
</pre></code>
 +
 +
=Problem #4=
 +
<code><pre>
 +
; Problem #4
 +
; Sam Scharr
 +
; (Edited by D. Thiebaut)
 +
; This program computes the sum of all the even numbers
 +
; between 0 and 10.
 +
 +
Start:  lod sum          ;initial sum = 0
 +
        add int          ;add integer, initial integer=2
 +
        sto sum          ;store sum
 +
 +
        lod int          ;load integer
 +
        add-c 2          ;increase integer by 2
 +
        sto int          ;store new integer
 +
 +
        lod counter      ;load counter
 +
        dec              ;decrement counter by 1
 +
        dec              ;decrement again (so, result is decrement by 2)
 +
        sto counter      ;store new counter
 +
 +
        jmz done        ;when counter = zero, jump to done
 +
        jmp start        ;if counter does not equal zero, jump to start
 +
Done:  hlt              ;stop
 +
 +
@15
 +
sum:    0              ;this will contain the sum at the end of the program
 +
counter: 10              ;numbre of times we're going to loop times 2
 +
int:    2
 +
</pre></code>
  
 +
</onlydft>
 
<br />
 
<br />
  

Latest revision as of 09:32, 2 October 2013

--D. Thiebaut 10:57, 25 February 2011 (EST)



...