Найти тему

Пишем "Hello, world!" на ассемблере

Оглавление

Приветствую!

Ассемблер, как многим кажется, очень сложен.
Как человек, который использует его как основной метод связи с компьютером, скажу "Нет". И в данной статье попутно объясню, почему его считают сложным. Поехали!

1. Почему многие считают ассемблер сложным?

Это пошло из-за его не читабельных с первого взгляда команд, непонятных значений и так далее.
На самом же деле, он не сложнее в изучении чем тот же C++.

2. Пишем первую программу на ассемблере

Я бы мог вам показать работу с популярными ассемблерами, такими как NASM/FASM(на которых я и пишу свой код), однако они слишком сложные для новичков. Давайте рассмотрим высокоуровневый ассемблер MASM(Macro Assembler).

  • P.S. Высокоуровневый ассемблер - Ассемблер, который в большинстве ситуаций очень похож(а иногда и не отличим) от высокоуровневого языка программирования.

Итак, для начала давайте скачаем MASM с сайта https://www.masm32.com/download.htm, а именно его 32-битную версию.
Почему спросят некоторые. А всё просто - 32-битная версия MASM поддерживается не только в 64-битных операционных системах, но и в 32-битных. Про 64-битную версию тоже самое сказать нельзя.

Далее устанавливаем его - и всё. Мы готовы написать первую программу на MASM!

.386 ;Для того, чтобы программа работала на большинстве процессоров
; Настраиваем тип программы
.model flat, stdcall
option casemap :none
; Импортируем нужные библиотеки
include \masm32\include\masm32.inc
include \masm32\include\kernel32.inc
include \masm32\macros\macros.asm
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\kernel32.lib

; Пишем код!
.code
start: ;"Функция" start, выполняется первой
print "Hello world" ; Вывод
exit ; Выход из программы
end start ;Конец "функции" start

Можете вставить этот код в любой доступный файл.

Компилируем, и... Вуаля!

У вас конечно же не будет ожидание клавиши, так как у меня специально настроенная командная консоль. Но вы можете добавить команду waitkey.

Вот и всё!
Конечно же, это не сравнишь с Java/Python, но это точно не то, что вы думали.

На этом всё!
Всем удачного времяпровождения,

Тимофей.