Мова асемблер. Команди та основи асемблера

Стек

Це область пам’яті, що виділена для роботи процедур. Особливість стека полягає в тому, що останні дані, записані в нього, доступні для читання першими. Або іншими словами: перші записи стека витягуються останніми. Уявити собі цей процес можна як башти з шашок. Щоб дістати шашку (нижню шашку в основу вежі або будь-яку в середині) потрібно спочатку зняти все, що лежать зверху. І, відповідно, остання покладена на вежу шашка, при розборі вежі знімається першої. Такий принцип організації пам’яті і роботи з нею продиктований її економією. Стек постійно очищається і в кожен момент часу одна процедура використовує його.

Ідентифікатори, цілі числа, символи, коментарі, еквівалентність

Ідентифікатор в мові програмування асемблер має такий же зміст, як і в будь-якому іншому. Допускається використання латинських літер, цифр і символів “_”, “.”, “?”, “@”, “$”. При цьому великі та малі букви еквівалентні, а точка може бути тільки першим символом ідентифікатора.

Цілі числа в асемблері можна вказувати в системах відліку з підставами 2, 8, 10 і 16. Будь-яка інша запис чисел буде розглядатися компілятором асемблера в якості ідентифікатора.

В запису символьних даних допускається використовувати як апострофи, так і лапки. Якщо в символьній рядку потрібно вказати один з них, то наступні правила:

  • у рядку, укладену в апострофи, лапки зазначаються один раз, апостроф – двічі: ‘can”t’, ‘ he said “to be or not to be” ‘;
  • для рядка, взятим у лапки, зворотне правило: дублюються лапки, апострофи зазначаються як є: “couldn’t”, ” My favourite bar is “”Black Cat”” “.

Для вказівки коментування в мові асемблера використовується символ крапка з комою – “;”. Допустимо використовувати коментарі як на початку рядків, так і після команди. Закінчується коментар переведенням рядка.

Директива еквівалентності використовується схожим чином, як в інших мовах вказують константные вираження. Еквівалентність вказується наступним способом:

<name> EQU <operand>

Таким чином в програмі всі входження <name> будуть замінюватися на <operand>, на місці якого допустимо вказувати ціле число, адреса, рядок або інше ім’я. Директива EQU схожа по своїй роботі на #define у мові С++.