|
Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!
Здравствуйте, гость ( Вход | Регистрация )
 Сейчас обсуждают
 
| |
Песочница, Для совсем простых вопросов :) |
|
|
Emerald_ILYA |
8.2.2009, 13:14
|

Болтун
Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340
Репутация: 123

|
Цитата(mephisto @ 2.2.2009, 22:02)  Как было замечено выше, машинные коды, но проблема в том, что у каждой машины коды свои. Этот факт к стати сыграл не маловажную роль в распространении UNIX, который был написан на Си, а не на ассемблере, как остальные ОС того времени. Для того, чтобы портировать UNIX достаточно было написать компилятор Си, после чего ОС компилировалась и работала на новой машине.
Т.е. получается программа написанная на ассемблер под железо для Windows не способна работать на железе для макинтоша? А программа написаная на С будет работать и там и там, лишь бы был компилятор?
|
|
|
|
mephisto |
8.2.2009, 13:42
|

ортодоксальный линуксоид
Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849

|
Цитата(Emerald_ILYA @ 8.2.2009, 12:14)  Т.е. получается программа написанная на ассемблер под железо для Windows не способна работать на железе для макинтоша? А программа написаная на С будет работать и там и там, лишь бы был компилятор?
Давай я немного перефразирую, программа, написанная на ассемблере с использованием одного набора команд не будет работать на процессоре с другим набором. Даже наборы команд x86 процессоров могут довольно сильно различаются. Программа на Си (впрочем, не только на Си  ) решена этого недостатка, оптимизация кода под конкретную архитектуру происходит на этапе компиляции.
|
|
|
|
Emerald_ILYA |
8.2.2009, 14:04
|

Болтун
Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340
Репутация: 123

|
Цитата(mephisto @ 8.2.2009, 12:42)  Программа на Си (впрочем, не только на Си  ) решена этого недостатка, оптимизация кода под конкретную архитектуру происходит на этапе компиляции. т.е. язык С по сути тот же ассемблер, только без этого гемороя: » Спойлер (нажмите, чтобы прочесть) « MASM (Macro Assembler) - стандарт де-факто при программировании под Windows 9x/NT; TASM (Turbo Assembler) - медленно разлагающийся труп, пригодный только для MS-DOS; Lazy Assembler - реинкцинация TASMа с поддержкой новых команд процессора; FASM (Flat Assembler) - неординарный и весьма самобытный, но увы, игрушечный ассемблер; NASM (Netwide Assembler) - хороший ассемблер под LINUX/BSD с Intel-синтаксисом; YASM (Yet another assembler) - усовершенствованный вариант NASM'а; HLA (High Level Assembly Language) - очень высокоуровневый ассемблер, на любителя. А чем тогда он отличается от ассемблера? Такая неопределённость и вариативность для ассемблера просто ставит в тупик 
|
|
|
|
Emerald_ILYA |
8.2.2009, 14:27
|

Болтун
Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340
Репутация: 123

|
Цитата(Krawler @ 8.2.2009, 13:22)  Ассемблер - это язык процессора, а не ОС... Компилятор может устранить независимость только от железа, но не от ОС... Поэтому если ты портируешь Windows-приложение (написанное с использованием функций этой ОС) на Линукс, то надо системные функции Windows заменять вручную
Тема для совсем...(гм...), поэтому начинаю тупить не стесняясь И так, если я написал программу в ассебмлере, которая играет мелодию на динамике ПК, то эта программа будет работать под всем железом или только под тем, под которым я её написал? Будет ли это "ПО" работать под разными ОS? Сообщение отредактировал Emerald_ILYA - 8.2.2009, 14:28
|
|
|
|
Krawler |
8.2.2009, 14:39
|

Любит поговорить
Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141
Репутация: 18

|
Цитата(Emerald_ILYA @ 8.2.2009, 14:27)  Тема для совсем...(гм...), поэтому начинаю тупить не стесняясь И так, если я написал программу в ассебмлере, которая играет мелодию на динамике ПК, то эта программа будет работать под всем железом или только под тем, под которым я её написал? Будет ли это "ПО" работать под разными ОS? Читай мой пост внимательнее: Цитата Компилятор может устранить независимость только от железа, но не от ОС Цитата Поэтому если ты портируешь Windows-приложение (написанное с использованием функций этой ОС) на Линукс, то надо системные функции Windows заменять вручную Иначе работать не будет Да.... Забыл, Если ты ее пишешь в ассемблере, то она работает только под тем железом для которого ты ее писал Сообщение отредактировал Krawler - 8.2.2009, 14:42
|
|
|
|
mephisto |
8.2.2009, 14:55
|

ортодоксальный линуксоид
Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849

|
Цитата(Emerald_ILYA @ 8.2.2009, 13:27)  И так, если я написал программу в ассебмлере, которая играет мелодию на динамике ПК, то эта программа будет работать под всем железом или только под тем, под которым я её написал? Будет ли это "ПО" работать под разными ОS?
Если ты используешь некоторые специфичные инструкции AMD, например 3dnow, на машине с пентиумом программа не заработает. Переносимость на уровне ОС зависит от используемых API. Если нужно добиться переносимости на уровне ОС, следует использовать библиотеки абстрагирующие программу от API ОС, например Qt, правда с программами, которые работают с железом будут определённые сложности. Цитата(Emerald_ILYA @ 8.2.2009, 13:04)  т.е. язык С по сути тот же ассемблер, только без этого гемороя: » Спойлер (нажмите, чтобы прочесть) « MASM (Macro Assembler) - стандарт де-факто при программировании под Windows 9x/NT; TASM (Turbo Assembler) - медленно разлагающийся труп, пригодный только для MS-DOS; Lazy Assembler - реинкцинация TASMа с поддержкой новых команд процессора; FASM (Flat Assembler) - неординарный и весьма самобытный, но увы, игрушечный ассемблер; NASM (Netwide Assembler) - хороший ассемблер под LINUX/BSD с Intel-синтаксисом; YASM (Yet another assembler) - усовершенствованный вариант NASM'а; HLA (High Level Assembly Language) - очень высокоуровневый ассемблер, на любителя. А чем тогда он отличается от ассемблера? Такая неопределённость и вариативность для ассемблера просто ставит в тупик  Ты путаешь язык и пакеты для работы с ним. Есть только один ассемблер для одного процессора, а вот программных пакетов для работы с ним может быть много.
|
|
|
|
Emerald_ILYA |
8.2.2009, 15:08
|

Болтун
Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340
Репутация: 123

|
Цитата(Krawler @ 8.2.2009, 13:39)  Читай мой пост внимательнее: Цитата Компилятор может устранить независимость только от железа, но не от ОС Т.е. мне необходимо окомпелировать программу в Windows и Linux отдельно, что бы работала и там и там, верно ? Цитата(Krawler @ 8.2.2009, 13:39)  Цитата Поэтому если ты портируешь Windows-приложение (написанное с использованием функций этой ОС) на Линукс, то надо системные функции Windows заменять вручную Иначе работать не будет Я же написал, про динамик, он же вроде как не зависит от функций винды. Цитата(Krawler @ 8.2.2009, 13:39)  Да.... Забыл, Если ты ее пишешь в ассемблере, то она работает только под тем железом для которого ты ее писал
А если я пишу на С, то ПО будет работать под любым железом?
|
|
|
|
Krawler |
8.2.2009, 15:51
|

Любит поговорить
Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141
Репутация: 18

|
Цитата(Emerald_ILYA @ 8.2.2009, 15:08)  Т.е. мне необходимо окомпелировать программу в Windows и Linux отдельно, что бы работала и там и там, верно ? Да. Цитата Я же написал, про динамик, он же вроде как не зависит от функций винды А если я пишу на С, то ПО будет работать под любым железом? Да, именно так. И не только на С, но и на любом другом языке высокого уровня Сообщение отредактировал Krawler - 8.2.2009, 15:52
|
|
|
|
Emerald_ILYA |
8.2.2009, 17:24
|

Болтун
Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340
Репутация: 123

|
Цитата(Krawler @ 8.2.2009, 14:51)  Да, именно так. И не только на С, но и на любом другом языке высокого уровня
неее.... я имею ввиду, если я буду использовать С как ассемблер, т.е. писать на С как на языке процессора.
|
|
|
|
mephisto |
8.2.2009, 18:07
|

ортодоксальный линуксоид
Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849

|
Цитата(Emerald_ILYA @ 8.2.2009, 16:24)  неее.... я имею ввиду, если я буду использовать С как ассемблер, т.е. писать на С как на языке процессора.
Теперь то же самое, только осмысленно ©
|
|
|
|
A_l_e_k_s |
9.2.2009, 0:28
|

Любит поговорить
Группа: Sibnet-club
Сообщений: 445
Регистрация: 29.5.2008
Из: Новоалтайск
Пользователь №: 34 897

|
Цитата(Emerald_ILYA @ 8.2.2009, 14:08)  Т.е. мне необходимо окомпелировать программу в Windows и Linux отдельно, что бы работала и там и там, верно ?
Цитата(Krawler @ 8.2.2009, 14:51)  Да.
А что делать если одна и та же прога работает на одной машине и не работает на другой ? (2 одинаковых системника с одной и той же операционкой (лицензия) из одной партии) Всё идентично, все дрова, сетевые настройки, ну полное совпадение. Смех смехом, а мне завтра хоть с бубном пляши.
|
|
|
|
mephisto |
9.2.2009, 0:34
|

ортодоксальный линуксоид
Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849

|
Цитата(A_l_e_k_s @ 8.2.2009, 23:28)  А что делать если одна и та же прога работает на одной машине и не работает на другой ? (2 одинаковых системника с одной и той же операционкой (лицензия) из одной партии) Всё идентично, все дрова, сетевые настройки, ну полное совпадение. Смех смехом, а мне завтра хоть с бубном пляши.
А набор установленного софта совпадает?
|
|
|
|
A_l_e_k_s |
9.2.2009, 0:37
|

Любит поговорить
Группа: Sibnet-club
Сообщений: 445
Регистрация: 29.5.2008
Из: Новоалтайск
Пользователь №: 34 897

|
Цитата(mephisto @ 8.2.2009, 23:34)  А набор установленного софта совпадает?
Да, работники из одного отдела, схема установки отработана до автоматизма, меньше поставить нельзя, а больше некогда.
|
|
|
|
Linky |
10.2.2009, 11:22
|

МЕГА флудер
Группа: Sibnet-club
Сообщений: 3 466
Регистрация: 31.3.2008
Из: Барнаул
Пользователь №: 27 560
Репутация: 243

|
Код //c++ class A { int a; public: A(); int test_one(){return a*a;}; inline int test_two(int d=2); };
A::A(){ a=1; };
inline int A::test_two(d) {return d*a;}
Будут ли функции test_one и test_two являтся inline? или это всё таки зависит от компилятора? //сорри, мб немного не в тему, но просто в предыдущий раз мне не ответили в теме Си.. ) Сообщение отредактировал Linky - 10.2.2009, 12:01
|
|
|
|
Linky |
10.2.2009, 18:00
|

МЕГА флудер
Группа: Sibnet-club
Сообщений: 3 466
Регистрация: 31.3.2008
Из: Барнаул
Пользователь №: 27 560
Репутация: 243

|
Цитата(Krawler @ 10.2.2009, 14:06)  Зависит от компилятора, ведь ключевое слово inline это всего лишь рекомендация компилятору и он не обязан ее выполнять...
Ну я это понимаю, самое главное интересно по какому принципу он принимает решение ? ) И здесь как бы 2 вопроса, если опускать слово inline и определять ф-ю сразу т.е. например func(){}; или как ф-я test_one она ведь по умолчанию inline? Сообщение отредактировал Linky - 10.2.2009, 18:05
|
|
|
|
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|