Привет Всем! С НГ!!! Помогите перевести на MASM следующий код unsigned __int64 low; unsigned int range; low+=range ................ Спасибо заранее
Код (Text): _int64 struct ;вариант 1 lo dd ? hi dd ? _int64 ends low1 _int64 <0,0> low2 dq 0 ;вариант 2 range dd 0 ;-- вариант 1 -- mov eax,range add low1.lo,eax adc low1.hi,0 ;-- вариант 2 -- add dword ptr [low2],eax adc dword ptr [low2+4],0
Спасибо большое, попробую! Не думал, что так просто Правда с paddq было бы все гораздо проще, но у меня только набор SSE, а SSE2 нет
Вариант 3 ММХ. Если важны расширения. МАСМ-ом не пользуюсь, но если судить по вышеуказанным примерам, то должно работать. low dq ? range dd ? ;другие действия MOVQ mm1,low MOVD mm2,range ;другие действия не трогая ФПУ PADDQ mm1,mm2 ;другие действия не трогая ФПУ MOVQ low,mm1 EMMS Если нужно просто добавить разок-другой, то забей на этот пример, варианты leo лучше. Хотя, если дифицит регистров... Ntjhbb gthtxbnfk ghjcnbnt/ Почему не поддерживает. Размве масм не поддерживает? Или проц не поддерживает?
medcom Это где ты такую инструкцию откопал PADDUSQ ?! В мануалах Intel и AMD ничего подобного вроде нет, только PADDUSB\PADDUSW 8(
Сижу не за своим компом – проверить еще раз не могу, но paddq это инструкция SSE2 на регистрах MMX(если говорить простым языком), и поэтому у меня камень даже с SSE, но ругается на эту инструкцию, так что medcom соррии: rhbnbrf yt ghbybvftncz