--------------------------------------------- Test 3 (Friday April 18) Review Topics and Questions --------------------------------------------- -Ian! D. Allen - idallen@idallen.ca - www.idallen.com Bring two good, soft pencils and a very good eraser to the test. Test format: Short answers, calculations, multiple choice. No essay questions. Note: To help you check your answers during the test, I may give you the "check sum of the digits" in the answer. For example, if the answer is supposed to be 1289 I may tell you that the "check" sum of digits is 20 (20=1+2+8+9, the sum of digits in 1289). If the sum of digits in your answer doesn't add up to the number I give you, your answer is wrong and you will need to come back to it and try again. Test 3 - The "Lab Test" - covers material taken from any of the 8 labs. This is called a "Lab Test"; but, it does not take place in a lab. It covers material taken from any of the eight labs. It does not cover material that *only* appeared in lectures. Course Home Page: http://teaching.idallen.com/cst8214/08w/ - see "The Big Picture" in the week08notes.txt file under Class Notes. - see all the Class Notes files, including the week08notes.txt file Lab 1 - DB9, DB25, PS/2 keyboard and mouse, USB, VGA, Power - Motherboard, Network Interface card, Floppy Disk Drive Controller Hard Disk, Floppy Disk drive, Video card CMOS Battery, BIOS chip, Chipset (North Bridge) Chipset (South Bridge), Audio Modem Riser slot, ATX power connector - CPU, RAM sockets, PCI sockets, HD/IDE (hard disk) connectors - AGP (graphics card) slot - ISA card slot - PCI card slots - memory module slots Lab 2 - IDE master/slave, pin 1, disk C/H/S (cylinder/head/sector) Lab 4 - nothing on the test from this lab Lab 3 - Lab 5 - Lab 6 - Lab 7 - Lab 8 - convert to/from/among any of decimal, binary, octal, and hexadecimal - add and subtract numbers in decimal, binary, octal, and hexadecimal - signed/unsigned (sign/magnitude, one's complement, two's complement) - integer mathematics: Result and Carry / Overflow flags - IEEE 754 floating point conversions to/from decimal - shifting left or right: binary, octal, decimal, hexadecimal - approximate range (binary and decimal) of IEEE single-precision - floating-point overflow (range overflow, precision overflow) - floating-point underflow (possible divide-by-zero) - floating-point: associative or distributive ? - floating-point: testing for "equal" to zero - ASCII "control" characters (how many, what values) - first printable ASCII character (name, value in decimal and hex) - finding other ASCII upper- and lower-case letters when given, say, A = 41h - converting control characters to upper- and lower-case letters - parity - size of a Unicode character - relationship of ASCII and Unicode - simple Boolean truth tables - simple Boolean identities - Boolean complement and deMorgan's Law - C language bit-wise operations: ~x, x|y, x&y - bit masking, ORing in bits - address bits needed to address any size memory - byte-addressable vs. word-addressable - assembling and dis-assembling MARIE assembly language (given a table) - RTL/RTN for Load, Store, Add, Subt, Jump - describe the fetch/increment/execute cycle of a CPU - see text_errata.txt, week09notes.txt, week11notes.txt - relocating an assembled program to a different memory address - what is the input, purpose, and output of an "assembler" - what is "object code" or an "object file" ? - address modes: immediate, direct, indirect, indexed (with register R1) - RTL/RTN for AddI, or SubI, or LoadI, or JumpI (all indirect) - know how to add and subtract hexadecimal numbers - answers must be given in hex if numbers are given in hex - do not convert hex to binary first; it will be too slow - segment/offset conversions to/from 20-bit addresses and other segments e.g. a dump shows segment C000: - at what offset does byte C007A appear? e.g. a dump shows segment C000: - at what offset does byte C000:007A appear? e.g. a dump shows segment C000: - at what offset does byte C003:004A appear? e.g. a dump shows segment C000: - at what offset does byte C007:000A appear? e.g. a dump shows segment C007: - at what offset does byte C000:007A appear? e.g. a dump shows segment C007: - at what offset does byte C004:003A appear? e.g. a dump shows segment 8888: - at what offset does byte 8999:0000 appear? e.g. a dump shows segment 8888: - at what offset does byte 8900:0990 appear? e.g. a dump shows segment 8888: - at what offset does byte 8000:9990 appear? - reading hex and ASCII character values from a DEBUG memory dump - given background nybble F,R,G,B and foreground nybble H,R,G,B (F is Flash foreground and H is High-intensity), decode the attribute byte 69h into English - give the attribute byte for a flashing red character on blue background - Describe the character and attributes at an address in a Debug dump - finding the table start for a letter in the CGA ROM 8-byte character table e.g. given table start FFA6E and ASCII 'A' value 41h, find the start address of 'U' in the table e.g. given that 'A' (value 41h) starts at table address FFC76, find the start address of 'U' in the table - finding and decoding a CGA ROM 8-byte character bit map - locating bytes by address in a DEBUG "Unassemble" listing - dealing with endian-ness in dump output