Size: a a a

Ассемблер

2021 August 29

E

Entusiast in Ассемблер
Такое заполнение нигде не нужно делать
источник

E

Entusiast in Ассемблер
Здесь даже stos быстрее работать будет
источник

E

Entusiast in Ассемблер
Ты же это из отрывка GCC взял?
источник

d

disba1ancer in Ассемблер
нет, это я сам писал
источник

E

Entusiast in Ассемблер
Очень страннный код
источник

d

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

E

Entusiast in Ассемблер
С чего это?
источник

E

Entusiast in Ассемблер
Рекомендуют. Быстрее него - SSE
Только нужно выравнивать по границе 32 байт для больших данных
И ещё cld нужно подальше ставить
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
не показатель
источник

d

disba1ancer in Ассемблер
а с rep или без него?
источник

E

Entusiast in Ассемблер
C rep
источник

d

disba1ancer in Ассемблер
многовато регистров получается, как минимум edi придётся пушить
источник

E

Entusiast in Ассемблер
Какая у тебя задача стоит? Заполнить память значением?
источник

d

disba1ancer in Ассемблер
реализовать memset ибо его нет, настолько быстрым образом насколько это возможно, сразу после перехода в защищённый режим
источник

E

Entusiast in Ассемблер
Ну вот, используй тогда movnti
источник

d

disba1ancer in Ассемблер
что это?
источник

E

Entusiast in Ассемблер
Инструкция
источник

d

disba1ancer in Ассемблер
ясен фиг, что за инструкция?
источник

E

Entusiast in Ассемблер
movnti m32, r32
movnti m64, r64

Moves the doubleword integer in the source operand (second operand) to the destination operand (first operand) using a non-temporal hint to minimize cache pollution during the write to memory. The source operand is a general-purpose register. The destination operand is a 32-bit memory location.

Или ещё лучше - movups m128, xmm
источник

E

Entusiast in Ассемблер
Да, вот с movups будет лучше, на самом деле.
Это movnti я, помню, смотрел в MSVCRT.dll
источник