Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Народ, ассемблер нужен ТОЛЬКО для скорости и все. На нем нет ничего такого, что невозможно сделать на любом другом языке высокого уровня. Важно то, сколько времени и сколько сил уйдет на приготовление чего либо на асме и того же самого на скажем С++ Драйвера сейчас к примеру пишут на C++, очень редко на Асме если дрова не большие по размеру.
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
MegaHertz
Цитата:
Правильно ,на чем программируют мобильные телефоны(которые не смартфоны)
А ты точно не уверен, что они на С? Ведь у той же Нокии есть платформы и на них построены разные версии мобильных телефонов, т.е. соответственно разный софт. Проще единожды написать С компайлер для данной платформе, чем постоянно писать на непонятно каком асме под непонятно какой RISC процессор или что там еще встроенно.
Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
Сейчас такие компиляторы что C++ не на много и медленнее, однако как бы то ни было есть вещи которые требовательны к скорости и просты настолько что их глупо писать на C++
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 14.03.2004 Откуда: Москва
MegaHertz писал(а):
там где язык высокого уровня не срабатывает
Это где? Шедулер ос и управление виртуальной памятью? HAL. А тебе это надо?
MegaHertz писал(а):
все языки высокого уровня основаны на ассемблере
А на чем же ещё им быть основаны? Ну ещё микрокод
MadOverTolik писал(а):
что ассемблер нужен там где нужна максимальная скорость
Уже все написаное. Про расширение процессоров скажу что в gcc специально введен набор встроенных функция для предстваления mmx, sse и так далее...
Daemon писал(а):
VC++ он понял, что никто лучше и оптимальнее не откомпилирует код(я думаю GCC тоже не отстает ),
ПИАР. ПРоверено
MegaHertz писал(а):
Правильно ,на чем программируют мобильные телефоны(которые не смартфоны)
На С. Данные из достовенрных источников
MegaHertz писал(а):
а как нормально глушить прерывания в винде нас не учат(говорят что это будет вредительство)
Добавлено спустя 3 минуты, 32 секунды:
Ray Adams писал(а):
Драйвера сейчас к примеру пишут на C++, очень редко на Асме если дрова не большие по размеру.
Я думаю все же на С... С++ уж больно агресивен к памяти... И библиотекам времени исполнения.
virus писал(а):
однако как бы то ни было есть вещи которые требовательны к скорости и просты настолько что их глупо писать на C++
Если пользоваться emboded function для представления особых инструкция процессора, то С при компиляции GCC выдает такой код, что я и представить не могу....
Как вам замена деления на 2 инструкции сложения и одну сдвига. И работет (это было под MIPS160, Dec Station 5000/400)
_________________ ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо
member+
Статус: Не в сети Регистрация: 16.01.2004 Откуда: Estonia,Tallinn
На форуме Омских ребят я как-то поднимал вопрос (флейм) о ASM-vs-C++ и получил вполне противоречивые ответы, однако мне кажется этот разговор стоило бы обсуждать не в теме о программировании а во флейме (а то совсем как-то в оф-топ спустилась ветка)
2. Кто или что такое vor и как с ним/ней связаться, если он/она не возражает, конечно? (Здесь отражена политескорректностность; не путать с политкорректностью в отношении, например, ам.негров, когда их так называть не надо, потому что нельзя.)
3. Поскольку для меня это единственная возможность последовать предложенному в полученном письме путем (связаться и пр.), прошу принять данное к сведению.
4. (Последнее.) Я учитываю, что оценки, как, впрочем и вкусы, в известной степени разнятся, что, в моем представлении о порядке вещей, не дает никаких дополнительных преимуществ одному из носителей таковых перед другими в выражении какого бы то ни было иного мнения, кроме своего; проще говоря, пусть народ скажет СВОЕ слово и не надо беспокоиться о его индивидуальной нравственности и коллективной морали — покажите исключенное сообщение: да будет суд справедливым!
Прощаясь, выражаю надежду, что все вышеизложенное не содержит
— неизвестного мне "оффтопа" (шепните, это что — профессиональный жаргонизм?),
— каких бы то ни было заявлений, включая необоснованные и
— оскорблений не достойных их (здесь запятая не положена, поскольку изменила бы смысл).
*Cofradia Intel*
Статус: Не в сети Регистрация: 02.09.2003 Откуда: Россия, г.Тверь
asmlyИздеваешься, да? 1. Это предупреждение, выданное тебе модератором конференции за нарушение тобой Правил этой конференции. 2. vor - это ник модератора, выдавшего тебе предупреждение. Это он и он, разумеется, не возражает. Иначе тебе не было бы предложено к нему обратиться. 3. Ну так и связывайся, а не оффтопь здесь, а то ещё одну карточку получишь. 4. Не занимайся демагогией, а прочти, наконец, Правила конференции, ссылка на которые содержится в твоём предыдущем сообщении, за которое тебе и выдано предупреждение. Народ своё слово говорить здесь не будет. Вопросы нарушений и наказаний за них находятся в ведении администрации и модераторов конференции. Изложенное тобой содержит: - оффтоп (информация не относящаяся к вопросу, обсуждаемому в данной теме). - вопросы, в том числе, необоснованные, которые граничат с идиотизмом, т.к. человек, прочитавший Правила при регистрации в конференции, их задавать вряд ли будет. - издевательства в неявной форме над модераторами. Будешь продолжать в том же духе - отправишься в бан.
_________________ Жизнь - штука вредная. От неё умирают.
Почётный участник *Cofradia Intel*
Member
Статус: Не в сети Регистрация: 23.12.2004 Откуда: Киев
Камрады!
Подскажите хороший справочник в сети.
Особенно интересуют функции программных прерываний (INT).
Кое-где встречал, но там описаны крайне выборочно или только те, что используются в их примерах.
Можно и на английском (хотя у русского приоритет выше ).
Member
Статус: Не в сети Регистрация: 15.03.2005 Откуда: Красноярск
Други-программеры!
//Предистория. Пытаюсь написать некое подобие смеси SpeedFAN & C&QNforce2 на Делфи. Работа идет медленно, но модуль мониторинга уже готов полностью (только на Winbond W83627HF/F (Abit NF7 rev2.0)), а вот с остальным пока не густо.
Собственно говоря задача. Надо записать в порт 295h/296h по адресу N Bank 0 байт С. Желательно ес-сно на асме и ес-сно с совместимостью с Делфи. Хотябы идейку подкиньте как это должно выглядеть, еще моя понимать С++ for DOS, в случае чаво.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Alex@nder вариант а) использовать UserPort, GiveIO и пр. драйвера
вариант б) писать свой драйвер. Так что придется юзать C. Можно, кстати, обойтись и без асма (намек - используйте вызовы HAL)
вариант в) крякать одну из системных таблиц, содержащую маску на доступ к портам. Намек - читаем про TSS и пр. фишки защищенного режима. Из минусов - все программы получают доступ к этому порту и не очень-то большая совместимость с разными версиями осей
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 15.03.2005 Откуда: Красноярск
Вот этими функциями я читаю из портов:
function output(x: byte): byte;assembler;stdcall;
asm
mov al, x
mov dx, 295h
out dx, ax
mov dx,296h
in al,dx
mov Result,al
end;
function output2(x: byte;y: byte): byte;assembler;stdcall;
asm
mov al, 4Eh
mov dx, 295h
out dx, al
inc dx
mov al, y
out dx, al
mov al, x
mov dx, 295h
out dx, al
inc dx
in al, dx
end;
При помощи драйвера giveio.sys. А как при помощи того же драйвера ЗАПИСАТЬ в порт?
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Alex@nder output2 - А это что по твоему? Добавлено спустя 1 минуту, 3 секунды Вообще GiveIO это зло. Нельзя вот так вот писать да читать в порты. Все лучше пихать во внутрь драйвера, а для user mode только вызовы DeviceIOControl оставить
Ray Adams, а чем оно, такое чтение, побочно для Win9x? Кста, кроме DeviceIOControl к драйверу можно обращаться через WriteFile. Добавлено спустя 6 минут, 29 секунд
Daemon писал(а):
Alex@nder in/out под WinNT - это privileged instructions, так что прямой доступ к портам запрещен.
Прямой доступ к портам недокументированно разрешен для 2000, XP, 2003. По крайней мере мне известен код.
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Moderator
Цитата:
Прямой доступ к портам недокументированно разрешен для 2000, XP, 2003. По крайней мере мне известен код.
Это не недокументированно способ, это дырка в защите, к тому же работающая очень медленно (все время прыжки из ring0 в ring3) и не безопасная (неработает SEH, хотя его можно и руками изобразить).
Daemon, дырка, недоработка, недокументированный метод и т.д. – один фиг, доступ то есть. А вот сама дырка работает не медленнее, чем прямое чтение портов на асме под Win9x. Для решения для задач, подобных Alex@nder, это выше крыши.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения