LinuxForum.Fans
Тема

Программирование в ассемблере

Автор: serggeee 30 сообщений 7168 просмотров
#157661

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

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

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

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

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

#157667

В качетве компилятора ассемблера можете попробовать использовать 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.
#157677

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

#157681

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

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

#157686

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

#157697
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
радуетесь...

#157781

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

#157803

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

#157810

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

text
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„#####$#€

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

#157815

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

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

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

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

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

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

#157818

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

#157857

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

#157889

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

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

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

а потом уже решите для себя что вам нужно .
Ещё раз повторю - сферические кони в вакууме , это повод для флейма и насмешек ...

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

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

Войдите или зарегистрируйтесь, чтобы ответить.