Some common SPARC assembly errors - and what they will look like missing symbol /var/tmp/ccdWtiwt.o: In function `main': /var/tmp/ccdWtiwt.o(.text+0x10): undefined reference to `loop' collect2: ld returned 1 exit status multiply-defined symbol (note the line number in the second message) test.s: Assembler messages: test.s:15: Fatal error: Symbol loop already defined. forgot to use % to mark registers (note the line number) test.s: Assembler messages: test.s:12: Error: Illegal operands forgot to run m4 test.s: Assembler messages: test.s:2: Fatal error: Unknown opcode: `define(ptr_r,l0)' didn't use quotes when redefining a register name macro (e.g., in the main routine of your program you use define(ptr_r,l0), then in a subroutine you use define(ptr_r,o0); but, since the second define doesn't use ptr_r in quotes, that symbol remains defined as l0.) later in the semester, you might encounter these... used "mov x,%o0" instead of the proper "set x,%o0" /var/tmp/ccs3HM3o.o: In function `main': /var/tmp/ccs3HM3o.o(.text+0x4): relocation truncated to fit: R_SPARC_13 data collect2: ld returned 1 exit status forgot to use .section ".data" directive and then you store to data that is assembled into the default ".text" section Segmentation fault (core dumped) load/store to unaligned operand Bus error (core dumped)