блог об информационных технологиях: софт, железо, интернет, услуги, советы

Я в программеры пойду, пусть меня ассемблеру научат

В ссузах и вузах обычно изучают высокоуровневые языки программирования: Pascal+Delphi, C++, C#, Java, JavaScript+PHP и т.п. При этом низкоуровневый язык Assembler изучают гораздо реже.

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

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

К примеру, на Pascal нужно всего три строки, чтобы вывести на экран фразу «Hello world».

Begin
Write('Hello world');
End.


А вот сколько всего нужно написать, чтобы эту же фразу изобразить на ассемлере, используя среду разработки MASM32.

.386
.model flat, stdcall
option casemap: none
 
include /masm32/include/windows.inc
include /masm32/include/user32.inc
include /masm32/include/kernel32.inc
 
includelib /masm32/lib/user32.lib
includelib /masm32/lib/kernel32.lib
 
.data
msg_title db "Title", 0
msg_message db "Hello world", 0
 
.code
start:
invoke MessageBox, 0, addr msg_message, addr msg_title, MB_OK
invoke ExitProcess, 0
end start


Азы работы на ассемблере вы можете подчерпнуть на сайте Evilinside.ru, где рассматриваются практические примеры, такие как сложение двух чисел, циклы, сумму элементов массива. Также здесь рассматривается MariaDB — открытая система управления базами данных, базирующаяся на MySQL и ряд других вопросов по программированию.

Например, среди заметок на сайте Evli Inside вы узнаете про Laravel — интуитивной понятный PHP-фреймворк; как создавать клиенты для мессенджера с помощью Core API Telegram; почему контейнеризацию приложений в Linux лучше делать с помощью Docker; что такое Highload: сервисы с высокой нагрузкой; как оптимизировать и повысить производительность MariaDB MySQL-серверов внутри Docker и многие другие вопросы, которые будут интересны тем, кто начинает изучать программирование.




 

Комментарии