Q: What does the % do? I've found no explanation for it
anywhere, and almost all of the code I see elsewhere doesn't even have
it.
A: '%' is the register prefix (like '$' for MIPS registers)
for one of the 2 well known 80x86 Assembly language syntaxs (yes,
there are 2 of them!). The instruction set is always 80x86, but there
are two different Assembly Languages. If you get assembly language
from gcc (If you got it from my server you are getting it from gcc),
you are looking at the AT&T 08x86 Assembly Language syntax.
Here is a link that explains the difference between this Assembly
Language syntax and the other one (Intel's):