Это очень просто, но я еще не смог понять это.Сборка маски логики вопрос
Этот вопрос касается сборки mmx, но это чистая логика.
Представьте себе следующий сценарий:
MM0: 04 03 02 01 04 03 02 01 <-- input
MM1: 02 02 02 02 02 02 02 02
MM2: 04 03 02 01 04 03 02 01 <-- copy of input
after pcmpgtw MM0, MM1
MM0: FF FF 00 00 FF FF 00 00 <-- words where MM0 is greater than MM1 (comparing words)
MM1: 02 02 02 02 02 02 02 02
MM2: 04 03 02 01 04 03 02 01
after pand MM0, MM2
MM0: 04 03 00 00 04 03 00 00 <-- almost there...
MM1: 02 02 02 02 02 02 02 02
MM2: 04 03 02 01 04 03 02 01
То, что я хочу знать, заполнить нули mm0 с 02. Я полагаю, я должен был бы инвертировать MM0 зарегистрироваться в step2, изменение ФФ к 00-х и 00-х годов к FF, а затем выполните a и MM1 и, наконец, a или объедините их.
Если бы я был в состоянии получить:
MM3: 00 00 FF FF 00 00 FF FF
then, pand MM2, MM3
MM1: 04 03 00 00 04 03 00 00
MM2: 00 00 02 02 00 00 02 02
finally por MM0, MM1 would give me the desired outcome:
MM0: 04 03 02 02 04 03 02 02 <-- Aha!
Подводя итог, как я могу получить, что MM3 регистр в 00 00 FF FF 00 00 FF? Как я могу инвертировать биты, доказывая, что у меня есть только команды AND, OR, XOR и NAND, доступные в регистрах MMX?
Любой ответ очень приветствуется. Благодарю.
Итак ... чем вопрос? Похоже, вы сами ответили. –
В моем вопросе можно прочитать: «Если бы я смог получить», значит, у меня все еще нет, и я спрашиваю вас, как это сделать. – nunos