Anonymous
Спасибо всем за внимание ))
Anonymous
Или не обязательно искать именно для моего процессора документацию, тоесть есть ли там не знаю типо диапазон чтоле называть это, ну например от версии Т1 до Т8 ассемблер один и тот же ?
Anonymous
Или это жёстко все индивидуально ?
Anonymous
Или это группа для профессионалов ? Если так прошу прошения, я выйду и пойду искать клуб нубов ))
Aiwan \ (•◡•) / _bot
Или не обязательно искать именно для моего процессора документацию, тоесть есть ли там не знаю типо диапазон чтоле называть это, ну например от версии Т1 до Т8 ассемблер один и тот же ?
с появление i386 (1985г) асм для проца не изменился. с годами только наращивается кол-во инстукций. появление х64 режима работы проца количество инструкций еще больше возрасло.
Aiwan \ (•◡•) / _bot
ты лучше б сказал какую инфу ты хочешь найти
Anonymous
Вы это посмотрели ? Если да, то я для начала хочу научиться писать именно для этой железяки, вот что и где читать для этого ?
Anonymous
Ничего себе
Anonymous
Какую книгу читать посоветуйте ?
Aiwan \ (•◡•) / _bot
Какую книгу читать посоветуйте ?
все, но только понравившуюся дважды
Anonymous
все, но только понравившуюся дважды
😅 Я не знаю какую выбрать, я нашел сайтик с книжками, называется codernet.ru, там много книг, я думаю среди них есть те которых не стоит читать 😅 наверняка должны быть такие ) характерно новичка, поступил бы, какую книгу читали вы ? )
Aiwan \ (•◡•) / _bot
мануал к асму, + его же примеры. а дальше гуглежка по непонятным вопросам
Aiwan \ (•◡•) / _bot
так я получаю ту инормацию, которая необходима мне на тот или иной этап изучения, нет необходимости читать воду или то, что я и так уже знаю, или то что на данном этапе мне никак не пригодится
Aiwan \ (•◡•) / _bot
а для общего развития надо прочитать любую книгу, чтоб знать вообще о чем они пишут. они все одинаковые, но разные
Anonymous
Они все одинаковые но разные ? 🤯
Aiwan \ (•◡•) / _bot
одинаковые потому что пишут об одном и том же. разные потому что у каждого автора свой стиль изложения информации, важность которой определяет он сам
Aiwan \ (•◡•) / _bot
Запутаете новичка))
в чем я не прав?
Anonymous
в чем я не прав?
В целом, ответить можно было намного проще
Eugene
xk8.ru/asmlinks – тут книги (названия), мануалы, инструменты. Какая книга лучше – не знаю, я книги по асму не читал больше 20 лет, сейчас только мануалы, спецификации в основном :). Но там (по ссылке) есть что выбрать. Во-первых, надо ориентироваться на ОС, под которую будет писаться код (Windows, Linux – 32 бита или 64 бита, DOS – 16 бит) – в этом зависимость от платформы. И книгу можно выбирать в соответствии с этим. Во-вторых, если это семейство x86, то это одно, если ARM, то другое. И есть ещё 100500 других процессов и выдуманных систем типа LLVM. Это тоже является частью платформы. Платформа – это процессор + ОС. У тебя х86. В целом, ассемблер там во многом одинаковый для всех ОС, есть только нюансы разной разрядности (16, 32, 64 бита) и разные системные ABI/API и методы взаимодействия с ними. Т.е. функция расчёта НОД или сортировки (если не надо выделять память) будет одинаковой для любой ОС (за исключением мелких нюансов), а вот функции выделения памяти или вывода сообщений очень сильно зависят от ОС. Ассемблеры разных процессоров отличаются очень сильно, это почти что как разные языки.
Aiwan \ (•◡•) / _bot
Они все одинаковые но разные ? 🤯
бери кип ирвина, 4е издание переведено
Eugene
Из более современного и для Linux: https://www.ozon.ru/products/267122010 (прям свежак, отзывы хорошие) https://m.vk.com/wall-54530371_42703 (популярная книга)
Eugene
Сколько книг интересных появилось! Вот, например, включает в себя AVX-512: https://www.ozon.ru/products/303224072 А вот по ARM (хотя год назад искал, ничего не нашёл, а книга 2017 года): https://www.ozon.ru/products/431278951
Eugene
А нет, вру, 2022 года.
Eugene
Не знаю только, в 320 страницах многое ли можно описать.
Anonymous
xk8.ru/asmlinks – тут книги (названия), мануалы, инструменты. Какая книга лучше – не знаю, я книги по асму не читал больше 20 лет, сейчас только мануалы, спецификации в основном :). Но там (по ссылке) есть что выбрать. Во-первых, надо ориентироваться на ОС, под которую будет писаться код (Windows, Linux – 32 бита или 64 бита, DOS – 16 бит) – в этом зависимость от платформы. И книгу можно выбирать в соответствии с этим. Во-вторых, если это семейство x86, то это одно, если ARM, то другое. И есть ещё 100500 других процессов и выдуманных систем типа LLVM. Это тоже является частью платформы. Платформа – это процессор + ОС. У тебя х86. В целом, ассемблер там во многом одинаковый для всех ОС, есть только нюансы разной разрядности (16, 32, 64 бита) и разные системные ABI/API и методы взаимодействия с ними. Т.е. функция расчёта НОД или сортировки (если не надо выделять память) будет одинаковой для любой ОС (за исключением мелких нюансов), а вот функции выделения памяти или вывода сообщений очень сильно зависят от ОС. Ассемблеры разных процессоров отличаются очень сильно, это почти что как разные языки.
За сыль, санкью👍
Anonymous
Всем доброго времени суток! У меня вопрос по nasm, на сегодняшний день оправдывается его изучение? Обратил внимание на nasm, т.к. использую linux и плюс к этому nasm есть и под винду. Ранее изучал masm (Калашников и др.кн.), но не практиковал в коде, а только читал команды в отладчике (люблю ковырять код...). Использовать asm от gcc, как-то запутанным показалось. Так что присматриваюсь к nasm (ищу техдоки и потихоньку читаю от скуки, но не шкодю), чтоб в будущем начать изучать, а далее практиковать (совместно с С/С++). Заранее благодарен.
Anonymous
masm используется еще самим MSVC )
Anonymous
по крайней мере в синтаксисе дампов
Anonymous
вроде ж нельзя другой синтаксис указать ему?
Eugene
Я делал как-то набор файликов для облегчения работы в Linux. И вот описание (ну и вообще про системные вызовы): https://www.cyberforum.ru/assembler-linux/thread2276428.html Examples included...
Aiwan \ (•◡•) / _bot
насколько я помню, FASM был геморройным под линуксом
говоришь был. а сейчас уже нет? и в чем геморойность?
usernameak
говоришь был. а сейчас уже нет? и в чем геморойность?
я помню, что в нём был какой-то геморрой с PLT
usernameak
как сейчас хз
Eugene
Вот версия для fasm/fasmg, там только макросы lsyscallx с fasmg не пашут. Недоисправленная версия, короче говоря :) Собственно, fasmg нужен для редко используемого x32 ABI (не путать с x86). Всё остальное прекрасно работает, никакого гемора.
Anonymous
Ухты, как все сложно 🤯
Anonymous
Эти книжки
­
Ты знал, куда лез.
Anonymous
Да, я пока скопировал программу для вывода на экран надпись, даже нашёл 2 разных варианта, но выводят одно и то же... Пока понял я то, что какие кусочки цифр и символов какого то целого пересылается или не знаю как ещё это называется, я вроде понял это как перемещение, туда сюда в памяти... А регистры вообще анреал тема оказывается для новичка... Ух
Anonymous
И ещё, пытаюсь разобраться почему используются именно те или иные регистры
Anonymous
Anonymous
И ещё, пытаюсь разобраться почему используются именно те или иные регистры
1. Потому что инструкция процессора требует 2. Нет причины. Потому что захотелось. Можешь использовать какие угодно регистры общего назначения (3. Соглашение о вызовах требует)
Anonymous
Я ещё научился сохранять процесс выполнения чтоле или процесс чтения кода, но это в документации называется "листинг", и там у меня было в начале какая ошибка, ну я в начале подумал что это ошибка, но оказывается предупреждение, там было написано над каждой командой, что то вроде ... error, in 32 bit mode 😁 Потом посмотрел заново все переписал и вуаля, предупреждение исчезла , прикольно)
Anonymous
И вообще не смог понять что такое директивы... Ну вот эти есть же, .text .data
Anonymous
И вообще мало что то в интернете руководство по ассемблерам + по процессорам и т.д я чёт не могу найти нормальную документацию, постоянно подаются такие ссылки типо, нажимаешь открывается вообще другая страница которая абсолютно не связана с программированием
Anonymous
Понятно
Anonymous
Anonymous
Anonymous
Anonymous
Теперь выдаёт ошибку 😅 ваще не понимаю
Anonymous
Через некоторое время выдаёт ошибку
Anonymous
А иногда все хорошо работает
Anonymous
Один и тот код
Anonymous
Я там ещё увидел, что типо "SECTION.DATA" идёт самом низу... И работает
Anonymous
Тоесть все равно чтоле компьютеру где именно находятся определенные функции ?
Anonymous
Тоесть все равно чтоле компьютеру где именно находятся определенные функции ?
Данный код будет выполнять ОС, загрузчик находит точку входа внутри структуры формата файла ELF, и оттуда начинает выполнение кода. Устанавливает структуру твой линковщик, когда ты указываешь _start .data это секция данных, она не исполняется, там только данные
s54820
У тебя 32-битные сисколлы и 64-битный ELF. Выбери что-то одно. Например, сделай nasm -f elf32 или найди себе туториал о том, как делать 64-битные сисколлы.
Anonymous
Данный код будет выполнять ОС, загрузчик находит точку входа внутри структуры формата файла ELF, и оттуда начинает выполнение кода. Устанавливает структуру твой линковщик, когда ты указываешь _start .data это секция данных, она не исполняется, там только данные
Понятно, о да кстати, могу ли я посмотреть как выглядит этот загрузчик и компоновщик ? про ELF я прочитал, тоже больная тема оказывается, с этим фарматом там связано куча программ которые типо помогают анализировать данный формат, что что именно там анализируется пока у меня туманно 😂
s54820
сискрллы? Это что я пока такое не прочитал 😅 тоже чтоле отдельная тема ?
Вот это int 80h — это обращение к системе (к ядру), системный вызов, сисколл.
Anonymous
Уххтыыш, о май гаш, ассемблер видимо это весь айти 😂
Anonymous
Ядро, новая тема для чтения, спасибо, буду знакомиться.
Anonymous
А, обращение к системе называется - сисколл ? Понятно, спасибо
Anonymous
Тоесть, 80h - это система чтоле ? Система так называется чтоле ? Прикольно, 80аш )) это всегда так ? Тоесть 80 число не меняется ?
Anonymous
А почему именно 80 ? А почему вообще надо обращаться к системе ?
Anonymous
А
Anonymous
А кто тогда будет выполнять код 😅
Anonymous
Тоесть int 80h это функция или команда для обращения к системе ?
­
Потому что это номер.
Anonymous
Ассемблер сверху вниз читает код и выполняет ? Или если определенные условие или шаги