Difference between revisions of "CSC270 Homework 7 2016"
(→Problem 1: Reverse Engineering) |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
---- | ---- | ||
− | < | + | |
− | < | + | <br /> |
− | </ | + | <bluebox> |
− | < | + | This homework is due on 3/31, at 11:55 p.m. You can work on this assignment in pairs. Submit your answers as a pdf on Moodle, in the Homework 7 section. |
− | + | </bluebox> | |
+ | <br /> | ||
+ | <br /> | ||
<br /> | <br /> | ||
=Problem 1: Reverse Engineering= | =Problem 1: Reverse Engineering= | ||
<br /> | <br /> | ||
− | * Reconstruct the 6800 program | + | * Reconstruct the 6800 program for which we have listed the hexadecimal code below. Each group of 2 digits represents a byte of memory. The first four bytes are stored starting at Address 0000. The next 24 bytes start at Address 0006. The ? character indicate an unknown value. The program starts at Address 0006. |
− | 0000 03 04 ?? ?? | + | 0000 03 04 ?? ?? ?? ?? |
0006 96 01 91 02 2F 09 97 03 D6 02 D7 04 7E 00 1B 97 04 D6 02 D7 03 7E 00 06 | 0006 96 01 91 02 2F 09 97 03 D6 02 D7 04 7E 00 1B 97 04 D6 02 D7 03 7E 00 06 | ||
− | * Write the assembly language program | + | * Write the original assembly language program that was assembled to generate these bytes. Document each instruction or group of logical instructions. |
− | * Indicate in the header of the program what the program computes | + | * Indicate in the header of the program what the program computes. In other words, what ends up in the variables that are not initialized when the program starts? |
* Assuming that the clock of the 6811 is 1 MHz, i.e. that 1 cycle lasts 1 uS, how long does a loop last? | * Assuming that the clock of the 6811 is 1 MHz, i.e. that 1 cycle lasts 1 uS, how long does a loop last? | ||
* How many loops will this 1 MHz 6811 execute in 1 second. | * How many loops will this 1 MHz 6811 execute in 1 second. | ||
+ | * Sketch the same program in Pentium assembly language. Assuming that the Pentium runs at 1 MHz (same as the 6811), and executes 1 instruction per cycle (because the pipelining in the pentium overlaps the multiple cycles taken by each instruction), how many similar loops would the Pentium execute in 1 second? | ||
+ | * Same question for a Pentium running at 3.2 GHz, the speed of a current beefy Pentium laptop. |
Latest revision as of 12:46, 23 March 2016
--D. Thiebaut (talk) 07:10, 22 March 2016 (EDT)
This homework is due on 3/31, at 11:55 p.m. You can work on this assignment in pairs. Submit your answers as a pdf on Moodle, in the Homework 7 section.
Problem 1: Reverse Engineering
- Reconstruct the 6800 program for which we have listed the hexadecimal code below. Each group of 2 digits represents a byte of memory. The first four bytes are stored starting at Address 0000. The next 24 bytes start at Address 0006. The ? character indicate an unknown value. The program starts at Address 0006.
0000 03 04 ?? ?? ?? ?? 0006 96 01 91 02 2F 09 97 03 D6 02 D7 04 7E 00 1B 97 04 D6 02 D7 03 7E 00 06
- Write the original assembly language program that was assembled to generate these bytes. Document each instruction or group of logical instructions.
- Indicate in the header of the program what the program computes. In other words, what ends up in the variables that are not initialized when the program starts?
- Assuming that the clock of the 6811 is 1 MHz, i.e. that 1 cycle lasts 1 uS, how long does a loop last?
- How many loops will this 1 MHz 6811 execute in 1 second.
- Sketch the same program in Pentium assembly language. Assuming that the Pentium runs at 1 MHz (same as the 6811), and executes 1 instruction per cycle (because the pipelining in the pentium overlaps the multiple cycles taken by each instruction), how many similar loops would the Pentium execute in 1 second?
- Same question for a Pentium running at 3.2 GHz, the speed of a current beefy Pentium laptop.