Do the Even questions from section 4.1.10. Explain why FALSE questions are FALSE.

(It wouldn't hurt if you studied the answers to the odd questions as well.)

In addition, do these problems:

  1. Explain what is 'wrong' with each of the following move instructions. (They use the data definitions for 7-10 in the text.)

    1. mov ax,[var1+3]
    2. mov ax,[var2+1]
    3. move ax,[var3]
    4. mov eax,[var3]
    5. movsx eax,[var2]
    6. movzx eax,[var3+2]
  2. Neither mov nor xchg allow memory-to-memory transfers. Show examples of code to:

    1. accomplish memory-to-memory mov
    2. accomplish memory-to-memory xchg
  3. What might be the utility of the following statements?

        move TEXTEQU <mov>
        exchange TEXTEQU <xchg>
    

    Explain briefly...

  4. Does the mov instruction actually move the data? (In a real move, the thing moved is no longer at the source position. But, then, what do we mean by 'the thing' when we are talking about data..?)

  5. Challenge: The book states that MASM has no built-in range checking [for effective addresses]. So we must therefore be extra careful!

    Look online for documentation for NASM, Asm86, Bin86, and TASM and discover if any of these assemblers perform range checking for you.


This assignment is Level 3.