csci 10 :: book learning challenge 6 (due mon, oct 3)
Submitting your work:

Complete this exercise on your own.

Fill in all of the "Answer" boxes, then print the answer grid that you see after you press "Prepare for printing".

Staple all pages together and submit to the instructor on the date listed above.

Questions:

Read Art of Assembly V3 10.2 and Opcode [Wikipedia], then answer the following:

Your name:
  1. What is an opcode in terms of x86 machine language?
    Answer:
  2. Why are the x86 mul and imul instructions single operand instructions?
    Answer:
  3. What register do the x86 mul and imul instructions assume to be the destination operand?
    Answer:
  4. Can you multiply, using the x86 mul and imul instructions, by a constant? If not, is there an instruction (specify the instruction if it exists) that allows an x86 assembly language programmer to multiply by a constant?
    Answer:
  5. What is the difference between the x86 mul and imul instructions?
    Answer:
  6. Write the single operand assembly instructions to multiply the two unsigned 8-bit values 2 and 21 and display the result in decimal (base-10).
    Answer:
  7. Write the single operand assembly instructions to multiply the two signed 8-bit values -3 and 33 and display the result in decimal (base-10).
    Answer:
  8. Write the single operand assembly instructions to multiply the two unsigned 16-bit values 5 and 2469 and display the result in decimal (base-10). This is a tricky one -- we will look over examples in class.
    Answer:
  9. Write the single operand assembly instructions to multiply the two signed 16-bit values 3 and -18107 and display the result in decimal (base-10). This is a tricky one -- we will look over examples in class.
    Answer:
  10. Why do the x86 mul and imul instructions, when operating on 16-bit operands, leave the result in dx:ax?
    Answer:

Total points for this book learning challenge:

150 points