1

скажите кто нибудь шел интерпритирует только программы написанные на языке шел либо на нём можно писать проги и на ассемблере и на других языках?

2

serggeee пишет:

скажите кто нибудь шел интерпритирует только программы написанные на языке шел либо на нём можно писать проги и на ассемблере и на других языках?

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

95% процентов проблем находятся между клавиатурой и стулом.

3

serggeee пишет:

скажите кто нибудь шел интерпритирует только программы написанные на языке шел либо на нём можно писать проги и на ассемблере и на других языках?

шел конечно интерпретирует только язык шел.
Для другия языков существуют другие интерпретаторы и компиляторы.

4

В качетве компилятора ассемблера можете попробовать использовать Yasm

Yasm is a complete rewrite of the NASM assembler. It supports multiple
assembler syntaxes (eg, NASM, GAS, TASM, etc.) in addition to multiple
output object formats (binary objects, COFF, Win32, ELF32, ELF64) and
even multiple instruction sets (including AMD64). It also has an
optimiser module.

5

я установил Yasm как я понимаю это интерпритатор или компилятор но не в этом суть а в какой среде программировать, дапустим я пишу программы в шеле открываю консоль и вперёд можно ли поменять вместо шел на Yasm и программировать в этой же консоли на ассемблере или надо отдельный редактор?

6 (01.05.2011 20:01:09 отредактировано Fat-Zer)

разберитесь сначала в понятиях и что вам нужно...
http://ru.wikipedia.org/wiki/Ассемблер
http://ru.wikipedia.org/wiki/Интерпретатор
http://ru.wikipedia.org/wiki/Компилятор
http://ru.wikipedia.org/wiki/Bash - основной shell в линуксе

или скажите хотя бы чем собираетесь заняться...

95% процентов проблем находятся между клавиатурой и стулом.

7

я хочу освоить программирование на ассемблере, а это значит я хочу программировать на ассемблере

8

serggeee пишет:

я хочу освоить программирование на ассемблере, а это значит я хочу программировать на ассемблере

с этого и надо было начать.... интерпретатор ту не при чём.

Рекомендую связку dosbox+masm или tasm + deglucker (или ваш любимый отладчик) + ваш любимый редактор(можно нативный).

И пара слов о том, почему стоит учиться это делать не под линуксом:

  • программирование на ассемблере под *nix считается религиозно неверным, и в принципе правильно.

  • Мало информации (реально мало в сравнении с досом и вин32)

  • есть особенности, как в самих синтаксисе диалектов, так и в системных средствах.

  • По-умолчанию используется AT&T синтаксис, тогда как в большинстве источников инфа в intel'овском, не страшно, но лишний геморой.

  • Маленькое пространство для шаманств и извращений (в сравнении с досом), а основное применения асма - системное, в общем тонкостей x86 на асма не прочувствовать...

если всё же решите под линуксом, то:
набираете программу,
сохраняете её в my_program.S
в терминале: yasm -f elf -o my_program my_program.S
./my_program
радуетесь...

95% процентов проблем находятся между клавиатурой и стулом.

9

начните отсюда для начала

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

10

Fat-Zer а вы неподскажите где можно найти dosbox+masm или tasm + deglucker, а да dosbox я нашёл а вот не могу найти как я понял это программы эмуляторы doc. И вот что хотел сказть тоесть с вами не согласиться в том что программирование на ассемблере под *nix считается религиозно неверным как я понимаю все высокоуровневые языки все интерпритируются или компилируются на ассемблер, а в моей практике было такое что после установки программы она не работала и после этого я решил что чтобы разобраться с этими проблеммами нужно знать ассемблер, если я не прав можете меня оспорить

11

Может лучше С тогда изучать? Нужен ли он этот ассемблер (тем более их много разных)?

12

ну как я понял ассемблер имеет больше возможностей, Да и вообще я же говорил мне вообще в языках прогаммирования нужно разобраться чтобы в случае неполадки разобраться с проблеммой и я при попытки изучения установленной программы нарывался вот примерно на такие файлы

ELF########################4###ьa######4# ###(######################U###U##############Ќ]##Ќm##Ќm##L###p################_###o###o##Ш###Ш###########Pхtd˜H##˜H##˜H##|###|###########Qхtd############################RхtdЌ]##Ќm##Ќm##T###T###########w###=#######    ###fЄ6####‚#(„#`A„#####$#€

и я не думаю что это Си короче в моих интересах разобраться с мельчайшими подробностями и я буду если понадобится изучать все языки и ядро чтобы быть в этом асом

13

http://ru.wikibooks.org/wiki/%D0%90%D1% … BE%D0%B2_C

14

бррррр причём тут ваш вывод и язык? что ассемблер что си это токо язык.
Думаете в ассемблере у вас данная строка будет типо echo "test" увы нет.
Для нахождения проблем в программ возьмите Ольгу и начните изучать с неё.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

15

serggeee пишет:

ну как я понял ассемблер имеет больше возможностей

есть такое понятие как "машино независимость кода" , так вот это не про ассемблер , стоит поизучать принципы работы и устройства процессора и ЭВМ в целом , и таки да :

Кипр Р. Ирвин "Язык ассемблера для процессоров Intel" пишет:

... Дополнительные требования : Читатели должны быть знакомы , по крайней мере , с одним из языков высокого уровня (предпочтительно таких как Pascal , Java , C , C++ ) . В одной из глав углубленно рассматривается интерфейс языка С++ , поэтому вам не помешает иметь под рукой один из компиляторов этого языка . ...

учитывая это , рассматривать ассемблер , по меньшей мере сегодня , независимо от всего остального - бессмысленно [ИМХО]

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

16

как я понимаю вы мне предлагаете изучить двоичный код 01

17

serggeee, вы действительно не понимаете, с чем пытаетесь связаться? или вы такой вежливый тролль?
Если не понимаете, то это не сел, прочёл книжку и всё понял... чтобы копаться в исполняемых файлах нужно как минимум пара лет опыта. а ошибки о которых вы говорите вы скорей всего не решите, ибо они, скорей всего и возникают из-за ваших кривых рук...
Тем более у нас большинство исходников открыты, и проще копаться в коде на С, чем в дизассемблированном листинге...

95% процентов проблем находятся между клавиатурой и стулом.

18

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

19 (02.05.2011 11:03:19 отредактировано gramozeka)

serggeee пишет:

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

вы не правильно видите ситуацию , ассемблер не "ненужен" , это мощный , гибкий инструмент имеющий свои специфические особенности , но .. Чтобы им научится пользоваться вы как минимум должны досконально изучить принципы работы програмно-аппаратного комплекса по имени "домашний компьютер" и свободно владеть одним из языков высшего уровня . На ассемблере решается определённый круг задач максимально эффективно , так вот чтобы представлять этот круг вы должны знать все остальное . А иначе это будет "сферический конь в вакууме" ...
хотите понять это прочитайте для начала эту книгу :
Кипр Р. Ирвин "Язык ассемблера для процессоров Intel"
http://www.ozon.ru/multimedia/books_covers/1000242816.jpg
а потом уже решите для себя что вам нужно .
Ещё раз повторю - сферические кони в вакууме , это повод для флейма и насмешек ...

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

20

serggeee пишет:

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

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

95% процентов проблем находятся между клавиатурой и стулом.

21

serggeee пишет:

и я не думаю что это Си короче в моих интересах разобраться с мельчайшими подробностями

:lol:

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

22

serggeee пишет:

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

Не самая последняя цель автора учебника - привлечь внимание к своему труду. Понятно, что он будет убеждать Вас, что ассемблер необходим и полезен всякому и всегда. Но Вы ведь пришли сюда за советом? А Вам его уже дали, gramozeka во втором своём сообщении всё подробно изложил
И вообще, я солидарен с последним сообщением

23

serggeee пишет:

практически все  здесь высказались что ассемблер не нужен а я открываю любой учебник и там первым делом пишется что ассемблер очень полезень и обладает большими возможностями

э... любой Тьюринг полный язык имеет равные возможности - может ВСЁ. И ассемблер, и sed, и BrainFuck, и BASIC. Потому вас обманули. Теперь про обучение: сравните

BrainFuck пишет:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
------.--------.>+.>.

Тоже самое на С

#include <stdio.h>
int main()
{
    printf("Hello, World!\n");
    return 0;
}

Что вам более понятно?
Ассемблер занимает промежуточное место по "понятности". Там тоже много букв.

Ассемблер обладает одним важным отличием от любого другого ЯП - он выполняется компьютером непосредственно, без перевода. Это якобы "быстрее" на первый взгляд. Но это вы так думаете. Это не так - ибо ваша реализация какой-нибудь функции заведомо хуже реализации специалистов Intel. Не? Потому, так никто не пишет. Особенно учитывая, что для нового CPU придётся писать новую программу, а для С можно её слегка подпилить, пересобрать, и продать ещё раз bx

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

24

gramozeka пишет:

ассемблер не "ненужен"

нужен иногда... для такого: http://linuxforum.ru/viewtopic.php?pid=167137#p167137
а так да, "ненужен". он нужен разве что для глубокого понимания, да и то, лишь после того, как есть хоть какое-то.
пойду плюсану...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

25

По поводу асемблера под линуксом есть очень хорошая статья, как и сам сайт. Всем рекомендую.  smile
http://wasm.ru/article.php?article=asm_linux_for_c

26

Michail_Ul пишет:

По поводу асемблера под линуксом есть очень хорошая статья, как и сам сайт. Всем рекомендую.

только не вздумайте цитировать - ваша история обрывается на i80486, что какгбе намекает... (намекает на 90е годы прошлого века).

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

27

serggeee пишет:

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

вы не правильно понимаете. Ассемблер полезно  знать и использовать только в том случае если в этом есть реальная необходимость. Как правило это написание программ или даже отдельных модулей, функций программ где требуется быстродействие и компилятор не оптимально компилирует (ну это приближенно и упрощенно). При этом вам самому придется разруливать если вы захотите иметь свою программу на других платформах даже в относительно "простых" случаях.

Кроме того простой пример: времена 386ых и Turbo Pascal  (с сями не сравнивал, т.к. писал тогда на паскале). Одному другу в научной работе переписал расчетную часть (в стоках не большой объем) на ассемблере. Скорость расчета увеличилась заметно: с 6 суток на паскале до нескольких часов на ассемблере.  Пробовал сравнить позже в Delphi, кажеться 3. Компилятор на выходе выдал неплохой код. И выигрыш был уже не так заметен.

Ну и главное прежде чем садиться за ассемблер нужно вообще уметь программировать, хоть он и не так страшен как малюют, но вообще с 0... можно, но сложно.

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

Короче если вы начнете с ассемблера - большой шанс, что просто потеряете время.

То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me".
GNU/Linux Debian

28

voral пишет:

времена 386ых и Turbo Pascal  (с сями не сравнивал, т.к. писал тогда на паскале). Одному другу в научной работе переписал расчетную часть (в стоках не большой объем) на ассемблере.

в тогдашних холиварах B-C++ vs B-Paskal было неопровержимо доказано, что на тот момент паскаль практически вообще НЕ оптимизирует, в отличие от С++. Потому - да, переписывание паскаля на ассемблер давало значительный прирост. Но это частный случай. И это было давно, и только для борланда.

С современным компилятором очень трудно тягаться - процессоры очень сложные, они выполняют множество операций одновременно, и основное время тратится не на сами операции, а на ошибки в планировании. Например: процессор начал выполнять Over9000 операций одновременно, и тут программист ВНЕЗАПНО поставил переход. Итог - Over9000 недоделанных операций псу под хвост ac Потому, сегодня, программы на асме выполняются практически всегда медленнее. Обычно даже медленнее скриптов  ac

Удел ассемблера - это совсем уж примитивные ОЭВМ, ну и разбор полётов - почему компилятор выдаёт i-- - --i == 1, а не 2.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

29

вот вам дисассемблер ht http://drbatty.ru/files/325.png
http://hte.sourceforge.net/

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

30

Очень хороший ресурс по ассемблеру на линуксе. http://ru.wikibooks.org/wiki/Ассемблер_ … аммистов_C