Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asm.doc
Скачиваний:
6
Добавлен:
09.11.2019
Размер:
913.41 Кб
Скачать

Теоретичні відомості

1. Команда безумовного переходу jmp. Типи адресів переходу short,near та far.

Команда безумовного переходу JMP.

Синтаксис : JMP мітка

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

Алгоритм роботи: Команда JMP у залежності від типу операнда (тип операнда визначається міткою та операторами безпосередньої адресації SHORT,NEAR та FAR ) змінює вміст або тільки одного регістра EIP(IP), або обох регістрів CS і EIP(IP):

  • якщо мітка в поточному сегменті команд, тоді асемблер формує машинну команду, операнд якої є значенням зі знаком, що є зсувом переходу відносно наступної за JMP команди. При цьому виді переходу змінюється тільки регістр EIP(IP);

  • якщо операнд у команді JMP — символічний ідентифікатор комірки пам'яті, тоді асемблер припускає, що в ній знаходиться адреса, за якою необхідно передати керування. Ця адреса може бути трьох видів:

  • значенням абсолютного зсуву мітки переходу відносно початку сегмента коду. Розмір цього зсуву може бути 16 або 32 біт у залежності від режиму адресації;

  • далеким покажчиком на мітку переходу в реальному і захищеному режимах, що містить два компоненти адреси — сегментний і зсув. Розміри цих компонентів також залежать від установленого режиму адресації (use16 або use32). Якщо поточним режимом є use16, то адреса сегмента і зсув займають по 16 біт, причому зсув розташовується в молодшому слові подвійного слова, що відводиться під цю повну адресу мітки переходу. Якщо поточним режимом є use32, то адреса сегмента і зсув займають, відповідно, 16 і 32 біт, — у молодшому подвійному слові знаходиться зсув, у старшому — адресу сегмента;

  • адресою в одному з 16 або 32-розрядних регістрів — ця адреса являє собою абсолютний зсув мітки, на яку необхідно передати керування, відносно початку сегмента команд.

Для розуміння різниць механізмів переходу в реальному і захищеному режимах потрібно пам'ятати наступне. У реальному режимі мікропроцесор просто змінює CSі EIP/IP відповідно до вмісту покажчика в пам'яті. У захищеному режимі мікропроцесор попередньо аналізує байт прав доступу AR у дескрипторі, номер якого визначається за вмістом сегментної частини покажчика. У залежності від стану байта AR мікропроцесор виконує або перехід, або переключення задач.

Виконання команди не впливає на регістр ознак.

Типи адресів переходу SHORT,NEAR та FAR.

При програмування мовою асемблера тип мітки переходу можна вказати безпосередньо з використанням операторів SHORT,NEAR та FAR. Оператор SHORT застосовують для здійснення коротких, NEAR ближніх(в межах сегменту) та FAR – далеких ( переходів без збереження контексту точки переходу).

2. Команди організації циклів ( loop,loopn,loopnz). Команда loop. Керування циклом за ecx/cx.

Синтаксис LOOP мітка 

Алгоритм роботи:

  • виконати декремент умісту регістра ECX/CX;

  • аналіз регістра ECX/CX:

  • якщо ECX/CX=0, передати керування наступної за LOOP команді;

  • якщо ECX/CX =1, передати керування команді, мітка який зазначена в якості операнда LOOP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]