Консультация № 200394
07.03.2021, 19:43
0.00 руб.
0 21 1
Здравствуйте! У меня возникли сложности с таким вопрос:
Какой компилятор нужен под NASM в LINUX. И на каком аsм можно писать под linux?

Обсуждение

в сети
Управляющий
143894
2148
07.03.2021, 20:59
общий
Адресаты:
Насколько я понимаю NASM работает и в видовс, и в линукс, и в макос, и в ДОС и даже в колибри.
А программировать можно не только в NASM, но и в FASM, и в GNU - тут уж выибать вам самому. На вкус и цвет товарищей нет.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Посетитель
404853
18
08.03.2021, 00:39
общий
Адресаты:
прошу прощения! я наверно не правильно задал вопрос. хотел узнать! приложения или программы (для проверки кода) nasm. наверно так.
вообще куча вопросов?
есть разница если я буду писать на nasm под linux то программа будет делать то что мне надо под другой ос?
ДА!
супер!!! подскажите пожалуйтста какой язык проще и какого больше функционала?
или они все равны по функционалу?
калибри не знаю
в сети
Управляющий
143894
2148
08.03.2021, 10:31
общий
09.03.2021, 11:38
Адресаты:
Как говаривали древние греки: "Правильно сформулированный вопрос - это 70% ответа".
Если у вас куча вопросов - попробуйте их однозначно сформулировать, что бы эксперты вас поняли, что вы хотите, а не догадывались. Потому, что если "дурной" вопрос, то и шанс получить "дурной" ответ высок.
Как говорили в КВН: "Потому что гладиолус".
На счет простого языка, то по моему разумению, следует начинать с JavaScript и Python. Ассемблер, по моему, не самый лучший язык для первоначального изучения.
А вообще, выбор языка определяет та область, в которой вы хотите чего-то достичь с помощью кодинга.
И в конце, раз вы не знате, что такое колибри, начинайте учить матчасть - без этого не стать вам прграммером.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Посетитель
404853
18
08.03.2021, 22:15
общий
Адресаты:
Согласен! Насчет не правильного вопроса!
Дело в том, что я отучился на программиста и даже закончил! Но так как не было практики (имеем что имеем)! теперь хочу восстановить упущенное!
Проходил другие языки программирования! И решил начать с асм!
Думаете рановато? Надо начать с верхнего уровня?!
в сети
Управляющий
143894
2148
09.03.2021, 09:48
общий
09.03.2021, 10:36
Адресаты:
Все зависит от поставленной задаче - восстановить упущенное
для чего?
Что бы зарабатывать - тогда тот язык, что востребован в вашем регионе.
Что бы писать для себя - тогда тот язык к которому лежит душа.
Для простого баловства - тогда без разницы какой язык.

Ну и так далее.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Старший Модератор
31795
6196
09.03.2021, 10:47
общий
09.03.2021, 12:35
Адресаты:
Цитата: svo
Какой компилятор нужен под NASM в LINUX. И на каком аsм можно писать под linux?

NASM - уже компилятор.
Цитата: svo
программа будет делать то что мне надо под другой ос?

Несмотря на то, что он кроссплафоменный:
Цитата: NASM
Операционная система Linux, Mac OS, Windows, DOS, KolibriOS

НЕТ.
Все эти ОСи используют разные принципы вызова системных функций
  • nux-ы используют SYSCAll(int 80h);
  • Windows -библиотеки;
  • DOS - прерывания;
  • Mac OS - ничего не скажу, т.к. не писал под неё, но там отличается процессор, он больше похож на ARM, чем на х86. Да некоторое время Mac OS портировалась под х86, но потом они снова вернулись к своему процессору.

Или другими словами под каждую ОСь Вам нужно будет пересобирать свою программу с учетом особенностей ОСи.

Цитата: svo
Проходил другие языки программирования! И решил начать с асм!
Думаете рановато? Надо начать с верхнего уровня?!

Само программирование это больше занне алгоритмов, особенностей ОСи, чем синтаксиса.
Если говорить о кроссплатформенности то тут больше подходят скриптовые языки, т.к. они запускаются в виртуальных машинах, и каждую ОСь ВМ уже написана.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

в сети
Управляющий
143894
2148
09.03.2021, 14:21
общий
09.03.2021, 14:24
Адресаты:
Если уж копнуть совсем глубоко - программер должен знать и уметь.
Знать:
1. Дискретную математику.
2. Комбинаторную оптимизацию и методы оптимизации.
3. Функции и математическую индукцию.
4. Линейную алгебру.
5. Теорию вероятностей и математическую статистику.
ЭТО ФУНДАМЕНТ

Также не помешает:
6. Базовые знания об операционных системах.
7. Основные знания о платформе, на которой вы хотите работать.
8. Знание баз данных.
9. Знание английского языка на уровне Intermediate и выше.
И заметьте, что я нигде не написал изучить ЯП.

Теперь уметь (с этим как раз основные трудности):
1. Аналитически мыслить.
2. Знать как писать чистый код.
3. Стремится быть лучше, знать больше.
4. И главное, любить то, что делает.





Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Старший Модератор
31795
6196
09.03.2021, 14:41
общий
Адресаты:
Цитата: Сергей Фрост
Если уж копнуть совсем глубоко

Ну это advance level, и это прийдет современем и с накопленным опытом.
Я как-то писал(может и не на портале), что программирование - постоянное самобучение.



Цитата: Сергей Фрост
Знание английского языка на уровне Intermediate и выше

А что его учить там все слова с С/С++
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

в сети
Управляющий
143894
2148
09.03.2021, 19:42
общий
09.03.2021, 19:46
Адресаты:
Костик, кто бы спорил.

Просто последнее время ты сам видишь на портале вопросы типа чё мне учить, чёбы быстро башлять. А башлять получается только профессионалам, которые все эти ступени проходят своим потом и кровью.

И если хочешь быть хорошим программистом, то я считаю, что главное не знания, а умения - с которыми как правило и возникают большие сложности.
Как, например, у того же САИДа, который и двух слов сформулировать не может, не говоря уже об умении логически мыслить - какой тут, млин, программист из него получится.

Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Старший Модератор
31795
6196
09.03.2021, 21:16
общий
Адресаты:
Цитата: Сергей Фрост
Костик, кто бы спорил.

Я и не спорю.

Любой кодер, который хочет быть хорошим, должен понимать, что
Быстро только кошки плодятся



Цитата: Сергей Фрост
И если хочешь быть хорошим программистом, то я считаю, что главное не знания, а умения - с которыми как правило и возникают большие сложности.

Знания, они приходят с опытом, к примеру я прочитал несколько книг по функциям, не важно каким, думаеш я на вскидку скажу какие параметры у той или иной функции, если я её постоянно не юзаю. Но я помню, что где-то там есть её описание, Пару раз, наступив на "грабли", я запомню, что там N параметров, а при постоянном использовании уже знаеш, что куда ложить.


Меня еще в школе "приручили"(было у нас УПК(учебно производственный комплекс)) - любая последовательность действий реализованная в блок-схеме - является алгоритмом.
И алгоритмами мы занимаемся, даже не подозревая об этом. К примеру пришли гости, что делать: эврика - чаем напоить, ну или кофе(условие), напоняем чайник(в цикле -> полный = выход, иначе ждем), кипятим(в цикле -> закипело = выход, иначе ждем) разливаеш по чашкам, всем досталось(условие - нет снова goto => чайник).
Чем не блок-cхема, чем не алгоритм?

Delphi -код, вообще живет своей жизнью, в прочем как и любой код под "Окна", но в С/С++ этого "хлама" меньше.

Если в Delphi кодер не прописывает свой обработчик события, компилятор подставляет свой - стандартный, в С/С++ - если обработчик не прописан, то его обрабатывает ОСь. Тем не мение я люблю Pascal, в любом его виде.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404853
18
09.03.2021, 23:38
общий
САПАСИБО ВАМ!
хоть где то мне ответили! А то все ищи сам! я ищу и ищу! и вас нашёл!!! ещё раз спасибо!!! уже прочитал пару книг по лунуксу! перед мной стоит выбор из трех языков python, c или c++ и асм!!! но как я думаю что истину я найду асм!!! и как понимаю не скоро!!! может год, а может...

Просто последнее время ты сам видишь на портале вопросы типа чё мне учить, чёбы быстро башлять. А башлять получается только профессионалам, которые все эти ступени проходят своим потом и кровью.


Я согласен с высказываниями с Сергеем про пот и кровь!!! Я упустил 10 лет. и не жалею другой опыт тоже опыт!! не суть.
[b]есть ещё один вопрос!!! наверно ключевой!!!
в языке асм как я понимаю выполняется то что я написал, что мне надо (к примеру я хочу что бы программа которую я написал выполняла: при нажатии пробела выводила ПРИВЕТ ДРУГ ....) и опять как я понимаю что программы написанные на асм выполняют те задачи которые прописаны в коде!!! и роли не играет какая ОС стоит!!!!
другое дело если я хочу писать под определённую ОС программу. тогда мне надо знать её архитектуру!!![/b]
в сети
Управляющий
143894
2148
10.03.2021, 10:46
общий
Адресаты:
Мне не совсем понятно какую истину вы собрались искать в асме, но это ваше решение. Я обычно смотрю на цели, которые и определяют выбор.
Упущенных лет уже конечно не вернешь, а 10 лет (если вам около 40) - это большой срок, так что готовьтесь начинать все с нуля.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Старший Модератор
31795
6196
10.03.2021, 11:03
общий
Адресаты:
Цитата: svo
и роли не играет какая ОС стоит!!!!

Вы наверное не читаете, что Вам пишут.
Цитата: Зенченко Константин Николаевич
НЕТ. Все эти ОСи используют разные принципы вызова системных функций


код *NIX:
[code lang=asm]mov ax, 4
mov bx, 1
mov cx, PlInNumMsg
mov dx, LenPlInNumMsg
int 0x80[/code]

код DOS:
[code lang=asm]mov ah,0x40
mov bx,1
mov cx, LenPlInNumMsg
mov dx, PlInNumMsg
int 0x21[/code]

Два этих кода делают одно и тоже - выводт на экран строку, но под разные ОСи. Заметьтев в регистрах разные значения, единственное, что совпадает, это StdOut = 1 в ВХ, но это наследие от общего предка.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

в сети
Управляющий
143894
2148
10.03.2021, 14:23
общий
Адресаты:
Цитата: Зенченко Константин Николаевич
Вы наверное не читаете, что Вам пишут.

Что-то мне подсказывает, что трудно вам придется в программировании
Нет системности и скрупулезности (дотошности) - зачем лезть в программеры?
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Посетитель
404853
18
10.03.2021, 22:42
общий
Адресаты:

То что вы описываете. про вызовы функций, это замечательно! я понимаю о чём идёт речь! меня интересует вызовы функций протоколов TCP/UDP (IP) под которые хочу написать код (состав)!
программу которую я представляю это целый поезд который состоит из составов (блоков) которые работают отдельно но в тоже время взаимодействуют друг с другом дистанционно и если надо все составы собираются в один поезд (это всё абстрактно)
давно
Посетитель
404853
18
10.03.2021, 22:51
общий
Адресаты:

Что-то мне подсказывает, что трудно вам придется в программировании smile
Нет системности и скрупулезности (дотошности) - зачем лезть в программеры?

я знаю! то что я задумал! это точно!

Если уж копнуть совсем глубоко - программер должен знать и уметь.
Знать:
1. Дискретную математику.
2. Комбинаторную оптимизацию и методы оптимизации.
3. Функции и математическую индукцию.
4. Линейную алгебру.
5. Теорию вероятностей и математическую статистику.
ЭТО ФУНДАМЕНТ

Также не помешает:
6. Базовые знания об операционных системах.
7. Основные знания о платформе, на которой вы хотите работать.
8. Знание баз данных.
9. Знание английского языка на уровне Intermediate и выше.
И заметьте, что я нигде не написал изучить ЯП.

Теперь уметь (с этим как раз основные трудности):
1. Аналитически мыслить.
2. Знать как писать чистый код.
3. Стремится быть лучше, знать больше.
4. И главное, любить то, что делает.

и то что вы здесь перечислили это наверно 1/3 , а может 1/5 того что мне нужно изучить!!!
Спасибо!!!


Прошу прощение за то, что не всё суть излагаю!!!

а по линукс я с вами согласен что могу загубить ж/д! время мало!!
давно
Старший Модератор
31795
6196
10.03.2021, 23:34
общий
Адресаты:
Цитата: svo
то что вы здесь перечислили это наверно 1/3 , а может 1/5 того что мне нужно изучить!!!

Да ВЫ просто оптимист!!!!!!


Для Ваших целей:
Цитата: svo
программу которую я представляю это целый поезд который состоит из составов (блоков) которые работают отдельно но в тоже время взаимодействуют друг с другом дистанционно и если надо все составы собираются в один поезд


Из того, что Вы перечислили: это не 1/3, не 1/5 и даже не 1/10, это 1/1'000, если не 1/1'000'000.

Вам нужно изучить уровни протоколов TCP(их больше чем ОДИН), сами протоколы, т.к. асм позволяет принять кучу байт, а вот как из этой кучи хлама извлекать полезную информацию, тут нужен опыт. Без него никак.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
11.03.2021, 16:32
общий
это ответ
Здравствуйте, svo!

NASM уже компилятор под linux.

Когда Вы задавали этот вопрос, У Вас перед глазами была информация:
Цитата: Информация от Администратора раздела:

Здравствуйте, уважаемый посетитель!

Вас приветствует команда экспертов рассылки "Assembler (Ассемблер)".
Мы поможем Вам найти ответ на Ваш вопрос по программированию на языке Ассемблера.
Для того, чтобы у экспертов не возникало дополнительных вопросов,
большая просьба прочитать памятку "Как задать вопрос".
Успехов в программировании на языке ассемблера!(И.В.Лысков)

Рекомендуемые ресурсы Интернета:
. . .
Книги по Ассемблеру
. . .
Книги по WinAPI (на С)
. . .

Найдите их(желательно в твердом издании), тогда Вы будете иметь возможность, при их прочтении и изучении, оставлять свои комменты, которые Вам помогут потом.

Это минимум, который Вы должны прочесть, дальше будет больше, Одним словом Вам Читать, Изучать, Практиковать!.
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404853
18
15.03.2021, 22:37
общий
Адресаты:
наверно оптимист?!
я везде вижу закономерности! к примеру возьмем машину! вся инфо. записана в виде 1 и 0 (роли не играет какие символы +/-, м/ж., мастер -подченёный не суть)
ВОПРОС? какая разница какая ОС стоит на том или ином (сервере, ПК) если мне нужно знать что происходит на машине??? в первую очередь я смотрю на эти вещи примитивно (да либо нет)! то что мне надо (для души) это не написание программ под определённую ОСЬ!!! я смотрю шире!
и ещё раз спасибо за то что вы отвечаете!!!!!
давно
Посетитель
404853
18
15.03.2021, 22:45
общий
Адресаты:
Все зависит от поставленной задаче - восстановить упущенное
для чего?
Что бы зарабатывать - тогда тот язык, что востребован в вашем регионе.
Что бы писать для себя - тогда тот язык к которому лежит душа.
Для простого баловства - тогда без разницы какой язык.

Ну и так далее.

машинный язык? он есть! но я думаю проще будет асм! ведь асм тоже написан как-то? конечно я не собираюсь изучать ядерную физику или квантовую ...
давно
Старший Модератор
31795
6196
16.03.2021, 00:15
общий
Адресаты:
Цитата: svo
какая разница какая ОС стоит на том или ином

Помните моё сообщение
Цитата: Зенченко Константин Николаевич
Вы наверное не читаете, что Вам пишут.

Цитата: Зенченко Константин Николаевич
Два этих кода делают одно и тоже - выводт на экран строку, но под разные ОСи. Заметьтев в регистрах разные значения,


[table][row][col]регистр[/col][col]ДОС[/col][col]ЛИНУКС[/col][/row][row][col]АХ[/col][col]номер функции[/col][col]номер функции[/col][/row][row][col]ВХ[/col][col]устройство вывода[/col][col]устройство вывода[/col][/row][row][col]СХ[/col][col]длина текста[/col][col]адрес текста[/col][/row][row][col]DX[/col][col]адрес текста[/col][col]длина текста[/col][/row][/table]
Где:
  • в Дос используется прерывание 0х21, которого нет в Линукс и наоборот.
  • в Дос используется только ренистр АН- номер функции, в Линукс весь АХ


Цитата: svo
я везде вижу закономерности!

Забудьте об этом - разные ОСи, разные особенности, разные принципы, совпадений нет.

В Windows - Все ЕСТЬ ОКНА, в Linux - Все ЕСТЬ ФАЙЛ. Хотя с точки зрения юзера - различий НЕТ - Мышкой кликнул, что-то заработало, что-то запустилось и т.д.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа