Search code examples
assemblymemory-addressmov68000easy68k

How can I simulate the LEA instruction with MOVE?


How can I simulate the LEA instruction with MOVE? is this possible? I've used x86 assembly and the MOV instruction just copy adddress of if it's a symbol (not sure if it's assembly-dependent). But in 6800 MOVE looks like behave different, e.g., in the following instructions D1 and A1 has different values. How does LEA instruction work exactly? and how can I simulate? i.e., do what the LEA do without use it. I think that with MOVE and some others. Also, what does, de facto, MOVE is putting in D1 it doesn't seem the hex values of label.

  MOVE T(PC),D1
  LEA T,A1

Solution

  • For an address register:

    MOVEA.L #T,A<n>
    

    For a data register:

    MOVE.L #T,D<n>
    

    Note that MOVE will update some of the condition flags, which neither LEA nor MOVEA does.