Size: a a a

Ассемблер

2021 May 25

MA

Max Azatian in Ассемблер
такой вопрос : мне нужно написать перевод строчных букв в строке в заглавные на nasm, используя sse. Из входных параметров только ссылка на начало строки. Как такое эффективнее всего провести?
источник

MA

Max Azatian in Ассемблер
а, и так как у меня жуткое ограничение висит (макс.кол-во микроинструкций = длина строки + 300), то пройтись по строке и посчитать ее длину, я думаю, не получится
источник

АШ

Алексей Шведов... in Ассемблер
Я пишу на JS, можно?))
источник

ИГ

Иван Гончаренко... in Ассемблер
JS, Python, C++? Сюда!!! https://t.me/penguinDiscuss
источник

A

Aleksandr in Ассемблер
А давай, посмотрим что там у вас
источник

A

Aleksandr in Ассемблер
В исходной строке только строчные?
источник

ИГ

Иван Гончаренко... in Ассемблер
Согласен
источник

MA

Max Azatian in Ассемблер
все что угодно, но только чары
источник

MA

Max Azatian in Ассемблер
(=байты друг за другом)
источник

A

Aleksandr in Ассемблер
Тогда даже и не знаю
источник

MA

Max Azatian in Ассемблер
а можно как-то при помощи маски проверить, в каком диапазоне лежат значения в хмм?
источник

MA

Max Azatian in Ассемблер
типа XOR, но хз как маска должна выглядеть
источник

s

s54816 in Ассемблер
А чем тебя pcmpgt не устраивает?
источник

MA

Max Azatian in Ассемблер
пачки ноликов и единичек потом все равно придется перезаписывать как-то
Команда PCMPGT сравнивает знаковые элементы операнда-назначения с соответствующими  знаковыми элементами операнда-источника. Если значение элемента операнда-назначения больше, чем соответствующее значение элемента источника, то в соответствующий элемент операнда-назначения записываются все единицы, в противном случае записываются все нули.
источник

s

s54816 in Ассемблер
А потом ты из всех байтиков вычтешь 'a' - 'A', а потом из результата and-ом с маской отделишь нужные от ненужных байтиков, и потом объединишь.
источник

s

s54816 in Ассемблер
Вопрос в том, как детектить конец строки, если у тебя ограничения.
источник

MA

Max Azatian in Ассемблер
вот
источник

MA

Max Azatian in Ассемблер
с этого я и начал, но никуда еще не пришел
источник

MA

Max Azatian in Ассемблер
если пройтись по строке, то лучше точно не станет
источник

A

Aleksandr in Ассемблер
Был способ проверить сразу несколько байт на ноль, может и сюда приспособится
источник