> Update 9.10.2015: exec.library base address is stored in
> memory address $4. The library base address itself is not $4.
I learnt 68k assembler for the Amiga in high-school and made _exactly_ this mistake. After many "guru mediations" (the flashing red and black box) and much head-scratching I finally realized the problem.
It was a big breakthrough in my early days as a programmer and taught me a solid lesson about indirection and pointers.