Другие языки программирования и технологии

в чем суть ассемблера и дизассемблера?

Dima Peri
Dima Peri
270
начнем с начала))) )
У процессора есть набор определенных комманд
например mov ax,dx - пересылает значение регистра dx в регистр ax и тд... .
естественно сам процессор (как электронное устройство) эти команды воспринимает не в таком, а в бинарном виде (нулями - единицами) . И каждая команда шифруется в последовательность байтов. Это и есть машинный код.
Но в машинном коде сложно программировать (попробуй-ка запомни как там все шифровать) , поэтому пользуются языком "ассемблер", и компиллятор для его перевода в машинный код. И ассемблер является базовым языком программирования, или языком программирования процессора.
У процессора комманд не так и много, и для того, чтобы реализовать несложный алгоритм необходимо написать множество комманд. Это долго. Поэтому создали высокоуровневые языки (Pascal, C/C++ и тд) . Их компилляторы переводят код в ассемблер, а затем в машинный код.
Дизассемблер переводит машинный код в язык ассемблера. Любой машинный код (приграмму) данной архитектуры процессора можно дизассемблировать (т. к. это просто расшифровка) . Чего нельзя сказать о высокоуровневых языках (т. к. они по разному переводят свой код в машинный) .
Надеюсь я понятно объяснил)))))
ДУ
Дулат Уразалин
4 830
Лучший ответ
Ассемблер - программа, переводящая в машинный код текст на примитивном языке программирования, основанном на замене написания машинных кодов команд процессора и данных их буквенно-цифровыми обозначениями, которые легче понимаются и запоминаются.
Вот и все.
На самом деле есть некоторые усовершенствования, например, возможность обозначить последовательность нескольких команд одним словом и вдальнейшем применять его вместо написания этих команд, но сути это не меняет.
А дизассемблер - программа, которая по машинному коду восстанавливает буквенно-цифровые обозначения команд, принятые в ассемблере, то есть переводчик в обратном направлении.
как видно из перевода этих слов - ассемблер - собирает нечто в единое целое (например программу) - дизассемблер - разбирает.
Виктор Журихин
Виктор Журихин
99 414
ассемблер компелирует код в машинный код, дизассемблер машинный код в код ассемблера.
Ассемблер - язык программирования очень низкого уровня (машинный код) . Ниже него, насколько я знаю, только нолики и единички =))
Дизассемблер - скорее всего вы это видели в какой-то среде разработки. там с помощью дизассемблирования можно посмотреть на языке ассемблер то, что конкретно происходит в вашей программе вплоть до тактов процессора.
Айназ Ризаев
Айназ Ризаев
1 914