Найти тему
Young programmer

Ассемблер и Архетиктура компьютера.

В этой короткой вводной лекции мы разберемся как устроена архитектура компьютера, и почему если вы хотите стать профессионалом в программировании, вам необходимо знать Язык Ассемблера

Отладчик Ассемблера
Отладчик Ассемблера

Для начала скажу, что Ассемблер и Язык Ассемблера — это немного разные вещи. Но чтобы понять разницу, нужно понимать, как устроена Архитектура компьютера.

Архитектура компьютера

В этой части мы не будем сильно углубляться в строение, и лишь разберем основу основ, то как составные части компьютера взаимодействуют между собой

-2

Большинство компьютеров имеет схему показанную выше или подобную ей. В этой схеме есть CPU (Процессор) который производит все вычисления. Также процессору нужна оперативная память или по другому ОЗУ (Оперативное запоминающее устройство) - в которой во время работы компьютера хранятся программы (выполняемый машинный код) , а также входные, выходные и промежуточные данные. Процессор не обращается на прямую в ОЗУ, а делает это через северный мост.

Так же через северный мост процессор обращается к графическому адаптеру (Видеокарте). Если же CPU хочет записать какие-то данные на HDD или SSD, он передает это на северный мост, который в свою очередь передает это на южный мост, который уже и обращается к дискам. Делается это для того чтобы процессор не простаивал т.к. HDD (Жесткий диск) или SSD (Твердотельный накопитель) записывают данные гораздо дольше, чем процессор делает вычисления. Еще через Южный мост происходит обращения к устройствам ввода (Клавиатура, мышь, микрофон и т.д.) и вывода (Монитор, динамик, принтер и т.д.)

Скорей всего у вас возник вопрос: "Для чего нужен северный и южный мост? Почему процессор не может выполнять их функции сам?".

Дак вот всё достаточно просто, дело в нагреве. Если вы замерите температуру в своем компьютере, то увидите, что процессор и северный мост самые горячие комплектующие. И для того чтобы не допускать перегрева, функции по передачи данных и отправке их обратно, были переданы северному мосту. Хотя современные процессоры Intel взяли на себя функции северного моста. На этом оооочень краткий экскурс по устройству компьютера закончен перейдем к Ассемблеру.

Ассемблер

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

Давайте разберемся в чем разница

Язык Ассемблера - машинно-ориентированный язык программирования низкого уровня. Представляет собой систему обозначений, используемую для представления в удобно читаемой форме программ, записанных в машинном коде.

Проще говоря это почти машинный код, написанный словами понятными человеку. Но в этом то и основная проблема так как основной способ передачи информации у людей - это текст, а у компьютеров числа. И тут на помощь приходит Ассемблер, который переводит слова понятные человеку в цифры понятные компьютеру.

Ассемблер - транслятор программы из текста на языке ассемблера, в программу на машинном языке.

-3

Язык Ассемблера по началу очень пугает особенно если вы раньше программировали на языках более высокого уровня. И кажется зачем его изучать так как он очень старый (первый ассемблер появился в 1949 году, но одной из популярных остается версия tasm от 1996 года), и есть более понятные ЯП (язык программирования) как C++ или даже Python. Но те возможности, которые дает его знание стоят потраченного на изучение и программирование времени:

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

То есть мы можем сами указывать в какую ячейку памяти будут записаны данные, какие данные и откуда получит процессор, можно даже музыку на динамике BIOS писать. Мы буквально можем командовать компьютером как маленьким ребенком. Тот, кто знает ассемблер имеет полную власть над компьютером.

А вот как писать на нем мы уже разберем в следующей статье (Спойлер: очень просто)