http://poradumo.pp.ua

Online Журнал-Світ порад.
Головна сторінка
» » Асемблер – команди для початківців низькорівневих програмістів

Асемблер – команди для початківців низькорівневих програмістів

Всі команди можуть бути виконані тільки за допомогою машинної мови. Асемблер-команди – символічне подання цієї мови. З його допомогою пишуть невеликі, але дуже швидкі програми. Але, незважаючи на їх розмір, процес написання дуже трудомісткий.

Асемблер – команди для початківців низькорівневих програмістів
Тому команди асемблера використовуються для роботи з апаратної складової, або коли на виконання програми критично не вистачає пам'яті. Тому код асемблера оформляється у вигляді підпрограм і інтегрується з кодом високого рівня. Так як асемблер може сильно відрізнятися в залежності від типу архітектури, то слід розглянути його для конкретного випадку, в цій статті це архітектура Win. Але опис команд асемблера, як правило, сильно не міняється, і використовувати їх можна і в мікроконтролерах, і в інших приладах електроніки, для яких використовується асемблер.
Асемблер – команди для початківців низькорівневих програмістів




Арифметичні команди, що застосовуються в асемблері

Незважаючи на такий парадокс, як універсальність, всього 4 арифметичні команди асемблера є і можуть використовуватися програмістами. Але тим не менш допомогою них створювалися високорівневі мови програмування, на яких працюють комп'ютери, побутова техніка, телефони, смартфони, ноутбуки і т. д. Працювати з ними можна, і досить успішно. Список команд асемблера такий:

  • додавання;
  • віднімання;
  • множення;
  • поділ.

Додавання

Арифметична операція, відома ще зі школи. Для її використання необхідно враховувати тільки особливість додавання, яка пов'язана з уявленням, що складаються чисел в пам'яті самого комп'ютера. Загальний вид операції такий:




ADD ,

Команда бере числа клітинок, складає їх разом і записує в «Ячейку1». Тепер про умови проходження операції: обидва числа з комірки повинні мати однаковий розмір. Також якщо спочатку йде регістр, то до нього можна приплюсувати все. Якщо спочатку йде осередок, то до неї можна додати або безпосередній операнд, або регістр.

Асемблер – команди для початківців низькорівневих програмістів

Опис команд асемблера та їх реалізації вимагає більш повного підходу, ніж може надати одна стаття. За команд асемблера, незважаючи на їх жалюгідне кількість, пишеться величезна кількість книг, які мають не одну сотню сторінок. Тому, незважаючи на легкість, рекомендуємо ознайомитися з більш детально описує команди роботою, яка дозволить дізнатися всі нюанси для різних архітектур.

Віднімання

Ця операція виконується за таким же алгоритмом, як і попередня. Навіть тип запису команди схожий:

SUB ,

Асемблер – команди для початківців низькорівневих програмістів
Принцип підрахунку така: з №1 віднімається значення №2 і записується на місце №1. Умови проходження операції точно такі ж, як і умови проходження операції додавання.

Множення

Якщо для поділу і складання використовувалися однакові команди, як для беззнакових, так і для знакових чисел, то при множенні і діленні для них існують різні алгоритми. Так, для множення беззнакових чисел використовується така команда:

MUL

Асемблер – команди для початківців низькорівневих програмістів
Зазначений у команді операнд є одним із співмножників. Місце другого співмножника і місце результату операції заздалегідь фіксуються, в залежності від розміру MUL в байтах. Місце їхнього розташування – тема окремої статті. Для знакового множення використовують команду:


IMUL ,

Можна зустріти й інші варіанти реалізації, але цей є більш зрозумілим і звичним. Зазначаються два співмножника, і результат поміщається в операнд №1. При цьому в якості операнда №1 виступає обов'язково регістр, а операнда №2 – регістр або комірка пам'яті. Але інші варіанти теж будуть описані:

IMUL

IMUL <операнд№1, ,

IMUL ,

Перший варіант подібний MUL по своєму пристрою, тому правила до нього можна віднести і тут. Другий варіант дозволяє явно вказати місце розташування – як результату, так і співмножника. У третьому варіанті вказується регістр, який буде першим співмножником і в якому буде поміщений результат множення. Під безпосереднім операндом мається на увазі вказівку не певного регістра, а числа, на яке буде розмножуватися операнд.

Поділ

Як вже повідомлялося вище, для поділу використовуються дві команди. Для беззнакових чисел застосовують:

DIV

Для знакових чисел використовують команду:

IDIV

Особливість застосування команд поділу полягає в тому, що використовується тільки операнд-дільник, в якості якого виступає регістр або комірка пам'яті. Ділене число завжди має своє певне місцезнаходження, яке залежить від розміру числа. Своє місце має і результат операції.

З пошуку та визначення місць можна сказати те ж, що і про примноження: необхідна окрема стаття, так як обсяг інформації досить значний.

Корисне висновок

Також до категорії "щодо корисні команди асемблера" слід віднести і команду NEG . Вона переводить знак число, яке знаходиться в операнді. Ось і все, сподіваємося, що стаття допомогла вам розібратися в арифметичних командах асемблера.

Знадобляться і операції инкрементирования і декрементирования (збільшення або зменшення операнда на одиницю). Щоб инкрементировать операнд необхідно прописати таку команду:

INC

Для декрементации слід прописати:

DEC

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

of your page -->

Популярні поради

загрузка...