CSCI 237
Computer Organization
Home | Schedule | Assignments | Links | Williams CS
Practice Problems
The table below lists practice problems that test topics we emphasized in class. We recommend completing these practice problems to reinforce the course material in prepration for exams. Some questions have answers in the textbook, but the TAs and instructors are available to help work through any questions that you have about the material.
| Problem | Page # | Topics Covered (Notes) |
|---|---|---|
| Unit 1 | Unit 1 | Unit 1 |
| 2.17 | 65 | Converting Hexadecimal to binary representations; unsigned vs. twos-complement. |
| 2.22 | 79 | Sign extension. (Equation 2.3 is on page 64) |
| 2.23 | 80 | Arithmetic shifting. |
| 2.24 | 82 | Effect of truncating on signed/unsigned. |
| 2.29 | 93 | Signed addition; overflow. |
| 2.30 | 94 | Overflow. (No need to compile the code, but this problem may help with lab) |
| 2.61 (A, B) | 129 | C and bitwise representations of integers. |
| 2.68 | 132 | C and bitwise representations of integers. |
| -- | -- | Write the 16-bit twos-complement representation of the following numbers: -1, 2864, -1573 |
| 2.45 | 111 | Binary fractional values. |
| 2.47 | 117 | IEEE Floating point encoding/decoding. |
| 2.48 | 119 | Bitwise representation of floating point numbers |
| - | - |
Consider the decimal value -718.40625.
|
| - | - |
Consider the hexadecimal value 0xC295D000.
|
| - | - | Write down the binary representation of the decimal number -316.5625 assuming IEEE single-precision floating point format. |
| Unit 2 | Unit 2 | Unit 2 |
| 3.1 | 182 | Addressing/Operand Forms |
| 3.2 | 185 | Operand sizes |
| 3.5 | 189 | Assembly -> C conversion |
| 3.6 | 192 | Load Effective Address |
| 3.7 | 193 | Assembly -> C conversion |
| 3.8 | 194 | Arithmetic Operations |
| 3.10 | 197 | Assembly -> C conversion |
| 3.11(A) | 197 | Assembly Tricks |
| 3.13 | 204 | Comparisons |
| 3.16 | 212 | C if/else ↔ C goto code |
| 3.18 | 213 | if/else ↔ assembly |
| 3.24 | 224 | while loops ↔ assembly |
| 3.26 | 228 | Loop translations |
| 3.27 | 231 | C for loop ↔ C goto code |
| 3.28 | 231 | for ↔ assembly |
| 3.30 | 236 | Switch Statements |
| 3.33 | 246 | Procedure Arguments, Registers, & the Stack |
| 3.34 | 253 | Local storage & caller/callee saved registers |
| 3.35 | 254 | Recursion |
| 3.36 | 256 | Arrays and addressing |
| 3.37 | 257 | Array/pointer/address ops and assembly |
| 3.41 | 268 | Struct data types |
| 3.58 | 311 | Assembly -> C conversion |
| 3.60 | 312 | C <-> Assembly Loop transformations |
| 3.64 | 316 | Multi-dimensional arrays and memory layouts |
| 3.65 | 317 | Arrays <-> pointers |