Всем привет! Сегодня у меня великая радость из-за пущего пустяка - Hello world! :) То есть я написал мелку программку, окторая при выполнении пишет "Hello world". Но великая радость из-за того, что я шел к этому больше 10 лет :) Серьезно. Все потому что она на ассемблере. То есть первые попытки были еще более 10 лет назад, но к своему стыду я не мог даже компилятор установить (хотя в той же убунте есть свой компилятор ассемблера из коробки). И вот сегодня я опять взялся за эксперименты (видимо весеннее психическое обострение, хоть и не весна сейчас (хоть и за окном плюсовая температура и дождь)), и таки получилось что-то сделать :) Отдельное спасибо за это Андрею Викторовичу Столярову, который написал учебник по NASM и активно отвечает на вопросы на своем сайте. http://www.stolyarov.info/books/asm_unix Благодаря этому материалу я таки сделал первые шаги и очень рад :) А пишу не только потому что рад, но и потому что хотел раскрыть малоочевидную, но сильную сторону package.json - он годится не только для запуска JS-скриптов, но и в принципе является инструментов для запуска любых скриптов, в том числе и bash. Казалось бы, при чем тут package.json и ассемблер? Поясню: для компиляции кода и запуска конечной программы надо выполнить в терминале пару команд. При этом из-за того, что попутная библиотека написана для 32битной архитектуры, а у меня 64, приходится еще флаг передавать. Пока экспериментируешь, еще ничего, но через день уже забудешь и опять надо гуглить решение. В данной ситуации логично иметь возможность куда-то записать нужные команды и легко их потом вызывать. Часто для этого используют make + Makefile, но у меня мало стимула изучать еще и эту технологию, поэтому я взял то, что итак знаю. И вот что получилось: { "name" : "NASM-examples.Hello-world" , "scripts" : { "start" : "./build/main" , "build" : "yarn compile && yarn ld" , "compile" : "nasm -f elf main.asm -o build/main.o" , "ld" : "ld -m elf_i386 build/main.o -o build/main" } } Теперь можно выполнять в терминале вот так: Удобно :) Если кому это направление тоже интересно, исходники закинул сюда: https://github.com/Fi1osof/NASM-examples