Подтвердить что ты не робот

Язык ассемблера - несколько типов?

Я начинаю университет через несколько недель (степень разработки программного обеспечения) и знаю, что одним из модулей, которые я буду изучать в первый год, является "основы архитектуры" или что-то подобное; в основном он учится программировать в "сборке".

Я хочу сделать какое-то фоновое обучение, поэтому я готов к этому (я сделал то же самое на некоторых других устройствах), но не знаю, существует ли более одного "ассемблера". Сколько их там? Это один для каждого производителя, 32-разрядный и 64-битный язык или только один стандарт?

Если существует более одного типа, что является самым "популярным" или, скорее всего, будет преподаваться на университетском уровне?

4b9b3361

Ответ 1

Существует много разных типов ассемблерных языков. В настоящее время самыми популярными являются ARM, MIPS и x86. ARM используется на многих сотовых телефонах и многих встроенных системах. MIPS популярен среди процессоров IBM и найден в таких системах, как Mac, некоторые игровые приставки и несколько, я уверен, что мне не хватает. Ассемблер x86 используется на компьютерах Intel. Каждый аромат имеет разные версии, которые охватывают гаммут от 16-битных до 64-битных инструкций. Дело в сборке - это старые архитектуры, которые, как правило, умирают, и появляются новые, но основные вещи, которые делают системы стиля RISC, в основном одинаковы. Это просто вопрос изучения мнемоники между системами. Move, Mov, Load и т.д. Все загружают регистр со значением. Это похоже на любой другой язык. Как только вы изучите его, довольно легко подобрать новые. Некоторые из старых, с которыми вы можете столкнуться, - это Z80, 68000, 6502 и 6510 - в зависимости от того, как далеко назад вы возвращаетесь назад.

Надеюсь, что это поможет.

Ответ 2

но не знаю, существует ли более одного языка ассемблера

Различные ассемблеры (например, Gnu и Microsoft) для одного и того же CPU могут иметь разные синтаксисы языка ассемблера; но разница тривиальна, потому что они оба нацелены на один и тот же CPU, и там сопоставление 1 к 1 (если вы игнорируете макросы) между инструкциями по сборке и кодами операций CPU.

Большая разница между различными типами процессоров.

Иногда разные ЦП поддерживают одни и те же коды операций (и поэтому могут быть нацелены на одни и те же сборщики), потому что они предназначены для совместимости или конкуренции друг с другом, выполняя один и тот же машинный язык.

Но иногда они разные: см. Список архитектур набора инструкций.

Ответ 3

В общем:

  • должен быть хотя бы один совершенно другой язык ассемблера для каждого типа процессора (поскольку язык ассемблера напрямую связан с машинным кодом).

  • для каждого из них может быть 2 или более категорий ассемблера (например, "Синтаксис Intel" против "Синтаксис AT & T").

  • для каждого из них может быть много диалектов с незначительными вариациями в синтаксисе для инструкций, совершенно разных препроцессоров и совершенно разных директив.

Если (используя случайные числа, извлеченные из воздуха) вы предполагаете, что существует 50 различных типов процессоров, в среднем 1,5 категории используются для каждого процессора и в среднем 2 диалекта на категорию; тогда это работало бы на 150 различных языках ассемблера.

Ответ 4

Что такое сборочные языки? написать какие-нибудь два преимущества языка высокого уровня? что вы подразумеваете под компилятором? Зачем вам нужно конвертировать нашу программу на машинный язык?