Что нового
Последние опубликованные страницы.
-
Системные вызовы
вызовы</h1 Здесь перечислены наиболее важные системные вызовы, которые используются при работе с Linux. Помните, что %eax хранит номера системных вызовов, и что возвращаемые значения и коды ошибок так…
-
подпрограммы
Подпрограммы Общие принципы Подпрограммой называется некоторая обособленная часть программного кода, которая может быть вызвана из главной программы (или из другой подпрограммы); под вызовом в данном …
-
Стек, подпрограммы, рекурсия
Понятие стека и его предназначение Под стеком в программировании подразумевают структуру данных, построенную по принципу ПОСЛЕДНИЙ ВОШЁЛ - ПЕРВЫЙ ВЫШЕЛ (LIFO, last in first out), т.е. такой объект, на…
-
sub
Команда имеет два операнда, причём первый из них задаёт и одно из чисел, учавствующих в операции, и место, куда следует записать результат; второй операнд задаёт второе число (вычитаемое) для операции…
-
neg
Команда neg имеющая один операнд, обозначает смену знака, т.е. операцию унарный минус. Обычно её применяют к знаковым числам; тем не менее, она устанавливает все четыре флага ZF, OF, SF и CF, как если…
-
Мнемокод mov
Варианты использования команды mov: mov eax, ebx mov eax, 5 Первый вариант копирует содержимое одного регистра в другой регистр, тогда как второй вариант заносит в регистр некое число, заданное непоср…
-
jmp (безусловный переход)
Команда jmp (от слова jamp - прыгать) говорит процессору немедленно перейти к ячейке, указанной в операнде команды.
-
int (программные прерывания)
Пользовательской задаче не позволяется делать ничего, кроме преобразования данных в отведённой ей памяти. Все действия, затрагивающие внешний по отношению к задаче мир, выполняются через операционную …
-
Список мнемокодов
Директивы резервирования неинициализированной памяти (стр. 42) resb, resw, resd Директивы задания исходных данных (стр. 43) db, dw, dd Копирование данных mov (копирование) Математические операции add …
-
inc
inc
-
cmp
Команда cmp (от слова compare - сравнить) производит точно такое же вычитание, как и команда sub, за исключением того, что результат никуда не записывается. Команда вызывается ради установки флагов, о…
-
add
add eax, ebx означает взять значение из регистра EAX, прибавить к нему значение регистра EBX, а результат записать обратно в регистр EAX .
-
Условные переходы по меткам
переходы по меткам</h1ОС - Ubuntu 18.04.3 LTS синтаксис языка - AT&T компилятор - GNU ассемблер, версия 2.30 (x86\ 64-linux-gnu) компоновщик - GNU ld 2.30 asm НАЗНАЧЕНИЕ: Эта программа находит мак…
-
Ассемблер
Описание GNU Assembler Установка инструментария host apt-get install binutils Регистры RAX/EAX (Accumulate) - регистр общего назначения. Функции записывают в него результат. RCX/ECX (Counter) - регист…
-
HELLO WORLD!
Итак. Это моя первая программа, написанная на Ассемблере. Точнее сказать скопированная с одного из замечательных сайтов, но я ввёл её сам, сам откомпилировал и скомпоновал. И, о чудо, она заработала. …
-
Функция
Конечно можно писать программы, которые будут содержать только одну секцию кода. Однако, если писать так реальные программы, то будет невозможно поддерживать их. Будет реально тяжело чтобы несколько ч…
-
Определения в ассемблере
машинный код это программа, которая представлена в виде понятном центральному процессору машинная команда это то, из чего состоит программа в машинном коде регистр электронное устройство в составе цен…
-
Указатель на вершину стека (регистр RSP)
Указатель на вершину стека (регистр RSP)
-
Регистр RIP
Регистр указателя инструкции (RIP) содержит смещение в текущем сегменте кода для следующей инструкции, которая будет выполняться. Его назначение в перемещении от одной инструкции к другой в прямолиней…
-
Регистр RFLAGS
Верхние 32 бита регистра RFLAGS зарезервированы, а нижние соответствуют 32-битному регистру EFLAGS. Поэтому я буду рассматривать только биты регистра EFLAGS. Регистр EFLAGS содержит группу статусных ф…