CSE243 Mid-term exam review questions

Spring 2002

The questions on the mid-term exam will resemble some or all of these. The actual questions you see on the exam will be more specific (some of these are incomplete, and unanswerable), but they may also be slightly different than these. Don't be concerned with memorizing anything: I will give you all the tables or diagrams you need to answer the questions, but you must be able to understand the tables and diagrams and interpret them appropriately.

You will not be able to use any external resources during the exam, which includes but is not limited to books, notes, PDAs, pagers, cell phones, scraps of paper, calculators, roommates, and parents.

  1. Understand the similarities and differences between the following number formats: sign and magnitude, 1's complement, 2's complement. Be able to convert base-10 numbers to each of these, and to convert from each of these to base-10. See section 2.1.1 starting on page 27.

  2. Understand the names and meanings of different addressing modes: immediate, register, direct, indirect, indexed, auto-increment, auto-decrement, indexed, and base-with-index. See table 2.1 on page 48, but be more concerned with Name and Addressing function than Assembler syntax. I will tell you what the syntax means in order to avoid any possible confusion with having to learn different assembly languages (PDP-11 vs. SPARC).

  3. Understand addressing modes enough to be able to calculate the effective addresses of certain operands. Problem 2.13 on page 100 is a good example.

  4. Be able to read and understand assembly language programs like the ones found on pages 51 (figure 2.12) and 55 (figure 2.15). This includes basic instructions, branching, and addressing modes. Be prepared to ``run'' a program like this by hand. I will describe any instructions you need to use.

  5. Understand how to encode and decode instructions. I will give you an instruction format, like the ones on page 96, and lists of opcode and operand encodings, and then ask you to encode an assembly instruction into its binary format. Likewise, I may ask you to decode a binary word into an assembly instruction. In either case, I will provide you with the necessary encodings. You need not memorize anything for this, but understand how the process works.

  6. Given a single stage adder like the one on page 370 (figure 6.2 (a)), and given some time units for si and ci+1 (how long it takes for these signals to become valid), determine how long it would take for all output signals of an n-stage full adder to stabilize using (A) ripple carries and (B) carry lookahead.

  7. Multiply two numbers using the Booth algorithm. See attached sheet for an example. (Example from lecture will be provided soon)

  8. Decode some 32-bit binary number using the IEEE floating point notation. See section 6.7.1 starting on page 394.

  9. Given some diagram of a processor data path, generate the sequence of microcode instructions to perform some given assembly instructions. The diagram will resemble the one either on page 413 (single bus) or page 424 (three bus).

  10. Understand the similarities and differences between microprogrammed control and hardwired control. Start with figures 7.10 (page 426) and 7.18 (page 432).