Pull to refresh

Comments 46

Первое, что я читал — В. Юров «Assembler» — да еще Криса Касперски статьи (своеобразно общается на rsdn'е)!
Мыщъх до сих пор статьи пишет? А где? :-)
А я начал с «Пильщикова — Ассемблер» и «Зубкова — Ассемблер для DOS, Windows и UNIX».
Вторая вообще мастхэв. Сейчас вроде 3е издание вышло. я еще 1е покупал…
Юров был пожалуй первым, ну может наравне с Пироговым. Затем была шиза писать ОС на ассемблере и хорошо что не начал сам, потому что тогда Колибри могло бы и не быть. :-)
В своё время заказал набор книг на английском «Intel 64 and IA-32 Architectures Software Developer's Manual» (5 книг, из которых 2 — Instruction Set) пришли абсолютно бесплатно. Заказал тогда же ещё один комплект — подарил знакомой. Когда другу захотелось тоже — дал ссылку, он заказал, но пришел диск (видимо слишком много народу заказывало, ибо ссылка была уже на всех сайтах халявы).

А свежая версия всегда доступна в электронном виде на сайте

P.S. Нашел даже статью про эти книги habrahabr.ru/blogs/asm/28491/
P.P.S В электронном виде книги всегда в актуальном виде и содержат все исправления и дополнения (в том числе касающиеся новых процессоров).
Жаль халява закончилась. А сейчас можно где-то их приобрести в бумаге?
Похоже, что только если самому печатать, ну или поискать кого-нибудь, у кого есть, но не нужны, только те книги будут старой версии и не будут содержать ничего о процах, вышедших позже Atom'а.

Если найти достаточное количество людей, которым нужны в печатном виде, то можно было бы заказать на какой-нибудь типографии небольшой тираж (беглый гуглёж показал, что типографии печатают тиражами от 100/200/500 экземпляров книг в мягком переплёте). Так что если будет востребовано, то можно собрать народ и заказать.
>До появления первых ассемблеров программирование осуществлялось непосредственно в машинном коде.

Интересно, действительно ли так было. Лет 20 назад «компилировал» команды ассемблера (i8080, а вернее КР580ВМ80А) в машкод в тетрадке, а потом вводил хекс-дампы. Мог, конечно, без тетрадки написать «Hello World», но не более. Но как-то сомневаюсь, что даже первые программисты не использовали какие-то мнемокоды, а кодили прямо в хексебине.
Не буду вступать в «священные войны» — пост был о времени 40-50 лет назад! (сам его не застал — увы ((( )
Я это понял и воевать не собирался. Мне интересно, действительно ли были люди переводящие алгоритмические абстракции в машинные коды без каких-то мнемоник, то есть формирование образа кода типа: «заносим в первый регистр процессора адрес строки» в виде: «21 07 01» без формирования этого образа.
В той же тетрадке переводили же как-то мнемонику в хекс дамп.
чаще удобнее было использовать восьмеричную систему — тогда опкоды многих категорий команд выглядят стойно и логично: (абстрактный пример) 01.010.001(bin) -> 121(oct) значит что-нибудь вроде ld B,A. Старшие два бита — тип команды, следующие 3 бита — регистр-получатель, следующие три — исходный регистр.

в таком виде при определённой сноровке вполне можно было оперировать опкодами, без мнемоник.
Это кстати, да, завидовал в свое время обладателям БК-0010-01, в том числе и из-за восьмеричной системы по дефолту.
Держа под рукой таблицу (16х16) перевода мнемоники в команды.
У моего друга был советский компьютер (Вектор или Поиск, за давностью лет не помню), аналог PC XT, но без дисковода и жесткого диска. Была только возможность записывать и читать программы с магнитофона. Из языков программирования был только встроенный бейсик. Ему удалось на время раздобыть книгу по ассемблеру 8086, переписал все команды и коды в тетрадку, и написал в машинных кодах графический редактор (аналог Paint'а, хранившегося в ПЗУ Yamaha, которые стояли у нас в школе)…

Мы тогда, кажется, в 7-ом классе учились. Вот такой супер-мозг. Один раз было достаточно прочитать книгу, чтобы написать в кодах редактор. После школы потерял контакт, к сожалению, разъехались в разные города.
Еще такой глупый вопрос к хабр-сообществу, ответить на вопрос — знаете ли вы (без гугла), сколько и какие байты составляют минимально-возможный цикл для x86 архитектуры (!!! пожалуйста отвечайте только да или нет)
А знаете ли вы без гугла, как выглядит байткод оптимизации хвостовой рекурсии в CLR на 64-битной архитектуре? Пожалуйста, отвечайте только зачем нам нужно знать про байтовое представление минимально возможного цикла на x86
Уважаемое хабросообщество, считаю, что нам сейчас же стоит вернуть этому парню карму (когда-то несправедливо отнятую). Почитайте его комменты, прошу вас. Это же чистейший случай, когда человек в полном адеквате, генерирует отличный контент и при этом почему-то ходит с отрицательной кармой (что несколько мешается, согласитесь). В рамках проекта по возвращению адекватов на Хабру, предлагаю привести в порядок ситуацию. Кто-то же должен из старожилов помнить пост с погребенными хабровчанами, это тот случай, блин.
Присоединяюсь! Помог, чем смог… :-)
Плюсанул карму из уважения к вам лично (его коммент по прочтению), но потом стало интересно за что — почти чистейший случай, но почти — ненормативную лексику иногда употребляет и потому, имхо, не поддержу мнение, что в полном адеквате… как и я :)
> А знаете ли вы без гугла, как выглядит байткод оптимизации хвостовой рекурсии в CLR на 64-битной архитектуре?

Увы нет, ибо фанатик нэйтевного интеловского кода (а виртуальных машин много)

> Пожалуйста, отвечайте только зачем нам нужно знать про байтовое представление минимально возможного цикла на x86

Да, конечно не нужно — я в посте об этом писал — интересно много-ли знают ;)
UFO just landed and posted this here
да, и чуть ниже его написали)
Ну если так то и renpz movsb например тоже за цикл сойдет :)
Я использую 0xeb 0xfe для того, чтобы зациклить программу.
Нет.

Точно не знаю, но, по аналогии с i8080, — один байт: HLT (0x76) если память не изменяет. Гуглить формулировка вопрсоа не позволила :(
Кстати, достаточно большой коммерческий протектор не очень хорошо защищен от взлома:
Есть две большие разницы
1) Программа зарегистрирована
2) Программа говорит, что она зарегистрирована

Может напишете подробности?!
Хм, для дизасма не проще скачать официальную документацию по процам, она вся открытая, надо только поискать на сайте Intel, там все досконально расписано. Сам по их доке писал компилятор, дока идеальна :-)
исподники открыты и распространяются свободно

Скажите, а что такое исподники? Это то что одевают при ходьбе в исподнем?
• 0x3E – префикс замены сегмента BS
Это у вас что-за сегмент такой? В каком процессоре он появился?
Причем «В» на русском написал) — поправил.
Насколько же все-таки покалеченная в x86 система команд…

На днях написал свой дизасм zilog z80, даа — после него аж глаз режет!
Неудержался оставить комент спустя 10 лет))

Все же больше Ольга, хотя и за этой программой я провел не одну ночь.
Есть отличная статья Криса Касперски «Дизассембилрование в уме» , которая раскрывает все тонкости дизассемблирования.
Sign up to leave a comment.

Articles