View Single Post
Old 28 June 2016, 14:41   #1
son of 68k
meynaf's Avatar
Join Date: Nov 2007
Location: Lyon / France
Age: 48
Posts: 4,358
does it work everywhere or not

Hi asm guys, 040+ experts are wanted here.

That's just a few corner cases which i don't know for sure how they behave.
Upto 68030 i know, but for 68040/68060 i can't check. IIRC move16 (a0)+,(a0)+ will copy the data onto itself then increment a0 twice and i'm wondering if other stuff wouldn't behave the same...

 move.l (a0)+,(a0)+    ; copies data on next long or onto itself ?
 move.l -(a0),-(a0)    ; -4(a0) to -8(a0) then a0-=4 ?
 move.l 8(a7),-(a7)    ; dec a7 done before or after a7+8 eval ?
 move.l (a7)+,(a7)     ; "+" done before or after dest (a7) eval ?
 pea (a7)              ; pushes value "as is" or not ?
 move.l a7,-(a7)       ; always equivalent to the above ? (movem.l isn't !)
 pea 4(a7)             ; pushes a7+4 or not ?
meynaf is offline  
Page generated in 0.04512 seconds with 11 queries