The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Создание программ под SynapseOS"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Создание программ под SynapseOS"  +1 +/
Сообщение от auto_tips (??), 27-Июл-22, 17:43 
Пример создания приложения "Hello World", используя clang и сисфункцию вывода для [[https://github.com/0Nera/SynapseOS SynapseOS]].

Перед написанием любой программы нужно установить средства сборки.
В Ubuntu:

   sudo apt install llvm lld  

Далее перейдём к теории.

Сисфункции в SynapseOS вызываются через прерывание 0x80.

Регистры сисфункций:
  eax - номер сисфункций
  ebx - параметр 1
  edx - параметр 2
  ecx - параметр 3
  esi - параметр 4
  edi - параметр 5
  ebp - параметр 6

В eax также идёт результат выполнения.

Пример вызова сисфункции:

   mov eax, 42 ; Получаем количество тиков
   int 80h ; Вызов прерывания

Нас интересует сисфункция под номером 0 - вывод строки в консоль.

На языке С это выглядит так:

   int print_str(char *str) {
     uint32_t result = 0;
     asm volatile("int $0x80"
           : "=a"(result)         // result = eax (после выполнения)
           : "a"(SC_CODE_puts),   // eax = SC_CODE_puts(0)
             "b"(str)             // ebx = str
     );
     return result;
   }
   int main() {
     return print_str("Hello world!\\n");
   }

Результат:

   Hello world!

На ассемблере FASM:

   ; Hello World - FASM
   format ELF
   public main
   main:
     mov eax, 0   ; 0 - сисфункция
     mov ebx, hello ; параметры сисфункции
     int 80h
     ret
   hello db 'Hello world!\\n',0

Результат:

   Hello world!


URL:
Обсуждается: http://www.opennet.dev/tips/info/3208.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Создание программ под SynapseOS"  +5 +/
Сообщение от Аноним (1), 27-Июл-22, 17:43 
SynapseOS : CODE_OF_CONDUCT.md есть, значит, взлетит!
Ответить | Правка | Наверх | Cообщить модератору

12. "Создание программ под SynapseOS"  +1 +/
Сообщение от швондер (?), 31-Авг-22, 14:21 
print_str() ожидает char *, но получает конст чар, это фэйл.
Далее, в CoC не отмечены нарушения ПДД. Это преступно, в наше время, игнорировать такой пласт правонарушений. Почему это вдруг о преследовании, угрозах, оскорблениях и тп надо сообщать "лидерам проекта", но о купленном техосмотре нет? Недоработочка
Ответить | Правка | Наверх | Cообщить модератору

14. "Создание программ под SynapseOS"  –2 +/
Сообщение от pavlinux (ok), 03-Сен-22, 18:35 
> print_str() ожидает char *, но получает конст чар, это фэйл.

Вот они, современные програмюшки, несовпадение типов распарсил,
а нужна ли вообще НЕконстанта в print_str - пофег. :D    

Ответить | Правка | Наверх | Cообщить модератору

15. "Создание программ под SynapseOS"  +/
Сообщение от швондер (?), 08-Сен-22, 15:27 
>> print_str() ожидает char *, но получает конст чар, это фэйл.
> Вот они, современные програмюшки, несовпадение типов распарсил,
> а нужна ли вообще НЕконстанта в print_str - пофег. :D

как там, разучился волшебными константами говнокодить? или ещё нет?

Ответить | Правка | Наверх | Cообщить модератору

2. "Создание программ под SynapseOS"  +2 +/
Сообщение от NDRAEY Pulsemonemail (?), 27-Июл-22, 18:12 
Не ожидал здесь тебя увидеть;)
Ответить | Правка | Наверх | Cообщить модератору

3. "Создание программ под SynapseOS"  +1 +/
Сообщение от Аноним (3), 29-Июл-22, 16:01 
Я так понимаю, что пока на стадии DOS под виртуалкой?

Что планируется (графика, 3D/GPGPU, маршрутизация/firewall, многозадачность, POSIX-совместимость)?

Ответить | Правка | Наверх | Cообщить модератору

4. "Создание программ под SynapseOS"  +2 +/
Сообщение от Андруша (?), 31-Июл-22, 11:05 
Приколько, образовательно, интересный прдход. - А она грузится на реальном железе?... Эт получается к ней нужно бук по асму брать? 🤔
Ответить | Правка | Наверх | Cообщить модератору

5. "Создание программ под SynapseOS"  +1 +/
Сообщение от Аноним (5), 03-Авг-22, 00:37 
Самое интересное что да! В Issues репозитория есть фотографии HP Pavilion dv6
Ответить | Правка | Наверх | Cообщить модератору

6. "Создание программ под SynapseOS"  +/
Сообщение от Аноним (-), 05-Авг-22, 11:18 
Fasm, сисколы принта без длины, чем только не занимаются абы не учиться программировать

Ответить | Правка | Наверх | Cообщить модератору

7. "Создание программ под SynapseOS"  +/
Сообщение от Аноним (-), 05-Авг-22, 11:20 
еще build.py и прочий треш ;)
Ответить | Правка | Наверх | Cообщить модератору

10. "Создание программ под SynapseOS"  –2 +/
Сообщение от 0Nera (ok), 09-Авг-22, 09:53 
> еще build.py и прочий треш ;)

Build.py выполняет ровно те задачи, которые я ему поставил:
Динамично собирает ядро

Не вижу ничего плохого в этом

Ответить | Правка | Наверх | Cообщить модератору

9. "Создание программ под SynapseOS"  +/
Сообщение от 0Nera (ok), 09-Авг-22, 09:52 
Чем плох FASM?
У меня не UNIX, имею право делать свои сисколлы, не вижу ничего плохого в сисфункции принта без явного указания длины.
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

11. "Создание программ под SynapseOS"  +/
Сообщение от ramipaperemail (ok), 16-Авг-22, 08:12 
> Чем плох FASM?
> У меня не UNIX, имею право делать свои сисколлы, не вижу ничего
> плохого в сисфункции принта без явного указания длины.

Your ideas are really amazing. Really appreciate it.

Ответить | Правка | Наверх | Cообщить модератору

13. "Создание программ под SynapseOS"  +/
Сообщение от pavlinux (ok), 02-Сен-22, 19:24 
Сцк, у меня аж встал от слова "Сисфункция" :)))
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру