Overloaded operators: Difference between revisions
Content added Content deleted
No edit summary |
Puppydrum64 (talk | contribs) No edit summary |
||
Line 16: | 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,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> |
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}}== |
=={{header|Ada}}== |