Assembler?

Всем привет

Есть фанаты ассемблера на форуме? Может кто-то изучал в ВУЗе, а кто-то даже писал что-то для себя ради удовольствия?

Не перевелись еще богатыри :slight_smile: В универе фанател от TASM`a, сейчас по чуть чуть изучаю NASM. В основном для себя, для морально-эстетического удовлетворения так сказать. Хотя хотелось бы и поработать с ним, но сейчас не легко найти работу где требовались бы такие умения и навыки.

Да, может разве что где-нить в embedded system.

Не, я программирую для себя, для души. В этом случае функциональность не играет такой роли :slight_smile:

Можно было бы, кстати, написать что-нить вместе.

Полгода изучал TASM в универе, не сказать что я прям фанат, но было интересно…

Изучал больше 10 лет назад в Колледже. Понимаю о чем речь. :slight_smile: Не более.

Если интерес не остыл, то можно попробовать придумать вместе что-нить интересное. Что-нить типа kernel-загрузчика (bios подбрасывает нас в mbr, оттуда прыгаем на первый сектор, переключаем процессор в 32 битный режим, а оттуда прыгаем уже на ядро)? Или может быть установщика rpm-пакетов (тут еще проще - банальное обращение к базе данных rpm через библиотечные функции)?
Установщик RPM на python где-то строчек 30 наверное, на C/C++ чуть побольше, но не больше 50 я думаю.

Intel синтаксис можно взять, раз его знает большинство.

Хм, идея с установщиком rpm пакетов мне понравилась. На выходных,когда свободного времени будет больше, попробую.

Cherkasoff
Resurection
Gankov

Ну так чего? Пишем rpm-installer? :slight_smile:

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

Вот я полный фанат ассемблера. Сейчас пишу большую прогу на MASM32. Правда под Win32. Как закончу, буду рад попробовать в Linux. Хотя, как я пониаю, в соответствии с хорошими манерами под UNIX надо писать на C

Приветствую!

Писать надо, я считаю, на том языке, который лучше всего подходит для поставленной задачи. Python может быть на много эффекивнее C/C++, а иногда не обойтись и без ассемблера. Но в этом топике хотелось бы собрать просто любителей этого языка, т.е. тех, для кого писать на assembler’е просто приносит удовольствие, и не играет роли, что ту же программу можно на много быстрее написать на другом языке. Эдакий клуб по интересам :wink:

Я обеими руками ЗА! Мне нравится. Иной раз даже подумываю, что это мозги мои так устроены, что мыслят порой в INC / DEC / AND / XOR / TEST и т.п.

все повспоминали…мде.любители…

rpm-installer вы хоть понимаете что установщик rpm пакетов сложнейшая программа.На ассемблере ее написать НЕВОЗМОЖНО(не считая пути-переписывания всей ОС).rpm установщик импортирует кучу дополнительных скриптов,которые также импортируют тысячи скриптов в конечном итоге…смешно…

ассемблер применяется только в оооочень ограниченных устройствах,к примеру…только научно-исследовательские знаю…в ширпотребе ниодного назвать немогу…
Сейчас все микросхемы стремятся быть универсальными(не делают спец-для калькуляторов/часов/gsm модулей/тдтп,используют одну-программируемую(программы простейшие на Си/C++/(для особых любителей есть интерпретаторы питона/паскаля/джавы/лиспа/и чегоугодно)),и производительность устройств хватает не то чтобы программы на Си/C++ исполнять,а на то чтобы иметь свою ОС,на которой запущена виртуалка в которой выполняются программы,к примеру-мобильные телефоны с java-машиной,кофеварки/пылесосы где тоже работает java,или windows на стиральных машинах,wince на мышках(от микрософта),на которой работает виртуалка .Net исполняя .Net приложение.

Я писал RPM-установщик на python, знаю как его написать на C/C++, и собираюсь написать на assembler.

Причем тут ОС? Все что надо, это, грубо говоря, распокавать пакет, разбросать файлы по системе, и добавить информацию о пакете в базу данных RPM. Все.

ну во-первых не тысячи, а во-вторых для этого уже есть готовые функции.

> osc rdiff openSUSE:11.2 grub openSUSE:11.3

Index: grub-a20.patch
===================================================================
--- grub-a20.patch (revision 2)
+++ grub-a20.patch (revision 2)
@@ -1,6 +1,6 @@
 --- grub-0.97/stage2/asm.S.orig        2007-08-24 13:03:39.000000000 +0200
 +++ grub-0.97/stage2/asm.S     2007-08-24 13:08:37.000000000 +0200
-@@ -1620,42 +1620,83 @@ ENTRY(set_vbe_mode)
+@@ -1620,42 +1620,85 @@ ENTRY(set_vbe_mode)
   *
   * Gate address-line 20 for high memory.
   *
@@ -15,6 +15,7 @@
  ENTRY(gateA20)
 +      pushl   %ebx
 +      pushl   %edx
++      pushl   %ebp
 +      call    testA20
 +      jnz     1f
 +      call    A20_BIOS
@@ -29,7 +30,8 @@
 +      movl    $0,%eax
 +      jmp     2f
 +1:    movl    $-1,%eax
-+2:    popl    %edx
++2:    popl    %ebp
++      popl    %edx
 +      popl    %ebx
 +      ret
 +

Я писал RPM-установщик на python, знаю как его написать на C/C++, и собираюсь написать на assembler.

Тогда ты знаешь что получится-зависимость от 500 библиотек,и весь алгоритм-архиватор_открыть(архив);извлечь(/tmp/…);копировать(пути);БД(добавить информацию)
И в чем смысл такого?

Причем тут ОС? Все что надо, это, грубо говоря, распокавать пакет, разбросать файлы по системе, и добавить информацию о пакете в базу данных RPM. Все.

При том что-если делать все правильно,то твой rpm-installer должен быть самодостаточным,т.е. ты в нем должен реализовать ВСЕ алгоритмы для установки RPM пакетов,смотря только в офф-документацию к rpm формату,никаких левых библиотек/шаблонов функций.

ну во-первых не тысячи, а во-вторых для этого уже есть готовые функции.

Вот я о томже-использовать библиотеку которая выведет на экране Hello_World из чего-угодно-разницы нет.

Index: grub-a20.patch

Я про программы ПОЛНОСТЬЮ на ассемблере,такое возможно только для микроконтроллеров(hello_world который использует левые библиотеки(не на ассемблере)-не в счет*т.е. все ОС отпадают).Ах да-есть прекрасная ОС на ассемблере,вот это да-считается.

ОЧЕНЬ интересная точка зрения. Что ж… и она наверняка имеет право на существование :wink: