Ассе́мблер (от англ. assembler — сборщик) — транслятор программы из текста на языке ассемблера, в программу на машинном языке.
Как и сам язык, ассемблеры, как правило, специфичны для конкретной архитектуры, операционной системы и варианта синтаксиса языка, поскольку работают с мнемониками машинных инструкций определённого процессора. Вместе с тем, ассемблеры могут быть мультиплатформенными или вовсе универсальными, то есть работать на разных платформах и операционных системах. Среди ассемблеров можно также выделить группу кросс-ассемблеров, имеющих возможность собирать машинный код и исполняемые модули (файлы) для архитектур, отличных от архитектуры и/или операционной системы, в которых работает сам ассемблер (например, трансляция программы для микроконтроллера ассемблером, работающим на компьютере).
В Викисловаре есть статья «макроассемблер»
Многие современные ассемблеры являются макроассемблерами (от греч. μάκρος — большой, обширный), то есть макропроцессорами на базе языка ассемблера[1]. Кроме макросов, ассемблеры при трансляции выполняют другие директивы, набор которых зависит не от аппаратной платформы, для которой транслируется программа, а от самого используемого транслятора.
Ассемблирование может быть не первым и не последним этапом на пути получения исполнимого модуля программы. Так, многие компиляторы с языков программирования высокого уровня выдают результат в виде программы на языке ассемблера, которую в дальнейшем обрабатывает ассемблер. В свою очередь, результатом ассемблирования может быть не исполняемый, а объектный модуль, содержащий разрозненные блоки машинного кода и данных программы, из которого (или из нескольких объектных модулей) в дальнейшем с редактора связей (линкера) может быть получен исполняемый файл.
В отличие от компиляции программ на языках высокого уровня, ассемблирование является более или менее однозначным и обратимым процессом, поскольку в языке ассемблера каждой мнемонике соответствует одна машинная инструкция, в то время как в высокоуровневых языках каждое выражение может преобразовываться в большое число различных инструкций (операция, обратная ассемблированию, называется дизассемблированием). Трансляцию ассемблерных программ иногда также называют компиляцией.
Рассмотрим механическую систему, состоящую из пружины, закрепленной с одного конца, и груза массой m {\displaystyle m} , прикрепленного к свободному концу пружины. Будем считать, что груз может двигаться только в направлении оси пружины (например, движение происходит вдоль стержня). Построим математическую модель этой системы. Будем описывать состояние системы расстоянием x {\displaystyle x} от центра груза до его положения равновесия. Опишем взаимодействие пружины и груза с закона Гука (F = − k x {\displaystyle F=-kx} ), после чего воспользуемся вторым законом Ньютона, чтобы выразить его в форме дифференциального уравнения:
m x ¨ = − k x {\displaystyle m{\ddot {x}}=-kx} ,
где x ¨ {\displaystyle {\ddot {x}}} означает вторую производную от x {\displaystyle x} по времени: x ¨ = d 2 x d t 2 {\displaystyle {\ddot {x}}={\frac {d^{2}x}{dt^{2 .
Полученное уравнение описывает математическую модель рассмотренной физической системы. Эта модель называется «гармоническим осциллятором».
Ассе́мблер (от англ. assembler — сборщик) — транслятор программы из текста на языке ассемблера, в программу на машинном языке.
Как и сам язык, ассемблеры, как правило, специфичны для конкретной архитектуры, операционной системы и варианта синтаксиса языка, поскольку работают с мнемониками машинных инструкций определённого процессора. Вместе с тем, ассемблеры могут быть мультиплатформенными или вовсе универсальными, то есть работать на разных платформах и операционных системах. Среди ассемблеров можно также выделить группу кросс-ассемблеров, имеющих возможность собирать машинный код и исполняемые модули (файлы) для архитектур, отличных от архитектуры и/или операционной системы, в которых работает сам ассемблер (например, трансляция программы для микроконтроллера ассемблером, работающим на компьютере).
В Викисловаре есть статья «макроассемблер»
Многие современные ассемблеры являются макроассемблерами (от греч. μάκρος — большой, обширный), то есть макропроцессорами на базе языка ассемблера[1]. Кроме макросов, ассемблеры при трансляции выполняют другие директивы, набор которых зависит не от аппаратной платформы, для которой транслируется программа, а от самого используемого транслятора.
Ассемблирование может быть не первым и не последним этапом на пути получения исполнимого модуля программы. Так, многие компиляторы с языков программирования высокого уровня выдают результат в виде программы на языке ассемблера, которую в дальнейшем обрабатывает ассемблер. В свою очередь, результатом ассемблирования может быть не исполняемый, а объектный модуль, содержащий разрозненные блоки машинного кода и данных программы, из которого (или из нескольких объектных модулей) в дальнейшем с редактора связей (линкера) может быть получен исполняемый файл.
В отличие от компиляции программ на языках высокого уровня, ассемблирование является более или менее однозначным и обратимым процессом, поскольку в языке ассемблера каждой мнемонике соответствует одна машинная инструкция, в то время как в высокоуровневых языках каждое выражение может преобразовываться в большое число различных инструкций (операция, обратная ассемблированию, называется дизассемблированием). Трансляцию ассемблерных программ иногда также называют компиляцией.
Рассмотрим механическую систему, состоящую из пружины, закрепленной с одного конца, и груза массой m {\displaystyle m} , прикрепленного к свободному концу пружины. Будем считать, что груз может двигаться только в направлении оси пружины (например, движение происходит вдоль стержня). Построим математическую модель этой системы. Будем описывать состояние системы расстоянием x {\displaystyle x} от центра груза до его положения равновесия. Опишем взаимодействие пружины и груза с закона Гука (F = − k x {\displaystyle F=-kx} ), после чего воспользуемся вторым законом Ньютона, чтобы выразить его в форме дифференциального уравнения:
m x ¨ = − k x {\displaystyle m{\ddot {x}}=-kx} ,где x ¨ {\displaystyle {\ddot {x}}} означает вторую производную от x {\displaystyle x} по времени: x ¨ = d 2 x d t 2 {\displaystyle {\ddot {x}}={\frac {d^{2}x}{dt^{2 .
Полученное уравнение описывает математическую модель рассмотренной физической системы. Эта модель называется «гармоническим осциллятором».