Кастро
Ладно, может хуйню сказал
mb6ockatf
здравствуйте. пытаюсь делать проект на nasm, x32 https://pastebin.com/DqvAdc45 выбрасывает segmentation fault, gdb указывает на int 80h. помогите пожалуйста, что происходит не так? программа выполняется 2 раза и крашится, видимо, я завершаюсь как-то не так. помогите найти ошибку я дуралей, не тот системный вызов делал. извиняюсь а они в x32 отличаются от таковых в x64?
Leon
Это я знаю, только дело в интерфейсе, то есть Qt расчитан на ООПшные обращения к нему, а не на процедурные
Никто тебе не мешает ручками на асме создать необходимые структуры данных/кода, также ручками обрабатывать полученное от QT и т.д и т.п. Да это может не быть совсем тривиально и повозится придется но ничего супер сложного там нет. Ну разберешь внутреннюю рантайм структуру с++ объекта, ну не страшно.
Кастро
Всем привет, как у кого настроение?
The Bird of Hermes
Всем привет, как у кого настроение?
Настроение конечно хорошее, но флудилка в описании
Кастро
Это я троллил людей в группе врачей
Кастро
Могу скрин того, что я написал в ЛС скинуть
Кастро
Там жесть
Баир
Подскажите, пожалуйста, gui дебаггер для nasm. Пробовал edb, sasm. Не могу найти в них где отображается память. В edb вроде есть, но какие-то адреса вне диапазона.
Кастро
Сегодня спорили в чате по Golang о том, является ли язык ассемблера универсальным или узкоспециализированным
Кастро
Ну я им и рот заткнул
Кастро
Так и хочется уже написать бэкэнд сайта на языке ассемблера и показать им
Кастро
Чтоб не несли бред об узкоспециализированности языка
Кастро
Скинь пожалуйста
Ещё найти надо
Кастро
Давно было
Баир
Подскажите, пожалуйста, где ошибка? Компилируется, но выдает ошибку Segmentation fault. Ассемблер NASM, Debian 64-bit.
disba1ancer
Aiwan \ (•◡•) / _bot
в rdi у тя 0х00000000000В0703. что у тя по этому адресу находится? если не твое, то есть ли доступ для твоего процесса?
Aiwan \ (•◡•) / _bot
вызов write принимает строку для вывода, строки я у тебя тут не вижу
не строку, в асме грубо говоря нет такого типа данных, а адрес строки
The Bird of Hermes
не строку, в асме грубо говоря нет такого типа данных, а адрес строки
В асме вообще нет типов данных, есть области памяти определённого размера и структуры, определяемые пользователем😁
The Bird of Hermes
И передача аргумента-строки в таком случае возможно только если это строка длинной в 8 символов через РОН(а можно и 16 через xmm-регистры)
disba1ancer
disba1ancer
и разве в х64 линухе не syscall?
просто у syscall другие номера вызовов в rax
Aiwan \ (•◡•) / _bot
int 80h тоже есть
ну тогда ладно
­
Криптопидор?
­
@romanovvvadim ответь на вопрос
­
И ты тоже ответь, @rybailov rybailov
­
­
Руслан
Что?
­
На русском, пожалуйста.
Дмитрий
Не, я этому индивиду точно не помошник. 😏
Оруэлл
Всем привет
Оруэлл
Это мой второй аккаунт
Оруэлл
Давно не писал, что-то
Оруэлл
Ребят, скажите пожалуйста, а какой из ассемблеров имеет чистый Intel-синтаксис без модификаций?
Оруэлл
Интересно просто стало
Оруэлл
Ибо в отличии от обилия компиляторов C, в асме на один ассемблер - один язык
Оруэлл
usernameak
(правда это тебе не особо поможет, потому что он из глубоких 80-ых)
Оруэлл
любой, который не айтити для х86(64)
Просто смотри какая тема, я так-то в ассемблере нуб еще, и кое-что понять не могу. Вот к примеру есть язык C++ и у него около 20 компиляторов, но язык остается один. А в ассемблерах я особо понять не могу, ибо есть "Intel-синтаксис", но как я понимаю, у каждого ассемблера своя версия этого синтаксиса, короче не вдупляю.
Aiwan \ (•◡•) / _bot
Просто смотри какая тема, я так-то в ассемблере нуб еще, и кое-что понять не могу. Вот к примеру есть язык C++ и у него около 20 компиляторов, но язык остается один. А в ассемблерах я особо понять не могу, ибо есть "Intel-синтаксис", но как я понимаю, у каждого ассемблера своя версия этого синтаксиса, короче не вдупляю.
ну вот смотри, заходишь ты такой в днс или мвидео. идешь комп себе покупать или ноут. и тут одни вындовсы да линуксы, почти в каждом ноуте свой проц, в каждом блоке свой проц. это что и все ассемблеры разные чтоль будут? да их каждый год пачками выпускают. нет асм для них для всех будет 1 ибо асм это прежде всего архитектура. в твоем случае в магазине будет х86-64. вот и асм для него нужен соответствующий. есть разные авторы/производители асмов, у каждого свой синтаксис (подчерк). генерят они абсолютно одини тот же код, на каком бы ты асме не написал одни и теже инструкции. где то инструкции идут нормально, а где тот через жопу (айтити 😊). вот там где нормально, привычно, без визуальной нагруженности, словом так как прописано в intel manual - это интел синтаксис. его используют почти все асмы. а вот gas отличился. синтаксис (интел айтити) это всего лишь правило для компиля/транслятора в какой последовательности идут операнды для мнемоник, размеры операндов по разному пишутся. вот и все
usernameak
ну вот смотри, заходишь ты такой в днс или мвидео. идешь комп себе покупать или ноут. и тут одни вындовсы да линуксы, почти в каждом ноуте свой проц, в каждом блоке свой проц. это что и все ассемблеры разные чтоль будут? да их каждый год пачками выпускают. нет асм для них для всех будет 1 ибо асм это прежде всего архитектура. в твоем случае в магазине будет х86-64. вот и асм для него нужен соответствующий. есть разные авторы/производители асмов, у каждого свой синтаксис (подчерк). генерят они абсолютно одини тот же код, на каком бы ты асме не написал одни и теже инструкции. где то инструкции идут нормально, а где тот через жопу (айтити 😊). вот там где нормально, привычно, без визуальной нагруженности, словом так как прописано в intel manual - это интел синтаксис. его используют почти все асмы. а вот gas отличился. синтаксис (интел айтити) это всего лишь правило для компиля/транслятора в какой последовательности идут операнды для мнемоник, размеры операндов по разному пишутся. вот и все
так-то не одни и те же инструкции некоторые можно закодировать несколькими разными способами
Aiwan \ (•◡•) / _bot
так-то не одни и те же инструкции некоторые можно закодировать несколькими разными способами
закодируй другой мнемоникой инструкцию nop. в hex,bin,oct,dec не считается
Aiwan \ (•◡•) / _bot
ну тут можно (XCHG EAX,EAX)
usernameak
ты можешь его же в принципе закодировать и как xchg ebx, ebx
Aiwan \ (•◡•) / _bot
usernameak
и как я это увижу в дизассме?
а ещё есть многобайтовые опкоды для nop
Aiwan \ (•◡•) / _bot
а ещё есть многобайтовые опкоды для nop
тогда приведи для каждой интрукции ее аналог кодирования другой интсрукцией. это лишь исключение из правил, что подтсвердает правила
Оруэлл
ну вот смотри, заходишь ты такой в днс или мвидео. идешь комп себе покупать или ноут. и тут одни вындовсы да линуксы, почти в каждом ноуте свой проц, в каждом блоке свой проц. это что и все ассемблеры разные чтоль будут? да их каждый год пачками выпускают. нет асм для них для всех будет 1 ибо асм это прежде всего архитектура. в твоем случае в магазине будет х86-64. вот и асм для него нужен соответствующий. есть разные авторы/производители асмов, у каждого свой синтаксис (подчерк). генерят они абсолютно одини тот же код, на каком бы ты асме не написал одни и теже инструкции. где то инструкции идут нормально, а где тот через жопу (айтити 😊). вот там где нормально, привычно, без визуальной нагруженности, словом так как прописано в intel manual - это интел синтаксис. его используют почти все асмы. а вот gas отличился. синтаксис (интел айтити) это всего лишь правило для компиля/транслятора в какой последовательности идут операнды для мнемоник, размеры операндов по разному пишутся. вот и все
Кстати о процессорах, ты не знаешь, чем вообще отличаются модели между собой, просто я смотрел - у Интела их больше 50 наверное, хотя архитектура одна?
usernameak
но немного таких есть
Aiwan \ (•◡•) / _bot
но немного таких есть
и каким вариантом ты всегда пользуешься когда пишешь на асме? заменителем или оригиналом?
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
Нет
мото?
Оруэлл
мото?
Ноги есть
Aiwan \ (•◡•) / _bot
Ноги есть
не, собственные ноги не подойдут, разве что протезы для примера. давай подискутируем. какие двигатели бывают по типу?
Оруэлл
Разной мощности