Difference between revisions of "CSC103 Homework3 Solutions, 2012"

From dftwiki3
Jump to: navigation, search
(Assembly Language)
(Assembly Language)
Line 18: Line 18:
 
; a specific series of integers: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.
 
; a specific series of integers: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.
 
;
 
;
start:  lod-c 1
+
start:  lod-c 1        ;AC <- 1
         sto var1
+
         sto var1       ;var1 <- AC which is 1
         add-c 2
+
         add-c 2         ;AC <- AC + 2. AC now contains 3
         sto var2
+
         sto var2       ;var2 <- AC, or 3
         lod-c 5
+
         lod-c 5        ;AC <- 5
         sto var3
+
         sto var3       ;var3 <- 5
         add-c 2
+
         add-c 2         ;AC <- 5+ 2 = 7
         sto var4
+
         sto var4       ;var4 <- 7
         inc  
+
         inc             ;AC <- AC + 1 = 8
         inc  
+
         inc             ;AC <- AC + 1 = 9
         sto var5
+
         sto var5       ;var5 <- 9
         add-c 2
+
         add-c 2         ;AC <- 11
         sto var6
+
         sto var6       ;var6 <- 11
         add-c 2
+
         add-c 2         ;AC <- 13
         sto var7
+
         sto var7       ;var7 <- 13
         add-c 2
+
         add-c 2         ;AC <- 15
         sto var8
+
         sto var8       ;var8 <- 13
         add-c 2
+
         add-c 2         ;AC <- 17
         sto var9
+
         sto var9       ;var9 <- 17
         add-c 2
+
         add-c 2         ;AC <- 19
         sto var10
+
         sto var10       ;var10 <- 19
         hlt
+
         hlt             ;program stops
 +
 
 +
 
 
@30
 
@30
 
var1:  data
 
var1:  data

Revision as of 15:16, 28 February 2012

--D. Thiebaut 14:11, 28 February 2012 (EST)


Wiki Page

General Comments:

  • You had to answer the questions from the lab handout
  • You had to use the different wiki features listed in the homework
  • You had to write a paragraph for each main component found.
  • If you closed up the PC at the end of the lab, you got extra credits in the form of 1/3 point that was added to the final grade (pink grade).

Assembly Language

  • There were several ways to write the program. Here's one below that uses different instructions.
  • Importantly, you have to make sure that the address you specify for the data with the @ symbol is above the address of the last instruction, which is a hlt instruction. If you do not, then your program overwrites the instructions at the end of your program and you have a program with a major bug on your hands!
; Assembly language program that initializes 10 variables with
; a specific series of integers: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.
;
start:  lod-c 1         ;AC <- 1
        sto var1        ;var1 <- AC which is 1
        add-c 2         ;AC <- AC + 2. AC now contains 3
        sto var2        ;var2 <- AC, or 3
        lod-c 5         ;AC <- 5
        sto var3        ;var3 <- 5
        add-c 2         ;AC <- 5+ 2 = 7
        sto var4        ;var4 <- 7
        inc             ;AC <- AC + 1 = 8
        inc             ;AC <- AC + 1 = 9
        sto var5        ;var5 <- 9
        add-c 2         ;AC <- 11
        sto var6        ;var6 <- 11
        add-c 2         ;AC <- 13
        sto var7        ;var7 <- 13
        add-c 2         ;AC <- 15
        sto var8        ;var8 <- 13
        add-c 2         ;AC <- 17
        sto var9        ;var9 <- 17
        add-c 2         ;AC <- 19
        sto var10       ;var10 <- 19
        hlt             ;program stops


@30
var1:   data
var2:   data
var3:   data
var4:   data
var5:   data
var6:   data
var7:   data
var8:   data
var9:   data
var10:  data

Timing Analysis

  • If the processor runs at 3 GHz, it executes 3,000,000,000 cycles in 1 second.
  • The processor executes 1 instruction each cycle
  • The program above contains 22 instructions
  • It will take the processor 22 cycles to execute our program
  • In terms of time, this will be 22 * 1 sec / 3,000,000,000 = 22/3 10^-9 = 7 nanoseconds, approximately, or 7 billionth of a second.