PISYA
Язык программирования – условная запись команд для процессора в виде кода, по специальным правилам. Языки делятся на два уровня: верхний и нижний.
Верхний уровень – легкие и новые языки с ограниченным функционалом.
Примеры: JS, C#, Ruby, Python, SQL.
Скрин JSа
Нижний уровень – старые языки с доступом ко всем ресурсам компьютера. Примеры: ассемблер, Cil.
Процессору неважно на каком языке написанна программа, но чтобы он её получил, нужно перевести ее в двоичныйы код. ЯП верхнего уровня переводятся сначала в нижний уровень, потом машнинный код. ЯП нижнего уровня сразу в машинный.
Мы будем изучать ассемблер, потому что он популярней и универсальней CIlа.
Описание и примеры CILа можно прочититать на Хабре.
Ассемблер – программа переовда языка в двоичный или шестнадцатиричный код и трансляции в процессор.
Ассемблер – программа переовда языка в машинный или же в двоичный код.
Для операций в ассемблере отведены специальные регистры, их всего 8:
AX – такой то для того то
BX –
....
...
Сюда вот пример ассемблера с комментариями)
Языку ассемблера доступны все регистры и команды компьютера. Например, на языке ассемблера можно проверить бит переполнения в регистре, а на Java или python нет.
Работа программы на разных ОС зависит от вида ассемблера на котором она написана. Ниже, поддержка ОСками разных видов ассемблера.
Программы на ассемблере пишут по двум причинам
Производительность программы.
Программа на ассемблере занимает меньше памяти и работает быстрее, чем программа на языке высокого уровня. Например, встроенные приложения смарт-карт, драйверов устройств и процедур BIOS написаны на ассемблере.
Прямой доступ к железу.
Программа на ассемблере имеет доступ ко всему железу компьютера.Например, обработчики прерываний и исключений операционок и контроллеры устройств.