Доброго времени суток, наша рубрика начнется именно с этой темы, в которой мы выполним сложение 2 чисел в Assembler и поверьте: сделать это не так легко, как кажется. Ну и следует отметить, что мы будем разбираться с самых азов, поэтому даже такие примеры стоит разобрать.
Также напомню, что мы работаем в MASM32, и соответственно, вам необходимо его установить. Как это сделать, мы рассказывали в прошлой статье по Assembler.
Как создавать файлы Assembler
Прежде чем привести вам код программы, думаю, не лишним будет написать как и где прописывать код:
1. Создать любой файл с расширением .txt
Не так важно с помощью какой программы вы это сделаете(блокнот, Notepad, и тд)
2. Пишем сам код в этом файле(пример кода будет ниже)
3. Переименовываем этот файл в файл с расширением .asm
4. Перемещаем файл в папку BIN(папка, которую использовали в 1 статье)
Код сложения чисел на Assembler
Ну и собственно небольшой код программы:
.386 .model flat,stdcall .data .code start: mov eax,3 add eax,2 ret end start
Ну что ж, вот так вот выглядит код на Assembler.
Первые 2 строчки являются обязательными для MASM, поэтому их мы будем писать в каждой программе. Они обозначают тип процессора и модель памяти с которой мы работаем.
Третья строчка — это раздел переменные( после этой строки, должны объявляться переменные), как вы видите, у нас в этой программе не будет переменных.
Четвертая — раздел кода. В нашей программе, мы помещаем в регистр eax значение 3, а затем с помощью add(прибавить) добавляем 2, логично, что теперь в этом регистре будет храниться значение 5.
Кто не знает, что такое регистр, то вам лучше почитать об этом здесь.
Затем идет команда ret, которая говорит о выходе из программы и сам выход end start.
Как запускать программы
Итак, мы имеем файл с расширением .asm, лежащий в папке BIN.
Поздравляю вас, это первый код на Assembler!
Но все же, пока не очень понятно, как нам проверить: работает ли программа(то есть скомпилировалась ли она и может ли запускаться)?
Для этого мы ее сейчас и запустим:
1. Запускаем командную строку(прописать cmd в поиске, ну или другим способом)
2. Перейти в папку BIN с помощью команды cd
У меня эта команда будет выглядеть так: cd C:\Users\Никита\BIN
3. Пишем следующую запись: amake.bat имя файла(без расширения)
Я прописываю: amake.bat first
Также напомню вам, что это сработает только при правильно установленном MASM32, в предыдущей статье мы об этом говорили.
Жмем enter
Если ошибок не возникло то у вас появится что то вроде этого:
Запуск отладчика OLLYDBG
Программа скомпилировалась, а это уже хорошо, теперь нам нужно проверить как она сработала, вдруг она не сложила 2 числа.
Для этого в папке BIN открываем наш отладчик(который устанавливали в 1 статье) OLLYDBG.
В отладчике открываем файл программы (file > open first.exe), и видим наш код уже с другой стороны:
Так как мы работаем с регистром eax, то именно его значение и будем отслеживать.(в правом окне, 1 значение регистров)
Итак, чтобы пошагово прогнать нашу программу нужно нажать на 4 синию кнопку слева.(стрелка вниз с 3 точками)
После 1 нажатия, значение в eax стало равно 3, после 2 нажатия — 5.
Наша программа работает верно!
Итак, казалось бы простая программа сложения 2 чисел на Assembler, а сколько всего узнали! На сегодня все, оставляйте свои комментарии, если у вас есть вопросы или пожелания.
Скачать исходники
Будьте первым, кто оставит комментарий