I am trying to understand how the assembly language works for a micro-computer architecture class, and I keep facing different syntaxes in examples:
sub $48,
Thats not Intel syntax, its AT&T syntax, also called GAS syntax.
the $ prefix is for immediates (constants), and the % prefix is for registers (they are required1).
For more about AT&T syntax, see also the [att] tag wiki.
1 Unless the noprefix option is specified, see here & here. But usually noprefix is only used with .intel_syntax noprefix, to get MASM-like syntax.