Overloaded operators: Difference between revisions

Content added Content deleted
No edit summary
No edit summary
Line 16:
LDA ($80,x) ;use the values stored at $80+x and $81+x as a 16-bit memory address to load from.
LDA ($80),y ;use the values stored at $80 and $81 as a 16-bit memory address to load from. Load from that address + y.</lang>
 
=={{header|68000 Assembly}}==
Most assemblers will interpret instructions such as <code>MOVE</code>, <code>ADD</code>, etc. according to the operand types provided.
<lang 68000devpac>MOVE.L D0,A0 ;assembles the same as MOVEA.L D0,A0
EOR.W #%1100000000000000,D5 ;assembles the same as EORI.W #%1100000000000000,D5
CMP.W myAddress,D4 ;assembles the same as CMPM.W myAddress,D4</lang>
 
If you use <code>MOVE.W</code> with an address register as the destination, the CPU will sign-extend the value once it's loaded into the address register. In other words, a word that is $8000 or "more" will get padded to the left with Fs, whereas anything $7FFF or less will be padded with zeroes.
<lang 68000devpac>MOVE.W #$9001,A0 ;equivalent of MOVEA.L #$FFFF9001,A0
MOVE.W #$200,A1 ;equivalent of MOVEA.L #$00000200,A1</lang>
 
=={{header|Ada}}==