[Linux-NASM] need учебные материалы

yroslavasako

В своё время в рамках учебного курса освоил примитивное ассемблирование в dosbox и masm. Общие принципы ещё помню. Теперь вот для самообразования решил изучить более серьёзный случай - nasm под линукс для 64 битных процов. Для этого нужно вспомнить набор инструкций (хотя бы базовый и список расширенных вспомнить бы куда растёт стек, как сегменты настраивать и какие есть функции системные доступные и как их вызывать. То бишь бегло проглядеть руководство для начинающих, дабы освежить память и усвоить различия между системами, и более продвинутое пособие для того, чтобы посмотреть правильные практики, примеры полезных макросов, и посмотреть более широкий список инструкций, рассмотреть несколько примеров средней сложности.
Вопрос собственно в том как называются эти пособия для начинающих и продвинутых и где их взять?

Vlad77

Вопрос собственно в том как называются эти пособия для начинающих и продвинутых и где их взять?
http://tinyurl.com/ydskgln
http://tinyurl.com/ycekgj8
http://tinyurl.com/ydkvuo3
http://tinyurl.com/y9pdwaw
http://tinyurl.com/y8ruawe

yroslavasako

http://tinyurl.com/ydskgln
http://tinyurl.com/ycekgj8
http://tinyurl.com/ydkvuo3
http://tinyurl.com/y9pdwaw
http://tinyurl.com/y8ruawe
а слабо нормальные ссылки дать? через мой банфильтр твои запросы пролезть так и не смогли. Если что в гугол я ходил, посмотрел десяток результатов, но ничего путного не нашёл.

Vlad77

интеловская документация там: Intel(R) 64 and IA-32 Architectures Software Developer's Manual и сопутствующие

yroslavasako

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

Vlad77

У меня ни от одной учебной литературы, которая попадалась в руки, такого прозрения как от доков, не было
Если так сложно, могу даже указать где ответы на твои вопросы в них написаны
Для этого нужно вспомнить набор инструкций (хотя бы базовый и список расширенных)
Второй том - инсткукции
вспомнить бы куда растёт стек
В самом начале первого тома должно быть. Также см описания инструкций push, pop, call, ret, int, iret, sysenter, sysexit
как сегменты настраивать
Третий том, глава, кажется, Protection - будет тебе полное описание дескрипторов
Только скажи, ты системный код собрался писать или пользовательский? В первом случае ещё нужно про переход между режимами прочитать - в конце первой части третьего тома должно быть.
и какие есть функции системные доступные и как их вызывать
Те же, что и в сях. Гуглить по calling convention, или читать что gcc -S выдал

yroslavasako

а хотелось бы нормального объяснения работы наиболее необходимых системных вызовов. + я говорил о формате elf, о чём в указанной документации ничего не упоминается. А настройка сегментов - штука форматозависимая и быть подсмотренной всего лишь в документации к процу быть не может. Ну и в конце концов, интересно, есть ли в сабже примеры правильных паттернов использования NASMa? Судя по тому что это дока по интелу, вряд ли. То бишь изучить её всё равно придётся. но хочется нормальный учебник, с примерами, советами, растолковывающий основные моменты. После подобного учебника читать подробные доки по процессору будет куда приятнее. Знать синтаксис языка - не одно и то же, что знать как этот язык правильно использовать

SPARTAK3959

В пользовательских программах сегменты настраивать не надо (единственные известные мне исключения - написание эмуляторов и безопасное исполнение недоверенного кода). Да и драйверам в ядре таким извращениям не зачем страдать.
PS Может стоило выбрать fasm вместо давно останавившегося в развитии nasm'a?

yroslavasako

PS Может стоило выбрать fasm вместо давно останавившегося в развитии nasm'a?
а чем он лучше nasm? а то после изучения насмовской доки по синтаксису не оходта ещё и fasm читать. Хотя если там будет не только дока, но и учебник хоть какой, то почитаю.
Поясню на другом примере, какого рода документацию мне хочется почитать. Вот питон я изучал по двум докам (+ ещё несколько отдельных мануалов по техникам вроде "функциональное программироване на языке питон"). Первый документ - это учебник Dive into Python, который пусть и неполный (про set вообще не слова, про функции над list тоже недостаточно написано зато доступно и понятно объясняет язык и его дух. А потом я прочитал python tutorial с оффсайта и получил более детальную и полную информацию. Но начинать с него было бы неправильно, не привязанная к конкретным соображениям абстрактная информация надолго бы в памяти не засела. А когда уже знаешь как эту информацию можно применять и при чтении представляешь себя различные сценарии использования - туториал запоминается куда лучше.
Вот я ищу что-то вроде dive into nasm (fasm)

1963mila

 http://asm.sourceforge.net/
И, да, чуть не забыл, на wasm.ru статьи уже смотрел?

1963mila

вместо давно останавившегося в развитии nasm'a?
Специально зашёл в репозиторий nasm'а. Последний коммит - позавчера. Это называется "остановившийся в развитии"?

Helga87

Какую цель ты ставишь перед собой, связываясь с ассемблером?

yroslavasako

Какую цель ты ставишь перед собой, связываясь с ассемблером?
ту же, что и при изучении ФЯ. Рассмотреть какие есть способы управления вычислениями и какие практики использования порождает инструментарий.

Helga87

Я просто сам в прошлом месяце ботал асм, но для арм (с x86 asm уже был знаком, т.к. на нем писал машграф на 2-м курсе). Рекомендую глянуть после того, как надоест возиться с NASM/FASM.
При прочтении книги по ARM Architecture возникает только один вопрос — какого фига столько проблем при программировании под x86.
Я читал эту книгу.
Оставить комментарий
Имя или ник:
Комментарий: