Size: a a a

Ассемблер

2021 July 14

A

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

P

ProMiNick in Ассемблер
просто как то пытался портировать SDK IDA Pro, для 64 бит за образец брал 7.2 сдк, а для 32х пришлось брать багнутую и устаревшую 6.8, так как решения созданные в порте СДК надо было тестировать в боевой IDA из тех что были доступны взломанными.
источник

J

J in Ассемблер
А есть вообще случаи где нужно просто компилировать и все, или использовать компилятор и компоновщик?
источник

E

Entusiast in Ассемблер
А я слышал, что да. И более того - если написать обычный софт для BIOS на замер инструкций, и во вторую сделать огромный цикл, а в первой сделать обычный MOV, то удивишься, что второй участок будет занимать больше времени по тактам, чем первый
А это значит, что по тактам замерять скорость инструкций можно
(Можно запускать сколько угодно - всё равно второй участок всегда будет больше тактов занимать)

И ещё можно добавить, что если взглянтуь глазком на таблицу Агнера, и глазком на скорость инструкций в твоём BIOS - то ты увидишь, что в таблице Агнера MOV будет около ~1 такта всегда. Совпадение? Да
источник

A

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

J

J in Ассемблер
В бинарник
источник

d

disba1ancer in Ассемблер
ЯННП
источник

E

Entusiast in Ассемблер
Что это значит?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
бинарники разные бывают. *.obj, *.o тоже бинарники
источник

E

Entusiast in Ассемблер
Я там ещё добавил по поводу Агнера Фога, и по поводу моих личных замеров (и ты сам можешь в этом убедиться, если сам измеришь)
источник

d

disba1ancer in Ассемблер
Твой пример не распарсил
источник

d

disba1ancer in Ассемблер
В таблице Агнера по мимо тактов ещё куча всяких параметров и думаю они там не спроста
источник

E

Entusiast in Ассемблер
Ну там просто заметки по инструкции - ops, ALU/AGU/ALU0/ALU1 и т.д
источник

d

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

E

Entusiast in Ассемблер
Ну прочитай - написано перед таблицей для процессора
источник

J

J in Ассемблер
Как измерить время выполнения кода?
источник

J

J in Ассемблер
Программы
источник

E

Entusiast in Ассемблер
rdtsc
mov edi, eax

mov eax, 1

rdtsc
sub eax, edi
(Выводим EAX)
=

0x000000(99-70)
 (Точно не помню, сейчас не могу проверить - там же учитывать ещё mov перед этим)

Смотрим в таблицу - видим совпадение - ~1 такт
источник

E

Entusiast in Ассемблер
С чужой программой всё сложнее. А свой код так же с помощью получения тактов. На Windows лучше для этого использовать GetTickCount, или напрямую SHARED_DATA 0x7FFE0320
источник

J

J in Ассемблер
А на линукс?
источник