Size: a a a

Ассемблер

2021 May 24

АШ

Алексей Шведов... in Ассемблер
Ну это легко гуглится
источник

ИГ

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

АШ

Алексей Шведов... in Ассемблер
Вот тут код с выводом
источник

ИГ

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

ST

Saenro T in Ассемблер
Там есть что-то о микрокоде инструкции XCHG на risc для x86 cisc?
источник

ST

Saenro T in Ассемблер
Или здесь есть?
источник

A

Aleksandr in Ассемблер
Но xchg быстрее чем два ксора
источник

s

s54816 in Ассемблер
Ты правда думаешь, что xchg будет занимать ALU, когда процессор ещё при декодировании может просто переименовать регистры?
источник

MA

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

A

Aleksandr in Ассемблер
Угу
источник

MA

Max Azatian in Ассемблер
чет не верится
пруф есть?
источник

ST

Saenro T in Ассемблер
Просто интересно как там на самом деле...

Может у кого-то есть сейчас комп под рукой и забенчмаркетить XCHG и XORы как-то так:

xor eax, eax
xor edi, edi
cpuid
rdtsc
xchg edi, eax
xchg ecx, esi
cpuid
rdtsc
sub eax, edi

А потом так:

xor eax, eax
xor edi, edi
cpuid
rdtsc
xchg edi, eax
xor ecx, esi
xor esi, ecx
xor ecx, esi
cpuid
rdtsc
sub eax, edi
источник
2021 May 25

d

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

ST

Saenro T in Ассемблер
Смотря на каком камне гонять, rdtscp не у всех есть... cpuid для сериализации исполнения инструкции. (Это насколько я понял)
источник

ST

Saenro T in Ассемблер
Стопэ... А есть инструкция RDTSCP ?
источник

ST

Saenro T in Ассемблер
Тогда можно без CPUID.
RDTSCP = CPUID+RDTSC
источник

ST

Saenro T in Ассемблер
Я не уверен есть ли она в камне у того, кто будет тестировать этим кодом
источник

ST

Saenro T in Ассемблер
А вообще было бы неплохо загрузиться чуть ли ни с MBR с таким кодом + с запрещёнными прерываниями, так чтобы уж для чистоты эксперимента.
источник

A

Aleksandr in Ассемблер
CPU: Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
Xors (10000*24 times): 156668
Xchgs (10000*8 times): 82576
источник

A

Aleksandr in Ассемблер
источник