Строкові операції в асемблері

портал освітніх ресурсів

Рядкові операції називають ланцюжковими або операціями над ланцюжками байтів.

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

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

REP-повторювати, доки вміст ECX не звернеться в 0

REPE/REPZ-повторювати поки що одно/нуль. Даний префікс змушує виконувати рядкову команду доти, доки вміст ECX не звернеться в 0

REPNE/REPZ-повторювати поки що не одно/не нуль. Даний префікс змушує виконувати рядкову команду доти, доки вміст ECX не звернеться в 0

1.Команди пересилання

2.Команди порівняння

CMPSB – порівняння рядків байтів.

CMPSW – порівняння рядків слів.

CMPSD - порівняння рядків подвійних слів

3.Команди пошуку(сканування)

SCASB – сканування рядка байтів.

SCASW - сканування рядка слів

SCASD - сканування рядка подвійних слів

4.Команда читання з рядка

LODSB – читання байта з рядка.

LODSW - читання слова з рядка.

LODSD – читання подвійного слова з рядка.

5.Команда запису в рядок

STOSB - запис байта у рядок.

STOSW - запис слова у рядок.

STOSD - запис подвійного слова у рядок.

6.Команда читання/запису рядка з порту

При використанні префіксів (REP, REPZ/REPE, REPNZ/REPNE) дія команд поширюється на ланцюжки байтів.

Використання рядкових команд