Я беру класс сборки, и экзамены идут, поэтому я должен спросить, каков стандартный формат и структура исходного кода на неструктурном языке, таком как сборка (специфичная для 8086)? В настоящее время мне нравится форматировать код, как показано ниже, со всем, что выполняется после метки в новом столбце вкладки, и не использовать ненужные метки, которые я не буду использовать позже.Формат сборки и структура кода
code segment
start:
mov ax,data
mov ds,ax
mov cx,2
label1:
mov dl,'a'
mov ah,2
int 21h
loop label1
mov ah,4ch
int 21h
code ends
Но мой профессор делает то, что я нахожу совершенно смешным. Он форматирует код, как показано ниже, используя ненужные ярлыки и не с помощью вкладок для меток:
PRINT_HEX PROC
H1: MOV BP,SP
MOV CX,4
H2: MOV BX,[BP+2]
H3: XOR DL,DL
PUSH CX
MOV CX,4
H4: SHL BX,1
RCL DL,1
H5: LOOP H4
POP CX
H6: CMP DL,9
JA GRAMMA
ADD DL,48
JMP H7
GRAMMA: ADD DL, 55
H7: MOV AH,2
INT 21H
H8: LOOP H3
H9: RET
PRINT_HEX ENDP
Конечно, он, очевидно, знает больше, чем я о сборе, но его путь кажется мне неправильным. Каков стандартный способ форматирования кода на языках с метками?
Отступ в сторону, лично, посторонние ярлыки меня тоже меняют, особенно так бессмысленно, как в последнем коде. Вы уверены, что он просто не добавляет их, чтобы он мог легко обращаться к конкретным инструкциям во время обучения? –
Существует много стилей, как на любом другом языке (и неизбежные пламенные войны, которые следуют). Самая схема комментариев - это метки в крайнем левом столбце с отступом. Некоторые ассемблерные парсеры применяют это соглашение. Ваш вариант, безусловно, также используется, часто в сочетании с макро пакетами, обеспечивающими базовые структуры управления. Должен признаться, я никогда не видел, чтобы кто-либо без разбора маркировал каждую строку раньше, хотя – doynax
@JoachimIsaksson, нет, он не ссылается на них позже, в приведенном выше коде, который вы не можете видеть, но он просто кладет их туда, чтобы разделить сегменты кода, которые аналогичны вещи, как если бы у него было 3 строки, которые печатали символ, он бы поставил эти 3 строки вместе под лейблом. – SteveL