I wonder what do those anarchists answered "no" think about
Code formatting is a good question. I generally try keeping it like this (although not always succeeding):
global_label: // indent: 0; for subprogram names; no other code on this line
mov eax, 5 // indent: 8, second indent: 16; space after comma
movzx eax, word[eax * 5 + 5] // no space after typename; spaces on both sides of arithmetical operations
mov dword[eax], 5 // casting memory location, not the constant operand
movzx eax, [eax + STRUCTNAME.field_name] // don't ever cast if there's no need
.local_label: // indent: 2, name starts with dot; for labels inside subprograms; no other code on this line
@@: add eax, 5 // indent: 4; unnamed labels for short jumps when logic is obvious; code immediately follows the label
This is just a short description.
Comments leave space for discussion here. Since code lines could be long enough, I prefer writing them with large (say, 60-80 chars) indent or writing them on a separate lines with indent 0 before global labels and 8 before all other code (which is, probably, a better way).
Structs/fields, constants and variables naming convention should also be discussed, at least for kernel coding.