Будьте осторожны, понимайте, что языки ассемблера, как правило, не стандартизированы так, как многие языки более высокого уровня, поэтому вопрос довольно расплывчатый, вы даже не указали набор инструкций. Тег masm32 подразумевает x86 (этот тег был добавлен для вас).
Похоже, вы хотели x86 и конкретное подмножество семейства masm для ассемблеров.
Сборка обычно определяется ассемблером, инструментом, а не набором команд. Поэтому, когда вы хотите узнать, как работает язык ассемблера или его правила, вы должны взглянуть на самого ассемблера. Его документация, если таковая имеется, или если она достаточно хороша, если нет, вам придется экспериментировать.
У меня нет под рукой masm32, мне нужна некоторая боль, но у меня есть другой легко доступный ассемблер, и вы можете экспериментально ответить на свой вопрос. (как уже отмечалось в другом ответе, да без h в маске по умолчанию используется десятичное число)
mov al,10h
mov al,0x10
mov al,10
который разбирает на
00000000 B010 mov al,0x10
00000002 B010 mov al,0x10
00000004 B00A mov al,0xa
В этом случае не указано означает, что по умолчанию используется десятичная дробь, чего вы должны ожидать, по крайней мере, для инструкций от masm.
Синтаксис без инструкций, который также является частью языка ассемблера, может иметь правила синтаксиса, отличные от инструкционной части языка. Можно было бы надеяться, что инструмент использует одни и те же правила для чисел, но вы никогда не знаете.
Аналогично, могут существовать инструкции, которые используют немедленное значение в качестве смещения для регистра, а не значение, загружаемое в регистр, можно надеяться, что эти непосредственные значения / значения также следуют тем же правилам.
Лучше всего экспериментировать и быть уверенным, а не надеяться, что руководство или веб-страница полны и правильны.
К вашему заглавному вопросу, который опять-таки очень расплывчатый, да, есть ассемблеры, которые понимают восьмеричные, десятичные и шестнадцатеричные (и, возможно, другие основания, такие как основание 2), не обязательно все в одном инструменте, и не ограничиваются x86, так как Титул вопроса не имеет. И то, что они по умолчанию и какой синтаксис требуется, чтобы указать базу, является специфическим для каждого инструмента. Точка, являющаяся языком ассемблера, не похожа на другие языки программирования, не может обобщать язык ассемблера Для кого-то было бы просто создать новый ассемблер для какой-то цели, которая не соответствует обобщению, но была бы совершенно полезным инструментом.