Size: a a a

Ассемблер

2021 May 20

MA

Max Azatian in Ассемблер
в rdi - длина массивов, в rsi - старт Х, в rdx - Y, xmm0 - альфа
источник

MA

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

D

Den in Ассемблер
а 1\0 это спин или арифметическая операция или что?
источник

MA

Max Azatian in Ассемблер
состояния бита \ кубита
источник

MA

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

D

Den in Ассемблер
т.е в состоянии 1 это бит а в 0 бесконечно объемный кубит?
источник

d

disba1ancer in Ассемблер
плохо что 2 массива, они оба могут быть неудобно выровнены, потому, возможно, лучше тупо по одному флоту через sse считать
источник

MA

Max Azatian in Ассемблер
она оба неудобно выровнены, я везде movups использую
источник

d

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

MA

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

Как хитрить?
источник

D

Den in Ассемблер
непонятно но очень интересно :)
источник

d

disba1ancer in Ассемблер
невыровненную часть в начале считаешь как-нибудь, в конце аналогично, по середине считаешь пачками
источник

MA

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

MA

Max Azatian in Ассемблер
А как мне узнать разницу в битах между невыровненной и выровненной памятью?
источник

MA

Max Azatian in Ассемблер
Или байтах, пофиг
источник

d

disba1ancer in Ассемблер
у тебя указатели в регистрах, с помощью битовых масок
источник

MA

Max Azatian in Ассемблер
А можно пример? Про маски слышал, а как с ними в этом случае работать - хз
источник

MA

Max Azatian in Ассемблер
А, разницу в последних 4 байтах найти?
источник

d

disba1ancer in Ассемблер
у тебя регистры по 4 флота? соответственно выравнивать надо на 16, чтобы определить размер невыровненной области в начале делаешь побитовое И указателя со следующей маской 0x0F
источник

d

disba1ancer in Ассемблер
только не потеряй начальное значение регистра оно тебе пригодится
источник