Comments 46
Была у меня такая книжка: Assembler. Специальный справочник. Всё собрано в кучу и даже на русском языке. В этой книге прилагалось описание команд и соответствующие им коды.
Первое, что я читал — В. Юров «Assembler» — да еще Криса Касперски статьи (своеобразно общается на rsdn'е)!
Мыщъх до сих пор статьи пишет? А где? :-)
Он пишет посты (порою довольно странные) на rsdn. Ссылка на профиль
А я начал с «Пильщикова — Ассемблер» и «Зубкова — Ассемблер для DOS, Windows и UNIX».
Вторая вообще мастхэв. Сейчас вроде 3е издание вышло. я еще 1е покупал…
Вторая вообще мастхэв. Сейчас вроде 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 В электронном виде книги всегда в актуальном виде и содержат все исправления и дополнения (в том числе касающиеся новых процессоров).
А свежая версия всегда доступна в электронном виде на сайте
P.S. Нашел даже статью про эти книги habrahabr.ru/blogs/asm/28491/
P.P.S В электронном виде книги всегда в актуальном виде и содержат все исправления и дополнения (в том числе касающиеся новых процессоров).
Жаль халява закончилась. А сейчас можно где-то их приобрести в бумаге?
Похоже, что только если самому печатать, ну или поискать кого-нибудь, у кого есть, но не нужны, только те книги будут старой версии и не будут содержать ничего о процах, вышедших позже Atom'а.
Если найти достаточное количество людей, которым нужны в печатном виде, то можно было бы заказать на какой-нибудь типографии небольшой тираж (беглый гуглёж показал, что типографии печатают тиражами от 100/200/500 экземпляров книг в мягком переплёте). Так что если будет востребовано, то можно собрать народ и заказать.
Если найти достаточное количество людей, которым нужны в печатном виде, то можно было бы заказать на какой-нибудь типографии небольшой тираж (беглый гуглёж показал, что типографии печатают тиражами от 100/200/500 экземпляров книг в мягком переплёте). Так что если будет востребовано, то можно собрать народ и заказать.
>До появления первых ассемблеров программирование осуществлялось непосредственно в машинном коде.
Интересно, действительно ли так было. Лет 20 назад «компилировал» команды ассемблера (i8080, а вернее КР580ВМ80А) в машкод в тетрадке, а потом вводил хекс-дампы. Мог, конечно, без тетрадки написать «Hello World», но не более. Но как-то сомневаюсь, что даже первые программисты не использовали какие-то мнемокоды, а кодили прямо вхексебине.
Интересно, действительно ли так было. Лет 20 назад «компилировал» команды ассемблера (i8080, а вернее КР580ВМ80А) в машкод в тетрадке, а потом вводил хекс-дампы. Мог, конечно, без тетрадки написать «Hello World», но не более. Но как-то сомневаюсь, что даже первые программисты не использовали какие-то мнемокоды, а кодили прямо в
Не буду вступать в «священные войны» — пост был о времени 40-50 лет назад! (сам его не застал — увы ((( )
Я это понял и воевать не собирался. Мне интересно, действительно ли были люди переводящие алгоритмические абстракции в машинные коды без каких-то мнемоник, то есть формирование образа кода типа: «заносим в первый регистр процессора адрес строки» в виде: «21 07 01» без формирования этого образа.
В той же тетрадке переводили же как-то мнемонику в хекс дамп.
чаще удобнее было использовать восьмеричную систему — тогда опкоды многих категорий команд выглядят стойно и логично: (абстрактный пример) 01.010.001(bin) -> 121(oct) значит что-нибудь вроде ld B,A. Старшие два бита — тип команды, следующие 3 бита — регистр-получатель, следующие три — исходный регистр.
в таком виде при определённой сноровке вполне можно было оперировать опкодами, без мнемоник.
в таком виде при определённой сноровке вполне можно было оперировать опкодами, без мнемоник.
Держа под рукой таблицу (16х16) перевода мнемоники в команды.
У моего друга был советский компьютер (Вектор или Поиск, за давностью лет не помню), аналог PC XT, но без дисковода и жесткого диска. Была только возможность записывать и читать программы с магнитофона. Из языков программирования был только встроенный бейсик. Ему удалось на время раздобыть книгу по ассемблеру 8086, переписал все команды и коды в тетрадку, и написал в машинных кодах графический редактор (аналог Paint'а, хранившегося в ПЗУ Yamaha, которые стояли у нас в школе)…
Мы тогда, кажется, в 7-ом классе учились. Вот такой супер-мозг. Один раз было достаточно прочитать книгу, чтобы написать в кодах редактор. После школы потерял контакт, к сожалению, разъехались в разные города.
Мы тогда, кажется, в 7-ом классе учились. Вот такой супер-мозг. Один раз было достаточно прочитать книгу, чтобы написать в кодах редактор. После школы потерял контакт, к сожалению, разъехались в разные города.
Еще такой глупый вопрос к хабр-сообществу, ответить на вопрос — знаете ли вы (без гугла), сколько и какие байты составляют минимально-возможный цикл для x86 архитектуры (!!! пожалуйста отвечайте только да или нет)
А знаете ли вы без гугла, как выглядит байткод оптимизации хвостовой рекурсии в CLR на 64-битной архитектуре? Пожалуйста, отвечайте только зачем нам нужно знать про байтовое представление минимально возможного цикла на x86
Уважаемое хабросообщество, считаю, что нам сейчас же стоит вернуть этому парню карму (когда-то несправедливо отнятую). Почитайте его комменты, прошу вас. Это же чистейший случай, когда человек в полном адеквате, генерирует отличный контент и при этом почему-то ходит с отрицательной кармой (что несколько мешается, согласитесь). В рамках проекта по возвращению адекватов на Хабру, предлагаю привести в порядок ситуацию. Кто-то же должен из старожилов помнить пост с погребенными хабровчанами, это тот случай, блин.
> А знаете ли вы без гугла, как выглядит байткод оптимизации хвостовой рекурсии в CLR на 64-битной архитектуре?
Увы нет, ибо фанатик нэйтевного интеловского кода (а виртуальных машин много)
> Пожалуйста, отвечайте только зачем нам нужно знать про байтовое представление минимально возможного цикла на x86
Да, конечно не нужно — я в посте об этом писал — интересно много-ли знают ;)
Увы нет, ибо фанатик нэйтевного интеловского кода (а виртуальных машин много)
> Пожалуйста, отвечайте только зачем нам нужно знать про байтовое представление минимально возможного цикла на x86
Да, конечно не нужно — я в посте об этом писал — интересно много-ли знают ;)
Я использую 0xeb 0xfe для того, чтобы зациклить программу.
Нет.
Точно не знаю, но, по аналогии с i8080, — один байт: HLT (0x76) если память не изменяет. Гуглить формулировка вопрсоа не позволила :(
Точно не знаю, но, по аналогии с i8080, — один байт: HLT (0x76) если память не изменяет. Гуглить формулировка вопрсоа не позволила :(
Кстати, достаточно большой коммерческий протектор не очень хорошо защищен от взлома:
Хм, для дизасма не проще скачать официальную документацию по процам, она вся открытая, надо только поискать на сайте Intel, там все досконально расписано. Сам по их доке писал компилятор, дока идеальна :-)
Чуть выше написал об этих манах
habrahabr.ru/blogs/programming/128042/#comment_4231035
habrahabr.ru/blogs/programming/128042/#comment_4231035
исподники открыты и распространяются свободно
Скажите, а что такое исподники? Это то что одевают при ходьбе в исподнем?
• 0x3E – префикс замены сегмента BSЭто у вас что-за сегмент такой? В каком процессоре он появился?
Насколько же все-таки покалеченная в x86 система команд…
На днях написал свой дизасм zilog z80, даа — после него аж глаз режет!
Неудержался оставить комент спустя 10 лет))
Соус?
Source?
а...) вот либа — https://rubygems.org/gems/z80_disassembler/versions/0.2.6
а вот задеплоенный — https://pipiper.ru/disasm
IDA.
Есть отличная статья Криса Касперски «Дизассембилрование в уме» , которая раскрывает все тонкости дизассемблирования.
Sign up to leave a comment.
Дизассемблер своими руками