eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Vicshann (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Оффтоп —› Си или ассемблер?
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Статус: Участник

Создано: 7 апреля 2016 18:15 New!
Цитата · Личное сообщение · #1

У меня довольно глупый вопрос,но нужно ли сначала учить СИ,а потом ассемблер или можно сразу начинаться с ассемблера?

Ранг: 1.4 (гость)
Статус: Участник

Создано: 8 апреля 2016 12:34 New!
Цитата · Личное сообщение · #2

DenCoder мне хочется поскорее попробовать реверс,так что полагаю лучше сначала ассемблер изучить,чтоб поскорее к практике приступить


Ранг: 281.5 (наставник)
Статус: Участник

Создано: 8 апреля 2016 13:26 · Поправил: 8 апреля 2016 13:35 DenCoder New!
Цитата · Личное сообщение · #3

Один асм без базового WinApi (или linux api) мало чего даст. Там в асме особо изучать-то и нечего! -> mov, cmp, test, add, xor, or, and, jcc, jmp, call, ret, push/pop - основной набор. И на изучение этого меньше одного дня хватит! Привыкнуть - может, больше потребуется. Привыкать лучше всего с детства, и лучше вообще для практики реверса не с x86 начинать, а с ARM! Т.к. набор команд всегда ограничен, а различных схем логики на них несчётное кол-во... Привыкнуть к arm'овским movgt, carry-флаг при сравнениях имеет смысл наоборот... - мозг должен уметь динамично, без шаблонов работать. Такая динамичность лучше всего с детства вырабатывается. А в x86 всё просто, не знаю, как для остальных... Но если с этим проблем нет, то лучше всего и не париться - Вы уже всё знаете, вперёд!

Добавлено спустя 9 минут
А для того, чтоб всё-таки привыкнуть быстрей - полезно видеть код в 2х представлениях: на языке выского уровня и асме

| Сообщение посчитали полезным: hors


Ранг: 10.0 (новичок)
Статус: Участник

Создано: 8 апреля 2016 13:41 · Поправил: 8 апреля 2016 13:42 Diabolic New!
Цитата · Личное сообщение · #4

plutos пишет:
Он будет много и горячо говорить об умном, выдавать глубокомысленные сентенции вместо того, чтобы сесть да и заняться делом, т.е. надеть кондом и вставить.


С чего вы взяли, что я кому-то буду горячо говорить?
Занимаюсь делом, правда не всегда тем, чем хочется.

DenCoder пишет:
В своё время мне 2х недель хватило, чтоб быть готовым к написанию первых курсовых работ на C++. При этом не имелось компа под рукой. Изучение было чисто теоретическим. И мне, кстати, не нравился тогда си, я был за дельфи и асм... Так что 21 день - это даже с запасом. Получить необходимые основы - вполне хватит. Всё зависит от стремления и захламлённости мозга...


Не только от стремлённости и захламленности мозга, но и ещё от наличия времени, которого у некоторых порой просто нет.

DenCoder пишет:
Как правило, сколько доводилось видеть, человек, больше болтающий о том, чего он хочет, на десятки лет оставляет это в желаниях...


Не поспоришь, но у меня другая ситуация, был поглощён другой областью.


Ранг: 988.8 (! ! !)
Статус: Участник

Создано: 8 апреля 2016 15:37 New!
Цитата · Личное сообщение · #5

spinz пишет:
В те времена в "Науке и жизни" был раздел, посвященный кодингу на МК-61 (и аналогичных типа МК-52 и пр).

ох времена ох нравы... я на свой мк52 покупал внешний БРП-3 модуль, а потом спаял по журналу радио переходник который позволял сливать все программы на кассетный магнитофон или обратно с магнитофона заливать

| Сообщение посчитали полезным: script_kidis


Ранг: 345.8 (мудрец)
Статус: Участник

Создано: 9 апреля 2016 19:39 New!
Цитата · Личное сообщение · #6

roseroserose пишет:
У меня довольно глупый вопрос,но нужно ли сначала учить СИ,а потом ассемблер или можно сразу начинаться с ассемблера?

Начинать - с ассемблера. Заканчивать - С++11.

| Сообщение посчитали полезным: hors


Ранг: 208.9 (наставник)
Статус: Участник

Создано: 10 апреля 2016 10:08 New!
Цитата · Личное сообщение · #7

DenCoder пишет:
полезно видеть код в 2х представлениях: на языке выского уровня и асме

Да, но не после студийного оптимизатора, он создает хорошо оптимизированый код, но плохо читаемый и понимаемый, без определенной сноровки.

| Сообщение посчитали полезным: hors, dsrabot



Ранг: 752.7 (! !)
Статус: Участник
Student

Создано: 15 июня 2016 17:55 New!
Цитата · Личное сообщение · #8

void пишет:
он создает хорошо оптимизированый код

тут часто можно поспорить... иногда его "оптимизированный" код можно свернуть до нескольких команд. И задаёшься вопросом что именно он пытался тут оптимизировать и почему через ж...

Ранг: 345.8 (мудрец)
Статус: Участник

Создано: 20 июня 2016 17:30 New!
Цитата · Личное сообщение · #9

Isaev пишет:
иногда его "оптимизированный" код можно свернуть до нескольких команд

Которые возможно будут работать медленее. Но MS далёк от идеальной оптимизации, тут лучше сравнивать с Intel cpp. Вот с ним соревноваться крайне трудно.

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

Второе применение ассемблера - случаи когда писать на си невозможно (всякие загрузчики, стартовый код биос, стабы сплайсинга, итп.). Обычно на асме пишут подготовку среды исполнения к запуску си кода, а также специфичные процедуры. Основная часть программы всё-же пишется на си, даже если она будет работать на голом процессоре в PEI стадии загрузки.


Ранг: 1091.6 (!!!!)
Статус: Участник

Создано: 21 июня 2016 07:31 New!
Цитата · Личное сообщение · #10

ntldr пишет:
лучше сравнивать с Intel cpp. Вот с ним соревноваться крайне трудно


intel больше не подкидывает чужим процессорам менее оптимизированный код?

Ранг: 345.8 (мудрец)
Статус: Участник

Создано: 21 июня 2016 08:55 New!
Цитата · Личное сообщение · #11

Gideon Vi пишет:
intel больше не подкидывает чужим процессорам менее оптимизированный код?

И никогда не подкидывал. Просто в свитче есть ветки для ряда процессоров Intel и ветка по-умолчанию для всего остального. Я интелом компилю отдельные модули с настройкой под конкретный процессор и такой проблемы не имею. Думаю при компиляции программы целиком, эта проблема лечится правильным выбором настроек.
Производительность кода скомпиленного под процессоры Intel на процессорах других фирм я не изучал.


Ранг: 1091.6 (!!!!)
Статус: Участник

Создано: 21 июня 2016 09:56 · Поправил: 21 июня 2016 10:00 Gideon Vi New!
Цитата · Личное сообщение · #12

Unfortunately, the CPU detection mechanism in Intel compilers has several flaws:
* The best possible version of the code is chosen only when running on an Intel processor. The CPU dispatcher checks whether the processor is an Intel before it checks which instruction set it supports. An inferior version of the code is selected if the processor is not an Intel, even if the processor is compatible with a better version of the code. This can lead to a dramatic degradation of performance on AMD and VIA processors.
* Explicit CPU dispatching works only with Intel processors. A non-Intel processor makes the dispatcher signal an error simply by performing an illegal operation that crashes the program.
* The CPU dispatcher does not check if XMM registers are supported by the operating system. It will crash on old operating systems that do not support SSE.
Several function libraries published by Intel have similar CPU dispatch mechanisms, and some of these also treat non-Intel CPUs in a suboptimal way.


ntldr пишет:
проблема лечится


лечится, да. Правда, как и в случае с другими, не видимыми на первый взгляд проблемами, о ней ещё нужно узнать.
<< . 1 . 2 .
 eXeL@B —› Оффтоп —› Си или ассемблер?

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0


Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS