· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› замена CWDE

Посл.отвђт Сообщенiе


Дата: Июл 1, 2004 16:09:30

можно ли как то логическими операуиями заменить команду CWDE
т.е. делать из целых 2 байтных значений 4-х байтные (как со знаком так и без )!


Дата: Июл 1, 2004 16:28:33 · Поправил: masquer

off-hand вариант:
rcl ax, 1
	sbb edx, edx
	rcr ax, 1
	shl edx, 16
	add eax, edx

Тьфу, про movsx eax, ax совсем забыл :) Мало использую


Дата: Июл 1, 2004 16:42:08

emergenter
shl eax,0x10
sar eax,0x10


Дата: Июл 1, 2004 17:03:57

Anonimka
А если с помощью MMX???


Дата: Июл 1, 2004 17:18:43

„А если с помощью MMX???“
что именно с помощью ммх?


Дата: Июл 1, 2004 17:22:38

emergenter
„А если с помощью MMX???“
А если с помощью суперминиминьетчика-2000?


Дата: Июл 2, 2004 16:35:59

masquer
Anonimka
Можно ли с помощью команд MMX или SSE сделать расширение знака например из 16 битного числа сделать 32 битное!!!


Дата: Июл 3, 2004 00:53:58

а чем
CDQ и CWD и CBW
не угодили?


Дата: Июл 3, 2004 12:53:38

jekyll
Так представьте что массив со значениями по 16 бит (знаковые), ну например signed short. И необходимо преобразовать весь этот массив в 32 битные значения тоже знаковые!!! если выполнять этот массив с помощью цикла и по 1 значению то это вроде как то долго!!!

Я думал сделать с пощью MMX типа такого
[edx] - указатель на массив signed short 'ov

pxor mm1,mm1  ; обнуление mm1

movd mm0, [edx] ;загружаем 2 значения в по 16 бит
punpcklwd mm0,mm1 ;перегруппировали  0 2значение 0 1значение


Дата: Июл 3, 2004 20:01:54

„если выполнять этот массив с помощью цикла и по 1 значению то это вроде как то долго!!! “

Зачем по одному?
movsx eax,word [esi]
movsx ebx,word [esi+2]
movsx ecx,word [esi+4]
movsx edx,word [esi+6]
mov [edi],eax
mov [edi+4],ebx
mov [edi+8],ecx
mov [edi+12],edx


Дата: Июл 3, 2004 22:32:22

Black_mirror
портяться ebx, ecx, хотя push и pop еще никто не отменял.


Дата: Июл 3, 2004 22:41:04

Да ну вас =). Неужели
lodsw
cwde
stosd

так уж плохо?


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.097