If you haven't already, take a look at the
Assembly language list on the
Language Resources Thread in the message board.
Is the Mac in question an Intel model or a PowerPC model? The two processor types are radically different; learning the assembly language for one won't help in learning the other, except in familiarizing yourself with assembly language in general. If you have a choice, you might want to learn the PowerPC assembly first; while it doesn't apply to as many systems as the x86 assembly, and there aren't as many resources for it, it is a lot easier to learn. The languages are different, but many of the
concepts you need to grasp for them are the same or at least similar.
Alternately, you might want to start out using MIPS assembly, with a simulator like
SPIM. Again, it won't help you with PC programming directly, but it is
much easier to learn; if you learn PowerPC or MIPS first, you'll find learning x86 a lot easier, since many of the ideas are easier to understand in those. The Intel assembly language is a real bear to learn, and the more you can learn about assembly languages in general first, the better time you'll have of it.
When you are learning the Intel assembly (now or later) you'll also need to choose which assembler you're going to use - they all take different syntaces, some of them radically different from each other. For both Intel Macs and Linux PCs, there are two widely used assemblers:
GNU Assembler and
Netwide Assembler. Gas is designed primarily for use as the assembly pass in GCC; it uses the AT&T style syntax, and is less designed for supporting programming in assembly
per se, but it is flexible and works cleaner with GCC and the Binutils toolchain than NASM does. NASM is a user-driven project for an assembler comparable to, but simpler than, Microsoft Macro Assembler; it is very popular, and seems to be in active development again after having languished for a few years.
Keep in mind that even if the Mac is an Intel model, an assembly language program written for the Mac is not going to run on Linux, and vis versa, even if you are using the same assembler, because the system interfaces are different. It may be possible (unlikely, but possible) that the same source code could be used for both, given that they are both Unix-type systems and have some system calls and so forth in common, but any non-trivial assembly program will use system-specific features.