Форматирование ассемблерных исходников (Intel-синтаксис). Больше всего тестировалось на NASM, но и для TASM-MASM-FASM сгодится. Известные проблемы:
 indent_left: 
indent_left, число, отступ в пробелах от левого края:
label:
    mov eax,ebx     ; 4
      xchg eax,ebx  ; 6
 indent_comma: 
indent_comma, число, отступы между запятой и вторым операндом, по умолчанию 0:
    mov eax,ebx     ; 0
    xchg eax, ebx   ; 1
    add eax,  ebx   ; 2
 indent_tail_comment: 
indent_tail_comment, число, отступ между комментарием в хвосте строки и командами (выравнивается по самой длинной строке кода с комментарием):
    mov eax,ebx                ; 1
    lea edi,[esi+eax+12345678] ; 1

    mov eax,ebx                   ; 4
    lea edi,[esi+eax+12345678]    ; 4
 indent_operands: 
indent_operands, что делать после инструкции при наличии операндов. Возможные значения: N, вставлять N пробелов:
    lea eax,[edi]    ; 1
    lea    eax,[edi] ; 4
tabN, выравнивать по левому краю инструкции, вставляя необходимое количество пробелов до N. Если длина инструкции больше N — игнорировать.
    dec  ebx        ; tab5
    movzx esi,al    ; игнорируем

    dec    ebx        ; tab7
    movzx  esi,al     ; tab7
    punpckldq mm1,mm2 ; игнорируем
 unaligned_comments: 
unaligned_comments, что делать с однострочными комментариями, которые не прижаты к левому краю:
  • left: прижимать влево
  • right: выравнивать вправо в соответствии с параметром indent_left
  • nothing: оставлять как есть
 del_empty_lines: 
del_empty_lines, удалять или нет пустые строки:
  • all: удалять все
  • yes: все, идущие подряд, кроме одной
  • no: не удалять
 user_names: 
user_names, пользовательские имена, которые не считать метками и не прижимать влево. Например, Invoke. Разделители - пробел, перевод строки, запятая, точка с запятой, регистр не учитывается.