Здравствуйте, развейте мои сомнения и подскажите правильно ли я думаю,
у меня процессор Intel core i7 (x64) имеется книга В.И.Юров Assembler 2-издание но она на IA-32, верно же что данная информация и примеры не подойдет под мою архитектуру и так как регистры и команды отличаются или же нет?
Стоит ли искать книгу на архитектуру x86_64 ?
Большое спасибо за внимание!
Книга по Ассемблеру вопрос.
Модератор: Модераторы разделов
-
- Модератор
- Сообщения: 20348
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Книга по Ассемблеру вопрос.
x86_64 — расширение старых x86-архитектур, так что все примеры должны работать. Другой вопрос — стоит ли тратить время на изучение старья.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 2477
- ОС: Gentoo
Re: Книга по Ассемблеру вопрос.
Там разница не особо отличается. Вполне подойдёт, там разница в разрядности. Обычно для 64 бит регистры начинаются с буквы r(rax, rcx...), ну а команды обычно с окончанием q(movq) - но это зависит от ассемблера который используете.Maria von Weber писал(а): ↑31.05.2021 17:37Здравствуйте, развейте мои сомнения и подскажите правильно ли я думаю,
у меня процессор Intel core i7 (x64) имеется книга В.И.Юров Assembler 2-издание но она на IA-32, верно же что данная информация и примеры не подойдет под мою архитектуру и так как регистры и команды отличаются или же нет?
Стоит ли искать книгу на архитектуру x86_64 ?
А вот практикум Юрова в некоторых местах желает лучшего, некоторые примеры не рабочие, много косяков, скорее всего его студенты писали. Для основ вполне подойдёт, но нужно знать что поправить чтобы перенести на 64 бита.
-
- Сообщения: 873
- ОС: debian, fedora (i3-wm)
Re: Книга по Ассемблеру вопрос.
Главное отличие в соглашении о передачи параметров не через стек, а через регистры. (для системных вызовов,
конечно ни кто не запрещает любой порядок передачи в пользовательские функции)
Наткнулась как то на записки "старого программиста" где все регистры были
заменены на 64 битные, но прерывание вызывалось не через syscall, а через int $0x80
Код: Выделить всё
man syscall
со всеми их номерами и порядком передачи параметров.
P.S Предвижу возможные возражения. Я тоже написала что за такое надо руки отбивать, ведь серия статей
предназначена была для обучения и меня забанили.

Добавлено (20:59):
Это смотря каким ассемблером вы пользуетесь. По моему есть книга для fasm. Все примеры выполнены в убунте на x86-64
Если нужна могу найти и выложить. Если по gas x86-64 с синтаксисом AT&T, то есть хорошие отрывки из книги которые для начала могут многое прояснить. Могу подобрать ссылки
Добавлено (21:10):
А, забыла сказать, что почти все на английском. И извиняюсь, в книжке используется не fasm, а yasm ассемблер с синтаксисом intel
Последний раз редактировалось olecya 31.05.2021 21:21, всего редактировалось 5 раз.
-
- Сообщения: 2477
- ОС: Gentoo
Re: Книга по Ассемблеру вопрос.
Ну да, скорее всего он сам не пробовал эти примеры воспроизвести на 64 битной системе. Ну и там сохранение в регистры зависит от числа параметров, стек там тоже может использоваться.
Я у Юрова находил реально не рабочие примеры, например сортировка методом Хора, там если ввести в порядке убывания либо возрастания, то сортировка работает, но если ввести белиберду, то белиберда и выходит. Там просто не правильное представление алгоритма, перевели функциональный подход на использование стека, но не разобрались как правильно осуществить рекурсию на асме. Просто упустили важную деталь в работе функций - при возврате необходимо возвращать ещё значения параметров.
Спасибо сказали:
-
- Сообщения: 6
Re: Книга по Ассемблеру вопрос.
Только ради интереса и ради знаний истории расширения x86-архитектур, а так да, смысла особо в этом нет.Bizdelnick писал: ↑31.05.2021 17:50x86_64 — расширение старых x86-архитектур, так что все примеры должны работать. Другой вопрос — стоит ли тратить время на изучение старья.