M
M
Выделил/поюзал сам/освободил
Eugene
s54820
Eugene
Anonymous
s54820
Eugene
bilka00
Anonymous
Но я просто не вижу смысла писать на ассемблере (компиляторе) в котором встроена оптимизация.
То есть ну написал код, и нет твоего кода на выходе. И как отлаживать, если инструкции где-то заменились
Anonymous
bilka00
Ну и стоит учесть что современные ассемблеры имеют очеень много именно "компиляторных" фишек
bilka00
Ввиде предпроцессора и остального что туда палками прибито
bilka00
Anonymous
bilka00
Я немного сплю.
Anonymous
Транслятор - программа, которая переводит из одного ЯП в другой ЯП.
Интерпретатор - выполняет исходный код,скрипт, без компиляции. Т.е в реальном времени читает команды и сразу же выполняет
Anonymous
Ассемблер - в какой-то степени транслятор,но он не переводит в ЯВУ, он переводит в байты (опкоды, машинные инструкции, можно называть как угодно)
bilka00
Что же тогда ассемблер?
bilka00
Ну, а в чем разница между переводом в код жвм и машинный код?)
Anonymous
bilka00
Именно в диапазоне понятия транслятора
bilka00
ЖВМ?
https://ru.m.wikipedia.org/wiki/%D0%91%D0%B0%D0%B9%D1%82-%D0%BA%D0%BE%D0%B4_Java
Anonymous
А транслятор переводит из одного ЯП, в другой ЯП
bilka00
bilka00
Так почему эти байтики обезательно должны быть читабельны?
Anonymous
На вход - исходный код, на выходе исходный код
bilka00
M
bilka00
Ты можешь в хекс-редакторе так и писать код
Anonymous
Называть исполнительные блоки и декодер процессора - языком программирования (или компилятором) очень грубо
Anonymous
И сами опкоды - командами ЯП
bilka00
А по поводу оптимизации, разве на asm вставки она не отрубается?
M
55 vs push ebp ))
bilka00
Anonymous
bilka00
Если программист решил вставки делать - значит он сам контроллирует все возможные конфликты
Anonymous
Anonymous
В случае с ЯВУ
M
-
M
Это так должно работать)
bilka00
По факту когда мне последний раз приходилось писать на х64 асмн вместе со мелкософтным компилятором - никто меня не оптимизировал
M
Но не может работать) поэтому все оптимизируется)
bilka00
Код как был мой так т остался
bilka00
(Последний раз - вчера)
bilka00
M
Лол
bilka00
Вот кстати интересно как с этим clang работает. Там же достаточно много оптимизаций. Надо как-то посмотреть
Anonymous
Код как был мой так т остался
Вы должны понимать, что конфликты регистров не всегда могут происходить..
При банальном коде компилятор вряд ли будет использовать ESI, EDI, EBP. Поэтому код не изменится..
Anonymous
Ну ещё EAX, если результат функции не используется.
(И по соглашению, EAX содержит результат)
bilka00
Anonymous
Anonymous
Anonymous
А асм вставки могут максимум местами переставляться если асм не волятиль
bilka00
Покажите код
Ну во первых нда, во вторых мне уже слишком лень к компу (я уже почти сплю).
Если кратко - код играет в некоторое подобие алокнутых вызовов денувы которые cpuid читают, но не так ограничено и там еще кое шо
Anonymous
Anonymous
Glo
нда...
Anonymous
Что-то вроде "мда"?
Glo
вроде по ттпу схоже с мде, но пожалуй ближе к амда, или же на анимешном "mudamudamuda"
bilka00
Которое запрещает шарить очееень многое с проектов
bilka00
(Если быть точным то ваще ничего)
bilka00
bilka00
Серьезно, вы о таких понятиях не знаете?
Anonymous
Там на всем проекте.
Значит нарушение будет только если весь проект показать, а не часть кода
Anonymous
Кек
M
bilka00
Обратное тоже может проверить каждый, компилятор я назвал.
bilka00
Можно прям говна накидать и его отлично скомпилит.