Winter 2011 - January to April 2011 - Updated 2011-03-26 04:27 EDT

- The Final Exam date is posted on the Course Home Page.
- For full mark credit, read Test Instructions for important directions on how to enter your answers on the mark-sense forms.

- Assignment #07 - Floating Point, Endian, Shifts, Characters, Booleans
- Assignment #06 - Submit midterm test corrections
- 030_binary_math.txt - Binary Integer Mathematics, unsigned, two’s complement, etc.
- 040_overflow.txt - The CARRY flag and OVERFLOW flag in binary arithmetic
- 070_integer_encoding_practice.html - Integer Encoding Practice (including Z,C,S,O)
- 300_real_compile_link.txt - Real-World Compile, Assemble, and Link Example
- 301_LMC.html - The “Little Man” Computer
- 302_LMC_instruction_cycle.txt - The Little Man Computer Instruction Cycle
- 305_LMC_opcodes.html - Extended LMC Operation Codes - Opcodes
- 306_LMCProgramming.html - LMC Machine Level Programming
- 307_LMC_lights.txt - LMC Negative Flag Trickery
- 310_Comparison_of_the_LMC_and_General_Computer_Models.pps -
- 310_Comparison_of_the_LMC_and_General_Computer_Models.ppt -
- 350_LMC_sample1.txt - LMC Sample Program #1 - add and subtract
- 350_LMC_sample2.txt - LMC Sample Program #2 - input, add, output
- 360_LMC_Simulator.html - Clone of Son of LMC Simulator
- 361_LMC_Simulator_Usage.pps -
- 361_LMC_Simulator_Usage.ppt -

These documents have restricted distribution and cannot be put on the Course Home Page.

- 01.ppt - Introduction
- ignore the history sections
- vonNeumann architectures: the vonNeumann bottleneck
- CPU components

- 02.ppt - Data Representation
- CPU Flags: slides 47-49, 53-54
- slide 54 has an error - change second-line 0100+0010 to be 0100+0110

- 03.ppt - Boolean Algebra and Digital Logic
- Read: Boolean Algebra
- Ignore: Digital Logic

- http://en.wikipedia.org/wiki/Parity_bit
- http://easycalculation.com/hex-converter.php - convert to/from hexadecimal

Your in-class notes go here.

What you might need is a Binary Watch - see image.

The six biggest misconceptions about IPv6: http://www.itworldcanada.com/news/the-six-biggest-misconceptions-about-ipv6/142588

how many ASCII characters are there?

- what is the difference between ‘A’ and ‘a’? ‘M’ and ‘m’? ‘Z’ and ‘z’?

how many ASCII control characters (unprintable) are there?

- what are their hex values?

bitwise operators:

`AND OR XOR NOT`

->`& | ^ ~`

- a=6,b=3 what is
`a&b`

? what is`a|b`

? what is`a^b`

? what is`~a`

? - a=5,b=10 what is
`a&b`

? what is`a|b`

? what is`a^b`

? what is`~a`

?

- a=6,b=3 what is
ASCII parity bit, used to detect errors in data transmission

- is ‘A’ even or odd parity? convert it to even parity, then to odd
- is CR even or odd parity? convert it to even parity, then to odd

vonNeumann architecture limitations (from 01.ppt)

- what is the vonNeumann bottleneck?

basic CPU components (from 01.ppt)

Carry and Overflow flags (continued)

- see the Class Notes, above, and the 02.ppt slides, above
- The Overflow flag comes on when the answer is wrong for two’s complement (signed). The simple rule to remember is that Overflow flag only turns on when pos+pos=neg or neg+neg=pos.
- For subtraction, note that subtracting a positive is the same math as adding a negative, and subtracting a negative is the same math as adding a positive:
- neg-pos = neg+neg and Result must also be negative (else Overflow)
- pos-neg = pos+pos and Result must also be positive (else Overflow)

- Adding two negatives must give a negative; adding two positives must give a positive. Subtracting a positive from a negative must generate a more negative number, not a positive number, and subtracting a negative value from a positive number must give a more positive number, not a negative number. (Otherwise: Overflow)
- The Carry flag indicates a Borrow when doing subtraction of a big number from a smaller number, e.g. 2-3

The Little-Man Computer

- see the Class Notes, above