Aiwan \ (•◡•) / _bot
loop толькл каким боком здесь?
Eugene
xorpd.net - там выложена книга.
Aiwan \ (•◡•) / _bot
аа
Eugene
https://github.com/0xdea/xorpd-solutions
Aiwan \ (•◡•) / _bot
#book А.Н. Рысованый СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ Ч.1. «Программирование в среде masm64»
Aiwan \ (•◡•) / _bot
#book А.Н. Рысованый СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ Ч.2. «Расширенные возможности программирования в среде masm64»
­
Неужели сессия?
Stas
Неужели сессия?
Как-то давно прибывают, а вопросов всё нет...
­
Как-то давно прибывают, а вопросов всё нет...
Они никак контроль тупости пройти не могут...
Eugene
Как-то давно прибывают, а вопросов всё нет...
Так, и ответов нет, что тоже странно!
Ilya
похоже на спамерскую атаку
Скорее канал в какую-нибудь подборку включили
Anonymous
Подскажите, если не трудно, в чем эффективная разница в выхлопе между .pushsection и .section ? я видимо про gas спрашиваю, поскольку у других я такого не видел %)
Anonymous
для чего вообще используется .pushsection?
Anonymous
Неплохо , однако , спасибо !
Eugene
Почитай ещё вот это. https://www.sourceware.org/binutils/docs/as/PushSection.html (и ссылку там про .section) Не углублялся, но как будто бы это не одно и то же...
Eugene
Парни, вопрос по HDD, кто шарит? Диски 4Kn (не 512e, т.е. без эмуляции 512-байтовых секторов) как себя ведут в ДОСе (int 13h, например)? Они вообще определяются в Legacy BIOS?
Eugene
А обычные жд эмулируют по умолчанию такие сектора? У меня на моем диске все норм работало
Они все обычные. • Есть 512n (native) — там сектора 512-байтовые. Это старые харды. • Есть 512e (emulation) — там сектора 4 Кб, но присутствует аппаратная эмуляция 512-байтовых секторов. Это диски, выпущенные с 2011 года (вероятно все... и некоторые 2010 г). • А есть 4Kn (native) — там сектора 4 Кб и эмуляция отсутствует (когда первые появились — не знаю). Последние как бы заточены под UEFI, т.к. проги для DOS (и весь Legacy BIOS) все (или почти все) заточены под 512-байтные сектора. И в случае, если сектор окажется 4 Кб-ным, чтение 1 сектора переполнит буфер и затрёт что-то другое.
Eugene
SSD-диски не имеют секторов, там страницы (от 2 до 16 Кб, может, и больше есть). Но там есть эмуляция 512n (что можно увидеть в AIDA64, к примеру). Вероятно, есть какие-то другие эмуляции (4Kn, к примеру), я не знаю.
Yura
Тогда не знаю...
Eugene
Народ, bool и enum (плюсы) возвращаемый из функции, в теории может же вернуться в AL, а не в EAX, так ведь?
kitsu
чего-то очень сомневаюсь, надо читать спеки
ChoiPinMing
Надо скомпилить и посмотреть что выдаст objdump -d
ChoiPinMing
bool f() { return false; } int main() { return f(); }
ChoiPinMing
или что то немного более хитрое. типа if(f()) return 1; else return0
ChoiPinMing
objdump -d /usr/bin/ls 4036b5: e8 86 7c 00 00 callq 40b340 <__sprintf_chk@plt+0x8a60> 4036ba: 84 c0 test %al,%al
Aiwan \ (•◡•) / _bot
s54820
это разве не одно и тоже для размещения нуля и единицы?
Вопрос в том, очищаются ли старшие биты. Нет, не всегда очищаются.
Eugene
Надо скомпилить и посмотреть что выдаст objdump -d
Это выдаст конкретный компилятор. А я для общего случая.
s54820
Это выдаст конкретный компилятор. А я для общего случая.
Так конкретный компилятор уже показывает, как он не доверяет rax в целом. У Microsoft в середине 2000х студия точно в al возвращала. Так что уже доверять нельзя.
kitsu
В примере как бы caller проверяет, а не callee, про что изначально спрашивалось
Eugene
Короче, я понял, что может быть как угодно :)
s54820
Короче, я понял, что может быть как угодно :)
Это потому что у той же Microsoft, например, нормальной спеки, что куда пихать, никогда не было и до сих пор нет.
ChoiPinMing
Это выдаст конкретный компилятор. А я для общего случая.
Конкретный компилятор следует спекам более менее. Плюс ты можешь дебаггером подцепиться и посмотреть зануляется ли регист весь если ему только в %al записать
Eugene
Конкретный компилятор следует спекам более менее. Плюс ты можешь дебаггером подцепиться и посмотреть зануляется ли регист весь если ему только в %al записать
Вот если я увижу, что какой-то компилятор обнуляет весь EAX, о чём мне это скажет? Что по спецификации он должен обнулить? По спецификации ко всем C++ или к этому компилятору? Или, может, он сам так решил, и это implementation defined? Или он так решил именно в этом режиме оптимизации, а в другом будет иначе? Опираться на отладку ненадёжно в данном случае.
ChoiPinMing
Почти в твою тему недавно я ковырял Но я ковырял про зануление верхней части rax если делается mov eax, edi к примеру и выяснилось что при таком раскладе верняя половина зануляется во время исполнения mov eax, edi. Но в 16битных вариантах может быть по другому Я смотрел тут https://www.intel.ru/content/www/ru/ru/architecture-and-technology/64-ia-32-architectures-software-developer-vol-1-manual.html Basic architecture 3.4.1.1 General-Purpose Registers in 64-Bit Mode
Anonymous
Можно ли исходить из того что байтовые сторы дороже?
Anonymous
Для абстрактного компилятора в вакууме
ChoiPinMing
Eugene
Само собой , я к тому что там возможно есть глава без надписи 64bits и там могут быть хинты в эту тему
Я не понял про 16-битные варианты. Какой RAX может быть в 16 битах вообще?
Anonymous
Он имел в виду 16 битные регистры мне кажется
Eugene
Так, при записи в 16-битные регистры (как и в 8-битные) ничего не обнуляется.
Anonymous
Да
Anonymous
Просто вот смотрите вернул он в ал, а потом ему надо сделать спилл А восьмибитного пуша нету в принципе
Anonymous
На х86 от 16 бит пуши
Eugene
Что за спилл?
Anonymous
Register spill обычный пуш
s54820
На х86 от 16 бит пуши
Зато есть мов, который gcc очень любит делать вместо пушей.
Anonymous
Ето да
Pavel
Pavel
Кому-либо известно что точно значит колонка «%of busy»?
Aiwan \ (•◡•) / _bot
процентное отношение занятой памяти по типу?
Pavel
Мне бы точно. Так то кажется будто так. Но например почему есть значение этой колонки напротив резервед?
Pavel
Что может быть занято в резервных страницах?
Pavel
А если отфильтровать по типу - то там будут и резервированные и закомиченные. Причём в закомиченых блоках есть куски с нуликами (без данных). И мне не понятно что учитывается этой колонкой
Pavel
Разобрался.
Stas
Слишком много людей...
Kirill
и что нам теперь с этим делать?
­
Слишком много людей...
Где ты тут людей увидел?
Игорь
Есть люди. Есть боты) А есть xor eax, eax
JeisonWi
x86-64
Портируют софт на новый яббл
Ioann_
Есть люди. Есть боты) А есть xor eax, eax
норм пасаны юзают xor rax rax
Игорь
норм пасаны юзают xor rax rax
Олдскульный народ обходится xor ah, ah
Игорь
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
https://www.xorpd.net/pages/xchg_rax/snip_00.html
Ioann_
34 ib 😎
old, yes
Ethan
I'm not following you
Efios
Салют, может кто дать верное направление в ассемблере nasm? Я нашел только книгу Столярова и ничего более.
Aiwan \ (•◡•) / _bot
мануал самого насма, вернее уже не придумать
­
Исходники насма.