Size: a a a

Ассемблер

2021 June 06

АШ

Алексей Шведов... in Ассемблер
Одно пытались упростить, а другое усложнили
источник

LW

Loren White in Ассемблер
и как же программа получит информацию о закешированных страницах ? я что - то не нашел в мануале интела инструкций для совершения подобных операций. тут разве что путем замера времени обращения это понять можно, и то для подобного придется прерывания отключить
источник

D

Den in Ассемблер
ну да если долго смотреть на эту строчку понятно, что  'c' это на сколько сдвигать, только не понял где копия 'b' чтобы не потерять байты при первой операции (b<<c) в этом выражении, там b размножается чтоли под капотом гдето? т.е биты а не байты правильнее сказать
источник

P

ProMiNick in Ассемблер
а среди объектов ядра винды? информация собирается из них. А не через специальные инструкции интел (конечно нет таких инструкций).
источник

LW

Loren White in Ассемблер
окей, а ядро винды - то как узнает, что процессор решил определенную страницу поместить в свой кеш, если инструкций для получения подобной информации нет ? )
источник

АШ

Алексей Шведов... in Ассемблер
Потому что ты работаешь не напрямую с процессором. А сначала с  ядром, а ядро уже с процессором. Ядро обрабатывает твои инструкции из исполняемого файла, которые ты запрашиваешь для процессора
источник

АШ

Алексей Шведов... in Ассемблер
Если бы так можно было - работать с процессором напрямую, то сейчас бы были вирусы, которые бы крашили твой процессор, а ядро вслепую пропускало бы любые сплойты
источник

LW

Loren White in Ассемблер
как твое сообщение соотносится к теме того, что товарищ рассказывает про сказочные технологии, которые позволяют узнать, какие страницы хранит процессор в TLB кеше ?
источник

АШ

Алексей Шведов... in Ассемблер
Я просто тебе ответил
источник

D

Den in Ассемблер
а все понял, действительно размножается видимо, сам себе ответил, когда долго под асмом сидишь это уже кажется ненормальным 🎃 т.е переменная в общем выражении не динамическая а как в классической математике, поэтому вынуждена автоматом копироваться куда то и восстанавливаться перед следующей операцией в выражении чтоли, не задумывался об этом
источник

D

Den in Ассемблер
вот по поводу кеша тут было кое что
источник

D

Den in Ассемблер
gcc 10 вот такое выдал, на O2 вроде неплохо даже:

mov eax, edi
mov ecx, esi
rol eax, cl
ret
но на O0 там столько лишних движений мрак
источник

С

Сергей in Ассемблер
В фасме как вешку искать? Вот честно заколебался. Нашёл событие при отладке и надо перейти к отлову события в другой процедуре. Как это сделать?
источник

DF

Dollar Føølish in Ассемблер
вешку?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
сначала ты завел речь про отладочные символы, которые генерит масм, но не генерит фасм для отладчика. а сейчас говоришь про отлов событий каких то? как ты с масмом их ловишь? спрашиваю потому что хочу понять что ты хочешь
источник

С

Сергей in Ассемблер
Да, это важно! Рассказываю как хочется, а вы мне подскажите как можно: ищу процедуру по комменту и ставлю остановку. После очередной остановки ищу другую процедуру по комменту и опять ставлю точку остановки. Ну и так до опупения.
Как-то можно это на фасме делать?
источник

С

Сергей in Ассемблер
Ну или, например, запускаешь отладку и надо поставить остановку на далёкой процедуре. Неужели только перелистыванием искать?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
перейти->выражение
источник

A

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

С

Сергей in Ассемблер
А как написать так что бы процедуры были с человечачьим названием?
источник