CSC103 Homework3 Solutions, 2012

From dftwiki3
Revision as of 15:11, 28 February 2012 by Thiebaut (talk | contribs) (Assembly Language)
Jump to: navigation, search

--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
        sto var1
        add-c 2
        sto var2
        lod-c 5
        sto var3
        add-c 2
        sto var4
        inc 
        inc 
        sto var5
        add-c 2
        sto var6
        add-c 2
        sto var7
        add-c 2
        sto var8
        add-c 2
        sto var9
        add-c 2
        sto var10
        hlt
@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.