Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 6
з курсу „ Архітектура комп’ютерів”
Тема:
Передача керування від задачі до задачі.
Синтаксис та використання команд порівняння та передачі даних.
Львів – 2005
Передача керування від задачі до задачі
На процесорах архітектури Intel збереження стану задачі з MMX-командами відбувається так само, як збереження стану задачі, що використовує арифметику з плаваючою комою. Тому механізм перемикання задач в існуючих багатозадачних операційних системах повністю можна застосовувати і до задач з MMX-командами.
Кооперативні ОС (наприклад, Windows 3.1) здійснюють переключення задач тільки якщо активна задача сама передає керування системі. Програмісту необхідно турбуватися про збереження стану задачі, що використовує MMX-команди або арифметику з плаваючою комою, перед передачею керування до ОС.
Багатозадачні ОС с витісненням (наприклад, Windows 9x/Me, Windows NT/2K/XP) здійснюють переключення задач, не очікуючи, поки активна задача передасть керування операційній системі. Такі ОС самі зберігають і відновлюють стан задачі з MMX-командами.
Команди порівняння
MMX-команди порівняння попарно порівнюють елементи даних (байти, 16- чи 32-розрядні слова) вхідного і вихідного операндів. В залежності від результату порівняння відповідний елемент даних вихідного операнда заповнюється нулями чи одиницями.
Ці команди, як і всі інші MMX-команди, не встановлюють прапорців (ознак).
Команда
b
w
d
q
pcmpeq
pcmpgt
Команди передачі даних
MMX-команди передачі даних movd і movq виконують копіювання:
з одного MMX-регістра до іншого,
з MMX-регістра в пам’ять і навпаки,
з MMX-регістра в цілочисельний регістр і навпаки (тільки команда movd).
Поміж всіх MMX-команд тільки movd і movq можуть мати вихідний операнд в пам’яті; movd - єдина команда, в якої операнд може бути в цілочисельному регістрі.
Команда
32 біта
64 біта
movd
movq
Детально описати зміст заданих команд та результат їх виконання, якщо в
ММ1 : 7F80 7E01 80FF 777F , в ММ2 : 80FF 7F80 777F 0001, в ММ3 : 7FFF FFFF 80FF AA55.
11.
pcmpeqd MM1, MM3
movd MM2, MM1
Команди pcmpeq
Команди pcmpeq попарно порівнюють елементи даних (байти, 16- або 32-розрядні слова) вхідного і вихідного операндів. Якщо елемент даних вихідного операнду рівний відповідному елементу вхідного, такий елемент вихідного операнду заповнюється одиницями. Якщо рівності немає, то він заповнюється нулями.
Вхідний операнд може знаходитися в MMX-регістрі або в пам’яті; Вихідний операнд повинен знаходитися в MMX-регістрі. Дозволені команди: pcmpeqb, pcmpeqw, pcmpeqd.
Приклад:
pcmpeqd MM1, MM3 – порівнюються блоки даних double word (32 розряди)
MM1
7F80 7E01
80FF 777F
MM3
7FFF FFFF
80FF AA55
MM1
0000 0000
0000 0000
Команда movdКоманда movd копіює 32 біта:
з молодших розрядів одного MMX-регістра в молодші розряди другого (старші розряди заповнюються нулями)
з пам’яті або з цілочисельного регістра в молодші 32 розряди MMX-регістра (старші розряди заповнюються нулями)
з молодших розрядів MMX-регістра в пам’ять або в цілочисельний регістр.
Приклад:
movd MM2, MM1 – перетворення з word в double word
MM2
7F80 7E01
80FF 777F
MM1
7FFF FFFF
80FF AA55
MM2
0000 FFFF
0000 AA55
Висновок: Виконуючи дану лабораторну роботу, я ознайомився з використанням команд технології MMX, зокрема команд порівняння та передачі даних.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!