Команды ассемблера | OTUS

Команды ассемблера

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

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

Синтаксически команда компонуется из нескольких частей: • mov — пересылка данных. Команда выполняет копирование содержимого одного операнда в другой; • lea — служит для вычисления эффективного адреса операнда-источника, сохраняет этот операнд-источник в регистре; • cmp — обеспечивает сравнение 2-х операндов; • jmp, jne, je, jle и пр. — это безусловные и условные переходы к меткам. К примеру, jump @exit обеспечит переход к метке exit (это безусловный переход); • nop — 1-байтовая команда, которая сама по себе ничего не делает, а лишь занимает место, а также время. Для чего используется? Ну, например, в целях создания задержки в программе либо в качестве заполнителя удаленных инструкций; • и другие.

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

Также необходим комментарий. Он нужен для удобства чтения программного кода и прописывается после точки с запятой.

Для обозначения участка кода используются метки. Они не только могут улучшать читаемость кода, но и обеспечивать переход к отмеченному участку.

Например:

mov ax, 0 ; Поместим значение 0 в регистр ax

Что тут что: • mov — команда по перемещению значения из одного операнда в другой; • ax, 0 — операнды регистра и значения; • ; <текст> — соответственно, комментарий.

Можно рассмотреть и другой пример, на этот раз возведем число в степень в ассемблере:

1-1801-e60b51.png

То же самое, но на высокоуровневом языке программирования, том же «Си», будет выглядеть иначе:

pow (2, 3);

По материалам https://habr.com/ru/users/pentestit-ru/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто