Difference between revisions of "CSC270 Homework 7 2012"

From dftwiki3
Jump to: navigation, search
(Problem #3)
(Problem #3)
Line 30: Line 30:
 
       ORG  0000    ; specifies starting address 0000
 
       ORG  0000    ; specifies starting address 0000
 
   
 
   
       LDAA  10      ; get Mem[0000] in ACCA (direct addressing)  
+
       LDAA  a      ; get Mem[0000] in ACCA (direct addressing)  
       LDAB  11      ; get Mem[0001] in ACCB
+
       LDAB  b      ; get Mem[0001] in ACCB
 
       ABA          ; ACCA <- ACCA + ACCB
 
       ABA          ; ACCA <- ACCA + ACCB
       STAA  12      ; Mem[0002] <- ACCA
+
       STAA  c      ; Mem[0002] <- ACCA
  
 
       ORG  0010    ; specifies starting address 0
 
       ORG  0010    ; specifies starting address 0
Line 39: Line 39:
 
a      DB    2      ; 2 is stored at 0010
 
a      DB    2      ; 2 is stored at 0010
 
b      DB    3      ; 3 is stored at 0011
 
b      DB    3      ; 3 is stored at 0011
result DB    ?      ;  
+
c      DB    ?      ;  
 
</source>
 
</source>
  

Revision as of 12:53, 28 March 2012

--D. Thiebaut 13:43, 28 March 2012 (EDT)



This homework assignment is due on 4/4/12, at 1:00 p.m. You may work on this lab in teams of at most 2 people.


Problem #1

Disassemble the code you used to display your message. This requires looking up the op-codes and figuring out what instructions they correspond to, and write the whole program using mnemonics.

The reverse table found here will help you do the reverse engineering.

Problem #2

Using the same idea as the "Hacking" problem in the last lab (putting your name into the display of the kit), pick a message that you want to display, and hack the code you used in the lab to make it display your code.

Take a picture (or several pictures) of the display showing your message and include it/them with your answer

Problem #3

  • Write a program in 6800 Assembly Language that computes the quantity
        Y =  3 * ( a + b ) - ( c - 2 )


       ORG   0000    ; specifies starting address 0000
 
       LDAA  a       ; get Mem[0000] in ACCA (direct addressing) 
       LDAB  b       ; get Mem[0001] in ACCB
       ABA           ; ACCA <- ACCA + ACCB
       STAA  c       ; Mem[0002] <- ACCA

       ORG  0010    ; specifies starting address 0

a      DB    2       ; 2 is stored at 0010
b      DB    3       ; 3 is stored at 0011
c      DB    ?       ;


where Y, a, b, and c are byte variables.
  • Assemble your code by hand.
  • Write the listing of your code in a format similar to the example below: