Difference between revisions of "CSC270 Homework 7 2012"

From dftwiki3
Jump to: navigation, search
(Problem #3)
(Problem #1)
Line 11: Line 11:
 
=Problem #1=
 
=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.
+
Disassemble the code you used in the [[CSC270 Lab 7 2012|lab]] 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 [http://home.earthlink.net/~tdickens/68hc11/68hc11_opcode_map.html here] will help you do the reverse engineering.
 
The reverse table found [http://home.earthlink.net/~tdickens/68hc11/68hc11_opcode_map.html here] will help you do the reverse engineering.

Revision as of 12:58, 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 in the lab 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

Question 1

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


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:
       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    ?       ;
  • Make sure you include the opcodes on the left of the program, including the address for each instruction.


Question 2

  • How many bytes of code plus data does your program take?

Question 3

  • How many cycles does your program take to execute from first to last instruction.