Команды передачи данных. Включают восемь команд, позволяющих выполнять операции над 128-, 64- и 32-разрядными операндами.

Включают восемь команд, позволяющих выполнять операции над 128-, 64- и 32-разрядными операндами.

Команды movaps (movups) - пересылка выровненных (невыровненных) по 16-байтовой границе 128-разрядных операндов. В качестве входного операнда могут выступать ХММ-регистр или 128-разрядная ячейка памяти, выходным операндом может служить один из ХММ-регистров. Если адрес ячейки памяти не будет выровнен по 16-байтовой границе, то по команде movaps произойдет исключение общей защиты.

Команда movhps - пересылка невыровненных 64 бит из входного операнда в выходной. Один из операндов обязательно должен быть ХММ-регистром, в качестве второго может выступать 64-разрядная ячейка памяти. Пересылаются только старшие 64 бит входных операндов. Младшие 64 бит обоих операндов не изменяются. Если данные передаются из ХММ-регистра, то пересылке подлежат только старшие 64 бит. Команда не требует выравнивания по 16-байтовой границе адреса ячейки памяти.

Командыmovhlps (movlhps) - пересылка невыровненных 64 бит из входного операнда в выходной. Оба операнда должны находиться в ХММ-регистрах. Пересылаются только старшие (младшие) 64 бит входных операндов. В результате выполнения этой команды изменяются младшие (старшие) 64 бит регистра-приемника. Схема выполнения команд показана на рис. 3.9.

ХММ1
ХММ0

 

Рис. 3.9. Выполнение команд пересылок movhlps и movlhps

 

Команда irovlps - пересылка невыровненных 64 бит из входного операнда в выходной. Один из операндов обязательно должен быть ХММ-регистром, в качестве второго может выступать 64-разрядная ячейка памяти. Пересылаются только младшие 64 бит входных операндов. Старшие 64 бит обоих операндов не изменяются. Если данные передаются из ХММ-регистра, то пересылке подлежат только младшие 64 бит. Команда не требует выравнивания по 16-байтовой границе адреса ячейки памяти.

Команда movmskps - пересылка знакового бита каждого из четырех упакованных чисел входного операнда в младшие четыре бита выходного операнда. В качестве входного операнда может выступать только ХММ-регистр, а в качестве выходного операнда - 32-разрядный регистр общего назначения. Эта команда используется для организации условных переходов.

Команда movss - пересылка 32 младших битов из источника в приемник, при этом один из операндов должен быть ХММ-регистром, а второй - 32-разрядной ячейкой памяти. При выполнении операции пересылки из памяти младшие 32 бита помещаются в младшие 32 разряда ХММ-регистра. Если выполняется пересылка из ХММ-регистра, то выбираются младшие 32 разряда регистра, остальные разряды не изменяются.








Дата добавления: 2015-12-22; просмотров: 641;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.