Консультация № 75881
15.02.2007, 16:31
0.00 руб.
0 2 2
Здравствуйте уважаемые эксперты.Мне срочно нужна помощь по асемблеру.Пожалуйста напишите мне как можно найти минимальное значение на языке асемблера с помощью MMX регистров.Если можно то подробно.Буду очень благодарен.Заранее спасибе.
e-mail:s_x600@rambler.ru

Обсуждение

Неизвестный
15.02.2007, 17:06
общий
это ответ
Здравствуйте, Персидский Александр Викторович!

===
PFMIN mm, mm/m64
команда нахождения минимума упакованных данных с плавающей запятой. При этом минимальное значение заносится в младший элемент выходного операнда, а максимальное значение - в старший элемент выходного операнда.
===
http://www.codenet.ru/progr/optimize/3dnow.php

найдено <a href=http://www.google.com/search?hl=ru&ie=koi8-r&q=%cd%c9%ce%c9%cd%c1%cc%d8%ce%cf%c5%20%da%ce%c1%de%c5%ce%c9%c5%20mmx> так <a>. первая сверху найденная ссылка
давно
Старший Модератор
31795
6196
15.02.2007, 22:30
общий
это ответ
Здравствуйте, Персидский Александр Викторович!

Технология MMX использует регистры соопроцесора.
При записи в регистры FPU меняется содержимое регистров MMX.

команды:
проверка на равенство PCMPEQB(byte),PCMPEQW(word),PCMPEQD(dword)
сравнение PCMPGTB,PCMPGTW,PCMPGTD
;пример работает только для dword???
movq mm0,[dataA]
movq mm1,[dataB]
movq mm2,mm1
pcmpgtb mm2,mm0
movq [dataD],mm2
psubb mm1,mm0
movq [dataE],mm1
pand mm2,mm1
paddb mm0,mm2
;идея скачана у K.Kасперского
; sub ebx,eax
; sbb ecx,ecx
; and ecx,ebx
; add eax,ecx
итог команды if(ebx<eax)
then eax=eax+(ebx-eax)
else eax=eax
ps: команда PFMIN работает на AMD
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа