Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Отчеты по практике » Основи програмування на Асемблері

Реферат Основи програмування на Асемблері





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

Строкові команди вважають, що рядок -источник знаходиться за адресою DS: ESI (для нас це просто ESI), а рядок-пріемнікпо адреси ES: EDI (для нас просто EDI). Всі строкові команди можна розділити на шість груп:

. Команди пересилкі- копіювання рядка байтов.- копіювання рядка слов.- копіювання рядка подвійних слів

Можливий також формат MOVS приймач, джерело-в цьому випадку

асемблер за типом операндів сам визначає, яку з трьох форм команд слід вибрати. Команда копіює елемент рядки з адреси, що визначається ESI, в адресу, яка визначається EDI. Після виконання такої команди вміст ESI і EDI збільшується (прапор DF=0) або зменшується (прапор DF=1) на розмірах елемента рядка

. Команди порівняння- порівняння рядків байтов.- порівняння рядків слов.- порівняння рядків подвійних слів

. Команди пошуку (сканування) - сканування рядки байтов.- сканування рядки слів- сканування рядки подвійних слів

. Команди читання з строкі- читання байта з строкі.- читання слова з строкі.- читання подвійного слова з рядка.

Можливий також формат LODS джерело-в цьому випадку асемблер за типом операндів сам визначає, яку з трьох форм команд слід вибрати. Команда здійснює копіювання з пам'яті, яка адресується ESI, елемента в AL, AX або EAX. Після виконання такої команди вміст EDI збільшується на розмір елемента рядка

. Команда записи в строку- запис байта в рядок.

Можливий також формат STOS приймач, джерело-в цьому випадку асемблер за типом операндів сам визначає, яку з трьох форм команд слід вибрати. Команда здійснює копіювання в пам'ять, дооторая адресується EDI, елементу з AL, AX або EAX. Після виконання такої команди вміст EDI збільшується на розмір елемента рядка.

Предикати порівняння являють собою функції, які порівнюють дві величини і повертають однобітовий результат, рівний 1, якщо проверяемое ставлення істинно, і 0, якщо помилково. У цьому розділі наводиться кілька методів обчислення результату порівняння з розміщенням його в бите знака (ці методи не використовують команд розгалуження). Щоб отримати значення 1 або 0, що використовується в деяких мовах (наприклад, в C), після обчислення слід використовувати команду зсуву вправо на 31 біт. Для отримання результату - 1/0, використовуваного в деяких інших мовах (наприклад, Basic), виконується команда знакового зсуву вправо на 31 біт.

На таких машинах, як MIPS, Compaq Alpha, і нашої моделі RISC є команди порівняння, які безпосередньо обчислюють більшість відносин і поміщають однобітовий результат 0/1 в регістр загального призначення.


3. ПРОГРАМУВАННЯ З ВИКОРИСТАННЯМ MASM


Компілятори мови Assembler дещо відрізняються один від одного т.к не існує єдиного стандарту. Зазвичай для Intel сумісних процесорів використовується синтаксис команд, зазначений у документації від Intel і AMD (званий Intel), самі ж команди та їх використання описані в документації з офіційних сайтів виробників процессоров.Но, крім команд, у вихідному коді програми також зустрічаються спеціальні символи і директиви, що вказують компілятору як потрібно компілювати програму. Зазвичай, саме ці елементи програми відрізняються для різних компіляторів. Сегментні регістри використовувалися для зберігання адреси початку сегменту коду (CS - code segment), сегмента даних (DS - data segment) і сегмента стека (SS - stack segment). Регістри ES, FS і GS були додані пізніше. Існувало кілька моделей пам'яті, кожна з яких мала на увазі виділення програмі одного або декількох сегментів коду і одного або декількох сегментів даних: tiny, small, medium, compact, large і huge. Для команд мови асемблера існували певні угоди: адреси переходу сегментувати по регістру CS, звернення до даних сегментувати по регістру DS, а звернення до стека - по регістру SS. Якщо програмою виділялося кілька сегментів для коду або даних, то доводилося міняти значення в регістрах CS і DS для звернення до іншого сегменту. Існували так звані «ближні» і «далекі» переходи. Якщо команда, на яку треба здійснити перехід, знаходилася в тому ж сегменті, то для переходу достатньо було змінити тільки значення регістра IP.

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


Назад | сторінка 4 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Система команд. Структура слова команд. Синтаксис команд. Групи команд
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Команди налаштування, пошуку та усунення неполадок комутатора D-Link DES-30 ...
  • Реферат на тему: Формування команди проекту
  • Реферат на тему: Формування команди професіоналів