Gotchas: Difference between revisions

Line 55:
<lang 68000devpac>LEA $A04000,A0 ;effectively MOVEA.L #$A04000,A0
LEA (4,A0),A0 ;effectively ADDA.L #4,A0</lang>
 
===Automatic Sign-Extension===
When moving values into address registers ''at word length'', the value is sign-extended first.
<lang 68000devpac>MOVEA.W #$8000,A0 ;MOVEA.L #$FF8000,A0
MOVEA.W #$7FFF,A0 ;MOVEA.L #$007FFF,A0</lang>
 
There is no sign-extension when moving values smaller than the data width into data registers, however.
<lang 68000devpac>MOVE.W #$FF,D0 ;MOVE.W #$00FF,D0
MOVE.L #$8000,D2 ;MOVE.L #$00008000,D2</lang>
 
=={{header|MIPS Assembly}}==
1,489

edits