Ассемблер (мысли и вопросы по теме)

Модератор: Модераторы разделов

Аватара пользователя
Victor Gr.
Сообщения: 98

Ассемблер

Сообщение Victor Gr. »

Загорелся программированием на ассемблере. Много раз в юности начинал, интересовался, но теперь хочется попробовать и разобраться.

Есть опыт высокоуровневого программирования, разбираюсь в операционных системах и устройстве компьютера, но на таком низком уровне опыта мало.

В магазине листал книжки Зубкова, Юрова, Пирогова. Книги увесистые, видно, что охватывают все аспекты ассемблера, но как оказалось, что большая часть посвящена программированию в Windows/DOS. Я же перевожу себя на UNIX: FreeBSD/Linux, поэтому учить по книжке Ассемблер для Windows уже не получится.

Хочется в первую очередь разобраться в основах Асма. Как он работает, по каким принципам пишуться программы. Ну, а из основ, я думаю, к частного прийти всегда можно, будь-то Windows или UNIX. Хотя, писать программы с окошками и т. д. я как-раз и не планирую на асме. Для этого у меня есть другие языки. А хочется потренироваться в реализации низкоуровневого программирования, каких-нибудь алгоритомов...

В связи с чем хочу задать вопрос:
Какую книжку вы посоветуете?

В своё время пробовал примеры с WASM-а... Получалось :) Понял как работает cmp, jpe... :) Точка двигалась на экране. Вот с такими вещами и хочется разобраться, как стек, регистры, смещение.

Ну и второй вопрос.
Т.к. перехожу на UNIX, и знаю что в нём используется другой синтаксис AT&T, то может быть есть книжки именно по нему? Вроде бы это совершенно не важно, т.е. есть NASM с Intel-синтаксисом, но говорят AT&T-шный синтаксис гораздо лучше.

И ещё одно.
В книжках приведены примеры для MASM, TASM. А есть ли разница в синтаксисе между компиляторами MASM,TASM, NASM, FASM?

Буду рад любым ответам!
Спасибо!
Спасибо сказали:
Schreibikus
Сообщения: 18

Re: Ассемблер

Сообщение Schreibikus »

Victor Gr. писал(а):
11.10.2005 13:51
Ну и второй вопрос.
Т.к. перехожу на UNIX, и знаю что в нём используется другой синтаксис AT&T, то может быть есть книжки именно по нему? Вроде бы это совершенно не важно, т.е. есть NASM с Intel-синтаксисом, но говорят AT&T-шный синтаксис гораздо лучше.


Книжек скорее всего не найдешь...сходи лучше на http://linuxassembly.org и еще найдешь описание системных вызовов на http://www.lxhp.in-berlin.de/lhpsyscal.html

Victor Gr. писал(а):
11.10.2005 13:51
И ещё одно.
В книжках приведены примеры для MASM, TASM. А есть ли разница в синтаксисе между компиляторами MASM,TASM, NASM, FASM?
Буду рад любым ответам!
Спасибо!


Узнай ассемблер получше - на синтаксис потом внимания обращать не будешь...Одно непонятно - нафиг тебе это :)
Спасибо сказали:
Аватара пользователя
Victor Gr.
Сообщения: 98

Re: Ассемблер

Сообщение Victor Gr. »

Ну как, нафиг? :))) У кого-то рыбалка, у кого-то пиво в подъездах и гитара, а у меня - компьютеры и программирование :)

Спасибо!

Думаю, что лучше intel-синтаксис, т.к. вобщем-то все доки с ним.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Ассемблер

Сообщение elide »

ну если тебя не напрягают эти бесконечные dword ptr и т.д. то да, лучше интеловский синтаксис. а в остальном там мало различий...
слава роботам!
Спасибо сказали:
Аватара пользователя
powerfox
Сообщения: 458

Re: Ассемблер

Сообщение powerfox »

Посмотрите книги по as и nasm на http://www.opennet.ru/docs/124.shtml
Спасибо сказали:
Аватара пользователя
Marduk
Сообщения: 247

Re: Ассемблер

Сообщение Marduk »

Я уже однажды спрашивал здесь, может Вы не видели эту тему: http://www.linuxforum.ru/index.php?showtopic=9604
[ Arch Linux || xmonad || dzen2 ]
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: Ассемблер

Сообщение Asgard »

http://www.amazon.com/exec/obidos/tg/detai...=books&n=507846
* Examples use C as a high-level language, Linux as the development environment, and GNU tools for assembling, compiling, linking, and debugging
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
Victor Gr.
Сообщения: 98

Re: Ассемблер

Сообщение Victor Gr. »

Вопрос.

hello.c:

#include <stdio.h>
main ()
{
printf ("Hello World\n");
}

$gcc hello.c -S

И изучал вывод ассемблерного кода.

Интересно, конечно :), но видно (да и без этого понятно), что для вывода на экран используется функция printf.

Против ничего не имею, но интересно вот что:

Можно ли писать в консоле FreeBSD (Linux) средствами BIOS?
Помню, в Win98/DOS можно было :)

Конечно, в устройстве консоли я разбираюсь мало, поэтому вопрос может быть глупым. Но ответ мне интересен.
Спасибо сказали:
QUASIMORDA
Сообщения: 29

Re: Ассемблер

Сообщение QUASIMORDA »

U menja est' elektronnaja kniga po assembleru na Linux. Tol'ko ona na anglijskom
Спасибо сказали:
Аватара пользователя
Victor Gr.
Сообщения: 98

Re: Ассемблер

Сообщение Victor Gr. »

Класс!!! А можно её как-то получить?
Если что - почта vigrin@gmail.com

Хоть какая-то информация. Спасибо!
Спасибо сказали:
QUASIMORDA
Сообщения: 29

Re: Ассемблер

Сообщение QUASIMORDA »

Ona wesit 6.6 MB. Esli mozhno na wash adress poslatj stoljko, to pozhalujsta.
Спасибо сказали:
Аватара пользователя
aLexx programmer
Сообщения: 985
Статус: Турук-Макто
ОС: Gentoo -> Ubuntu

Re: Ассемблер

Сообщение aLexx programmer »

QUASIMORDA писал(а):
29.10.2005 14:55
Ona wesit 6.6 MB. Esli mozhno na wash adress poslatj stoljko, to pozhalujsta.

А ты порежь на куски ;)
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: Ассемблер

Сообщение Asgard »

QUASIMORDA
сделай доброе дело, выложи книгу на rapidshare.de или mytempdir.com, думаю, многие скажут тебе спасибо...
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Rohan
Сообщения: 170

Re: Ассемблер

Сообщение Rohan »

Начинай писать лучше сразу на Fasm. Это самый гибкий, быстро развивающийся и удобный компилятор. К тому же есть версия под *nix
Спасибо сказали:
Аватара пользователя
zenwolf
Бывший модератор
Сообщения: 3139
Статус: Страшный и злой
ОС: Slackware..Salix..x86_64

Re: Ассемблер

Сообщение zenwolf »

Quae videmus quo dependet vultus. (лат) - То, что мы видим, зависит от того, куда мы смотрим.
Спасибо сказали:
QUASIMORDA
Сообщения: 29

Re: Ассемблер

Сообщение QUASIMORDA »

Спасибо сказали:
Аватара пользователя
Marduk
Сообщения: 247

Re: Ассемблер

Сообщение Marduk »

[ Arch Linux || xmonad || dzen2 ]
Спасибо сказали:
Аватара пользователя
Victor Gr.
Сообщения: 98

Re: Ассемблер

Сообщение Victor Gr. »

Спасибо за классные ссылки всем!

О FreeBSD Assembly Book.
Английская. Можно перевести по $1/страницу. Но таких денег у меня нет )
Поэтому попробую найти людей согласных оплатить.

Есть желающие?
Спасибо сказали:
sid1333
Сообщения: 8

Re: Ассемблер

Сообщение sid1333 »

Народ, а есть в этой книге описалово номеров системных вызовов?
А то по книгу пока скачать неудалось :( по различным сетевым причинам...
Спасибо сказали:
Аватара пользователя
Marduk
Сообщения: 247

Re: Ассемблер

Сообщение Marduk »

В Linux номера системных вызовов находятся в /usr/include/asm/unistd.h
[ Arch Linux || xmonad || dzen2 ]
Спасибо сказали:
sid1333
Сообщения: 8

Re: Ассемблер

Сообщение sid1333 »

Спасибо уже нашёл тока немного не там, а в /usr/include/sys/syscall.h
Спасибо сказали:
Аватара пользователя
AlexeyAL
Сообщения: 71

Re: Ассемблер

Сообщение AlexeyAL »

Посоветуйте какие-нибудь книжки по программированию на ассемблере на уровне железяк, т.е. без участия какой бы то ни было ОС.


Когда я вырасту и стану крутым программистом, я напишу свое ядро и подарю его Ричарду Столлмену
Спасибо сказали:
Sfunx
Сообщения: 47

Re: Ассемблер

Сообщение Sfunx »

Могу сказать как разработчик embedded-систем, имеющий немалый опыт в программировании на асме и с, следующее.

АСМ безусловно необходимо изучать тем, кто претендует на звание программиста. Изучать - не значит пользоваться. Но для понимания того как работает процессор, и система (имеется ввиду вычислительная система, а не ОС) - лучше асма - нет.
Использовать же АСМ надо по мере необходимости, которая возникает не так уж часто.

Да и многие элементарные понятия студенту объяснить куда проще, если он знает АСМ. Потому у нас в ВУЗе ввели асм на первом курсе. Чтобы у людей была база.

Помню как пытался людям, которые никогда асма не видели, объяснить что такое указатель - целую лекцию прочесть пришлось. И то половину не поняли.

А тем, кто асм знает - достаточно сказать было - "указатель - это адрес памяти, в котором лежит объект". И все!

Так что нечего интегралы вперед таблицы умножения учить. Это мое мнение.
Спасибо сказали:
bugel
Сообщения: 225

Re: Ассемблер

Сообщение bugel »

Английская. Можно перевести по $1/страницу. Но таких денег у меня нет )
Поэтому попробую найти людей согласных оплатить.

Учи английский... без этого - никак. Лучше потрать деньги на своё обучение языку.
С уважением, bugel
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: Ассемблер

Сообщение d_Sun »

Sfunx писал(а):
18.11.2005 09:21
Могу сказать как разработчик embedded-систем, имеющий немалый опыт в программировании на асме и с, следующее.

АСМ безусловно необходимо изучать тем, кто претендует на звание программиста. Изучать - не значит пользоваться. Но для понимания того как работает процессор, и система (имеется ввиду вычислительная система, а не ОС) - лучше асма - нет.
Использовать же АСМ надо по мере необходимости, которая возникает не так уж часто.

Да и многие элементарные понятия студенту объяснить куда проще, если он знает АСМ. Потому у нас в ВУЗе ввели асм на первом курсе. Чтобы у людей была база.

Помню как пытался людям, которые никогда асма не видели, объяснить что такое указатель - целую лекцию прочесть пришлось. И то половину не поняли.

А тем, кто асм знает - достаточно сказать было - "указатель - это адрес памяти, в котором лежит объект". И все!

Так что нечего интегралы вперед таблицы умножения учить. Это мое мнение.


Как разработчик Embedded systems "имеющий немалый опыт в программировании на асме и с" на 200% согласен! :D
Моя подпись сильно длинная :)
Спасибо сказали: