Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 483
от 01.02.2003, 11:20

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 2545
Отправлено ответов: 7683
Активность: 301.8 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Илья
Статус: Начальный
Общий рейтинг: 107.36
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.8
URL: Программирование
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.31
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 139.62
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
DiGiT[old]
Статус: Опытный
Общий рейтинг: 109.07
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 117.79
[Подробней >>]
 
Топор
Статус: Доверительный
Общий рейтинг: 113.51
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 109.14
URL: мощный файловый архив
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 145.97
[Подробней >>]
 
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 110.28
URL: Beeblebrox / TMA HomePage
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 126.33
URL: моя рассылка по Protected Mode
[Подробней >>]
Igoryk
Статус: Опытный
Общий рейтинг: 137.03
URL: IgorykSoft
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 121.27
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 2509. Доброе время суток, уважаемые эксперты! Подскажите, какие опции Tasmа для чего надо использовать. Чт... (ответов: 4)
Вопрос № 2511. Доброе время суток , эксперты ! ******************************* Как из одного процесса корректно зав... (ответов: 2)
Вопрос № 2513. Здравствуйте, уважаемые эксперты. Вот накалякал прогу,на Fasm. Обьясните пожалуйста почему она не ри... (ответов: 2)
Вопрос № 2514. Как программно узнать формат файла под Win : DOS-exe или Win-exe ?... (ответов: 4)
Вопрос № 2515. Здравствуйте, уважаемые Эксперты! В приложении – небольшой код. Хотелось бы услышать Ваше мнен... (ответов: 3)
Вопрос № 2516. Здравствуйте, товарищи! У меня вопрос по видео режимам. там по консольному и досовкому я их знаю, он... (ответов: 5)
Вопрос № 2517. Эксперт Maverick с прискорбием вынужден сообщить, что он лопухнулся :) Короче те к кому последие 2 д... (ответов: 1)
Вопрос № 2518. Товарищи! Вопрос не относится непосредственно к асму. Дело в том, что Мне нужно организовать передач... (ответов: 1)
Вопрос № 2519. Я никак не мог удержаться, чтобы не высказать свою точку зрения на вопрос № 2473, "о ... (ответов: 7)

Вопросов: 9, ответов: 29


 Вопрос № 2509

Доброе время суток, уважаемые эксперты!
Подскажите, какие опции Tasmа для чего надо использовать. Что-то нигде не могу этого найти, а с инглишем полный трындец... Pls!



Вопрос отправлен: 27.01.2003, 02:47
Отправитель: MiO

[Следующий вопрос >>] [Список вопросов]

Отвечает Илья

Доброе время суток, MiO!
В основном используются:
/zi - для добавления отладочной информации (также надо указать /v для tlink, не работает для .com файлов).
/l - для генерации листинга
/m# - кол-во проходов
Листинг всех параметров ком. строки см. в приложении.

Приложение:

Ответ отправлен: 27.01.2003, 19:28
Отправитель: Илья


Отвечает Bob Johnson

Приветствую Вас, MiO!
/a - сортировка сегментов в файле по алфавиту
/s - -=- по порядку появления в файле
/dSYM=VAL определить идентификатор SYM как VAL, напр. /dDEBUG=1 - будет DEBUG=1
/h - экран помощи
/ml - тасм будет различать малые и большие буквы
/mu - не будет (по умолчанию)
/m2 - установить 2 прохода ассемблирования (можно 3 или 1)
/zi - полная отладочная информация в файле
/zn - отсутствие отладочной инф.
/iPATH - установить путь к include файлам PATH, например: /iF:TASMINCLUDE


Ответ отправлен: 28.01.2003, 20:08
Отправитель: Bob Johnson


Отвечает Ayl

Приветствую Вас, MiO!
Учи! Хотя бы на уровне понимания подсказки по опциям.
По всем писать не буду, приведу то, что сам использую:
tasm:
/la - расширенный листинг
/mN - выполнить трансляцию в N проходов (обычно /m2)
tlink:
/t - генерировать COM-файл


Ответ отправлен: 27.01.2003, 03:52
Отправитель: Ayl


Отвечает Maverick

Доброе время суток, MiO!
У Юрова и в описаловке Tasm.
Гляди приложение.


Приложение:

Ответ отправлен: 27.01.2003, 06:01
Отправитель: Maverick


 Вопрос № 2511

Доброе время суток , эксперты !
*******************************
Как из одного процесса корректно завершить другой ?
У Рихтера прочитал , что TermnateProcess нежелательна.



Вопрос отправлен: 27.01.2003, 18:24
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Доброе время суток, IceWINteR!
Послать его главному окну WM_CLOSE или WM_QUIT.


Ответ отправлен: 28.01.2003, 20:08
Отправитель: Bob Johnson


Отвечает DiGiT[old]

Приветствую Вас, IceWINteR!
Ну смотри если есть у него окно то посылаешь ему WM_QUIT,
Почитай что пишет MSDN(в приложении)- дело. А если нет никаких либ, то киляй его Terminatom

Приложение:

Ответ отправлен: 28.01.2003, 04:56
Отправитель: DiGiT[old]


 Вопрос № 2513

Здравствуйте, уважаемые эксперты.
Вот накалякал прогу,на Fasm. Обьясните пожалуйста почему она не рисует точек. Хотя когда ставишь мало точек , то все ок(сравнивание в edi). Извените, я ведь токо учусь.И если возможно ее оптимизировать(а я уверен что можно), расскажите как.Спасибо.
PS: Но чтото както странно работает заявка на вопрос. Клиент Outlook Express 6.0. Приходится копировать знак пробела в фуфер а потом вместо пробела втавлять пробел из буфера, а то курсор перескакивает кудато .


Приложение:


Вопрос отправлен: 27.01.2003, 19:06
Отправитель: XShocK (xshock@exnet.kg)

[Следующий вопрос >>] [Список вопросов]

Отвечает ASMодей

Добрый день, XShocK!
А это все из-за того, что ты перепутал местами строки
xor ax,ax
и
int 16h
Так как AX у тебя работает как счетчик, то при выполнении
этого места в первом случае AH=00h, а во втором - AH=0Fh.


Ответ отправлен: 28.01.2003, 17:23
Отправитель: ASMодей


Отвечает Ayl

Добрый день, XShocK!
Все у тебя выводится. Просто когда ты ставишь проверку с 0fffh, то у тебя при выходе из цикла рисования точек AX=0FFF, что соответствует вызову функции 0fh прерывания 16h. Я такой функции не знаю. Но это точно не ожидание надатия клавиши (ф-ции 0 или 10h). Поэтому ты просто не успеваешь увидеть результат.
Когда у тебя стоит 0FFh, то AX=00FF и вызывается 0-я функция 16-го прерывания.
Чтобы все работало как надо, поставь после метки vsye: команду xor ax, ax. Точнее, поменяй местами две команды.
И еще. Зачем ты используешь регистр edi в 16-разрядном режиме? Достаточно просто di. Все равно старшие 16 разрядов использоваться не будут. Да и в команде stosb используется в данном случае просто di, а не edi.
Оптимизировать, конечно, можно... Например, так, как в приложении. Для вывода 255 точек прога занимает 25 байт. Для вывода другого количества - 27 или 28 в зависимости от кол-ва байт для установки регистра CX.
Насчет формы задания вопроса. Это глюк не формы, а OE. При наборе ответа происходит тоже самое. Ты, небось, вопрос набираешь в режиме предпросмотра? По крайней мере глюк замечен только в этом режиме. Если открыть письмо полностью, то тогда пробел отрабатывает нормально.
Другой вариант ввода пробела (чтоб не копировать из буфера) - нажимать комбинацию Shift+пробел.


Приложение:

Ответ отправлен: 28.01.2003, 12:06
Отправитель: Ayl


 Вопрос № 2514

Как программно узнать формат файла под Win :
DOS-exe или Win-exe ?



Вопрос отправлен: 27.01.2003, 19:53
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Топор

Добрый день, IceWINteR!
По адресу (не сбрехнуть бы...) 0040h от начала файла лежит смещение второй сигнатуры - для исполняемых файлов Виндоуз это будет PE, для VxD - LE. Найди букварь Юрова "Ассемблер - Специальный справочник", там точнее.


Ответ отправлен: 28.01.2003, 11:44
Отправитель: Топор


Отвечает DiGiT[old]

Приветствую Вас, IceWINteR!
так смотри если PE файл значит под винды :)) Эти форматы везде в инете валяются

Ответ отправлен: 28.01.2003, 04:52
Отправитель: DiGiT[old]


Отвечает Eugene

Доброе время суток, IceWINteR!
Самый простой способ - читаешь прямо из файла первые символы. И сравниваешь. А лучше зайди на сайт и скачай сам.
http://www.wotsit.org/

Ответ отправлен: 28.01.2003, 10:03
Отправитель: Eugene


Отвечает masquer

Добрый день, IceWINteR!
Я смотрю, по делу отвечать никто не хочет... :)
Ладно, по адресу 3Ch лежит дворд, указывающий на начало РЕ, начало сигнатуры 'P','E',0,0. Ну, а перед этим можно проверить dword(?) по смещению 18h - должно быть больше или равно 40h. Если эти пункты соблюдены - значит формат PE перед глазами (для LE и NE не упомню, но что-то похожее)

Ответ отправлен: 28.01.2003, 12:37
Отправитель: masquer


 Вопрос № 2515

Здравствуйте, уважаемые Эксперты!
В приложении – небольшой код. Хотелось бы услышать Ваше мнение по нему. Что Вам, как Экспертам, не нравится в нем на первый взгляд, без знания самого алгоритма? Может что подправить надо(можно). Оптимизация ессно по СКОРОСТИ. Мастдай.
В приложении ессно не весь код, а только та часть, которая готова к текущему моменту. Я не имею ни малейшего представления о его работоспособности, так как без всего кода, реализующего алгоритм, не представляется возможности это визуально определить. А сидеть и проверять в дебагере – тупо. Вот когда будет весь код и не будет работать, тогда и посмотрим.
А теперь сам алгоритм. Как многие уже догадались – старый-добрый Life, над которым я собираюсь изрядно поизвращаться. Точнее та часть (пока), что определяет количество соседей для каждой точки.
Итак, начнем. Так как максимум соседей может быть 8 штук, то это значение можно запаковать в 4 бита. Если работать с DWORD-ми, то за одно чтение можно обработать 8 точек. Входной массив разбивается на группы по 4 бита, если группа == 0001b, то ессно точка присутствует, если же == 0000b – отсутствует. Другие значения нам некчему. Далее немного сложнее. Читаем 32 бита, сдвиг влево/вправо плюс суммирование этих значений, и все это можно суммировать с соответствующим значением из выходного массива (где количество соседей). Алгоритм 100% работоспособный и быстрый – проверял на бумаге.
Надеюсь не слишком запутано обьяснил.
Вобщем, гляньте плиз на код, и Ваше мнение в студию.
Искренне благодарю за внимание и потраченое (надеюсь не впустую) время.
ЗЫ. Если среди Вас, есть такие же больные Life-ом, то прошу откликнуться.
У меня идей по сабжу еще КУЧА, надеюсь в скором времени реализовать.
ЗЗЫ. Если не понятен мой алгоритм, могу выслать графическое представление – так понятнее и совсем просто.


Приложение:


Вопрос отправлен: 27.01.2003, 20:12
Отправитель: Бадян (sba@litech.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, Бадян!
Мне кажется, что у тебя очень много условных переходов - это сильно замедлит вычисления. У меня появилась вот какая идея - если будет два массива - один для точек (т.е. есть или нет - 0 или 1) и другой для количества соседей. Оба по 4 разряда на точку. Тогда можно обойтись без условных переходов вообще - тебе нужно преобразовать количество соседей и точку в точку в следующем поколении (это можно сделать сдвигами и логикой) - 0000 или 0001 (по 4 бита на точку), а затем просто складывать полученные значения со сдвигом с массивом соседей в след. поколении.
К сожалению, я точно не могу сейчас вспомнить алгоритм игры, поэтому кодом помочь тоже не смогу.


Ответ отправлен: 28.01.2003, 20:09
Отправитель: Bob Johnson


Отвечает Beeblebrox

Здравствуйте, Бадян!
Не в обиду будь сказано, но алгоритм НЕВЕРОЯТНО тормозной (примерно в 200 раз медленнее, чем мог бы быть). Качество кодинга тоже не вызвало у меня никакого восхищения, одно только деление на 8 чего стОит :(
Похвально только то, что ты пытаешься сделать что-то свое. Так держать :)

Ответ отправлен: 28.01.2003, 10:42
Отправитель: Beeblebrox


Отвечает Broken Sword

Здравствуйте, Бадян!
ну ненравится например там где можно обойтись 16 битами усиленно подсунунты 32-битные регистры (например, первые три команды)
Я не имею ни малейшего представления о его работоспособности, так как без всего кода, реализующего алгоритм, не представляется возможности это визуально определить. А сидеть и проверять в дебагере – тупо. Вот когда будет весь код и не будет работать, тогда и посмотрим.
на мой взгляд - ошибочное представление. Легче всего писать код по маленьким кускам - и тут же проверять результат. Все равно ведь ошибка есть непременно где-то, по-любому придется отлаживать весь код сначала и до ошибки... А если она не одна? Тогда еще раз сначала и до... второй ошибки. И т.д. Итого налицо явная растрата времени, которое на первый взгляд вроде экономится.
Как многие уже догадались – старый-добрый Life, над которым я собираюсь изрядно поизвращаться
если бы не название процедуры (NextGeneration) никогда бы не догадался...
А насчет любителей life-а - в журнале "Компьютеры и Программы" за 1999 г (номер 3) есть прелюбопытнейшая статья на этот счет. В частности, там даже создали клуб любителей "Жизни", изучают какие-то "мигалки", "блоки", "караваи" и "планеры" - (это ты наверно знаешь, названия стандартных фигурок на игровом поле), и даже проведен расчет предельных числовых параметров популяции чуть ли не с графиками и т.п. Вообщем, тебе б понравилось (незнаю, найди в нете должны быть выпуски этого журнала...)

Ответ отправлен: 27.01.2003, 20:50
Отправитель: Broken Sword


 Вопрос № 2516

Здравствуйте, товарищи!
У меня вопрос по видео режимам. там по консольному и досовкому я их знаю, они 10н функцией вызываются...
А что если у меня втдюха больше поддерживает чем 320х200 - ну в винде же у меня совсем другое разрешение обсолютно! тысяча... на что-то. Вот я интересуюсь - можно ли такие режими вызывать из консоли или доса и как? Илм это только в защищённом режиме? у меня карта ATI RAGE PRO. я хочу под винду в консоле что-нить такое сделать с большим разрешением.... или надо in/out тогда использовать руководствуясь докай с сайта?
Объясните по подробней плз.
И ещё вопрос - есть ли каки-нибудь международные экзамены по ассемблеру, сертификация каканить? (ну самом собой что настощий асемщик сертификации не подлежит никакой... я мне все так говорят) Но мож есть какая фирмёшка которая сертифицирует по асему ... мож только в какойнить области но всё равно главное по асему.
с уважениям к товарищам.



Вопрос отправлен: 28.01.2003, 04:46
Отправитель: Эдвард Самохвалов (edsam@spidernet.com.cy)

[Следующий вопрос >>] [Список вопросов]

Отвечает ASMодей

Здравствуйте, Эдвард Самохвалов!
Никакой защищенный режим не нужен. Не знаю как в консоли,
а в ДОС нужно использовать просто расширенные функции
прерывания INT 10h (AH=4Fh) для SVGA-режимов.


Ответ отправлен: 28.01.2003, 17:23
Отправитель: ASMодей


Отвечает Топор

Здравствуйте, Эдвард Самохвалов!
По памяти сейчас не скажу, но у Зубкова есть описание функций VESA BIOS. Какая-то из них даёт адрес и объём буфера LBA, который является видеопамятью в защищённом режиме DOS.

Ответ отправлен: 28.01.2003, 11:39
Отправитель: Топор


Отвечает DiGiT[old]

Добрый день, Эдвард Самохвалов!
Есть vesa режимы в них можно использовать более высокие режимы. А вод конкретную карту нужны драйверы.

Ответ отправлен: 28.01.2003, 05:02
Отправитель: DiGiT[old]


Отвечает Maverick

Здравствуйте, Эдвард Самохвалов!
Вопервых не 10 функцией, а прерыванием.
Во вторых им можно и 1024x768 установить.
Высылаю доку по этому прерыванию на мыло.

Ответ отправлен: 28.01.2003, 08:21
Отправитель: Maverick


Отвечает Ayl

Доброе время суток, Эдвард Самохвалов!
Для новых режимов можно использовать стандарт VESA - он по идее должен поддерживаться всеми карточками. Посмотри описание функции 4f прерывания 10h. Вполне работоспособно в реальном режиме.

Ответ отправлен: 28.01.2003, 16:04
Отправитель: Ayl


 Вопрос № 2517

Эксперт Maverick с прискорбием вынужден сообщить, что он лопухнулся :)
Короче те к кому последие 2 дня пришли от меня исполняемые файлы от 27.01.2003-28.01.2003, НЕ ЗАПУСКАЙТЕ их. Это I-Worm.Avron червяк. Ну не я заразился им, не я. Я не один в инете вишу и почту получаю. Прихожу домой, включаю комп, а он не хочет нормально работать. Короче виря я кастрировал, но он мог до этого разослать копии, но вроде не должен был :)
По всем вопросам на Maverick@nightmail.ru



Вопрос отправлен: 28.01.2003, 05:22
Отправитель: Maverick (Maverick@nightmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Приветствую Вас, Maverick!
Ко мне недавно пришло письмо с адреса на сервере belgorod.serw.ru с каким-то exe файлом типа IAmWitHYou. У меня старый антивирус - он ничего не нашел, но запускать я его не стал. У тебя есть там почтовый ящик?


Ответ отправлен: 28.01.2003, 20:09
Отправитель: Bob Johnson


 Вопрос № 2518

Товарищи!
Вопрос не относится непосредственно к асму.
Дело в том, что Мне нужно организовать передачу данных непосредственно в порт, который предварительно открывается функцией RasDial. Т.е. RasDial звонит, устанавливает соединение, а потом Я прямо в порт пишу байты... Это возможно? Или может быть подскажете альтернативу RasDial, Мне-то нужно только, чтобы соединение было установлено по PPP.
Заранее спасибо.



Вопрос отправлен: 28.01.2003, 06:19
Отправитель: UE

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, UE!
Функцией RasDial никакой порт не открывается. Она устанавливает соединение с удаленным компьютером и может, таким образом, ввести его в удаленную сеть или просто обеспечить маршрутизацию IP пакетов. Также TCP порты не имеют никакого отношения к портам процессора и командам in и out. TCP порт является виртуальным расширением адресного пространства сети - т.е. чтобы данные попали к определенной программе, необходимо не только указать адрес компьютера, на котором она запущена, но и номер порта. Чтобы передать данные в определенный порт, необходимо вначале установить соединение. Смотри функции WSA (Windows Socket API).


Ответ отправлен: 28.01.2003, 20:09
Отправитель: Bob Johnson


 Вопрос № 2519

Я никак не мог удержаться, чтобы не высказать свою точку
зрения на вопрос № 2473, "о мощи Асма, гибкости С++,
убогости Delphi и слабости VB". Заранее прошу простить если
моё мнение кого-то обидит. Когда я ещё учился в школе, был у
меня один друг, так вот, тогда ещё в классах стояли БК001 и
всё преподавание информатики сводилось к "реализации решения
конкретной задачи на БК001 (бэйсик, если кто не знает)", нам
с ним этого не хватало и мы самостоятельно изучили паскаль.
Вместе с нами учился ещё один "продвинутый", он вообще в
одиночку пытался осилить C++. Через год, уже в 11-м классе,
мы принимали участие в олимпиаде по информатике. Требовалось
решить поставленные задачи, составить блок-схемы,
реализовать решение на каком-либо языке программирования.
Тогда оказалось, что даже при одинаковых алгоритмах решения,
реализации на конкретном языке сильно отличаются. Программы
на бэйсике оказались больше чем на паскале, а программа
написанная на C++, так и не заработала. Из этой истории я
вынес, для себя несколько важных уроков, которыми и хочу
поделиться:
1. Не стоит поддаваться "стадному чувству", но так же не
стОит радикально выделяться из общей массы. (Язык которому
учат "всех" не обязательно самый лучший, язык который "все"
хвалят не обязательно самый гибкий, всегда есть компромис.)
2. Лучше хорошо владеть одним языком, пусть и не "самым
гибким", чем не с уметь применить эту "гибкость" для решения
конкретной задачи. (Хотя, применительно к данной истории,
главным был не размер программы, а её работоспособность, но
в общем случае,соотношение "время-результат", оказалось явно
не в пользу бэйсика.)
3. При нахождении решения задачи, мыслить нужно, не
конструкциями конкретного языка, а "алгоритмически", находя
суть решения задачи, а уже потом применяя его к конкретной
ситуации. ( Это утверждение справедливо, лишь применительно
к алгоритмический языкам.)
Теперь насчет, "(1) Delphi-на ламеров, ведь он основан на
языке Pascal","(2) От Visual Basic меня ваще тошнит" и "(3)
В чём же я не прав?". Как нельзя уместным здесь будет
выражение: "уж сколько раз твердили миру...". По пункту (1)
сам ты ламер! Иначе знал бы, что он основан не на паскале,
на объектном паскале, или это тебе ни о чем не говорит и
разницы ты здесь не видишь? А нужен он за тем, что это
действительно мощное средство быстрой разработки
программного обеспечения, он по определению RAD. Теперь по
пункту (2), если бы почитывал книжки, то знал бы, что с
появлением персональных ЭВМ в 1975г, появилось целое
поколение классных хакеров, языком которых был бэйсик!!!
Конечно, стех пор и времени прошло порядком и бэйсик
изменился. Но нельзя отрицать его как язык программирования.
Си язык хотя и действительно мощный, сделан он был для
облегчения переносимости программного кода, чего нет в асме,
но "затыкать им все дыры" тоже не стоит. А разрабатывать
коммерческое программное обеспечение на асме, в условиях
рынка, столь же не уместно, сколь глупо выглядят попытки
"дисассемблировать драйверы и переводить их на Бейсик".
Каждому своё. Теперь по пункту (3), я думаю, ты в корне не
прав. И пока ты не перестанешь всё оценивать, с позиции:
"что rulezz, а что suxxx", ты так и не поймешь всего
этого...
Всего вам и сразу. Денис. 10:42 28.01.03



Вопрос отправлен: 28.01.2003, 11:11
Отправитель: Денис

[Следующий вопрос >>] [Список вопросов]

Отвечает ASMодей

Доброе время суток, Денис!
Хочу сказать пару слов по поводу.
Я пишу программы уже довольно давно и успел за это время познакомиться
со многими языками программирования. В результате на сегодняшний день
я хорошо знаю С++, Delphi и Ассемблер и могу с уверенностью сказать, что
С++ - это наиболее мощный и гибкий язык программирования. Однако на работе
я пишу программы на Delphi. Почему? Да потому что заказчику совершенно не
интересно КАК программа работает, его больше интересует КОГДА она начнет
работать. Отсюда вывод: если ты пишешь программу для себя, то пиши на чем
тебе нравится, а вот если пишешь программу для кого-то, то приходится писать
на том, на чем оно получится быстрее, а быстрее оно получится конечно на
Delphi.
PS. На счет рассказанной тобой истории могу сказать следующее: если
программа, написанная на С++ не заработала, это совсем не означает,
что виноват С++, скорее всего виноват тот криворукий программист,
который на нем писал эту программу.


Ответ отправлен: 28.01.2003, 20:19
Отправитель: ASMодей


Отвечает Bob Johnson

Добрый день, Денис!
Что-то вот не представляю себе бэйсик-хакеров... Это те, которые находят строку a = a - 1 и добавляют в ее начало апостроф, чтобы жизни в игре не кончались?
В общем конечно, во многом ты прав. Во многом, кроме одного - "никак не мог удержаться". Это все-таки не форум "ASM vs. BASIC", а рассылка. И надо отличать такие вещи. Потому что за последнее время такие вот вопросы попадаются постоянно. И что самое интересное, что на них обычно отвечает максимальное количество экспертов - потому что большинству из нас лень посмотреть на программу в 10 строк, зато пропустить обсуждение offtopic вопроса про нужность и полезность асма начинающему программеру просто невозможно.
И еще один интересный момент - больше всего в последствии всем таким вопросам радуется именно тот человек, который вначале обосрал асм - он начал, а как все развернулось...
Если язык программирования существует, значит он кому-то нужен. И мне кажется, что в общем случае (без ссылки на конкретную программу, написанную на этом языке) называть язык отстойным не следует. Потому что все познается в сравнении. Более того, среды программирования создаются зачастую буржуями, где они не скачиваются с интернета, а покупаются за реальные деньги, что также влияет на процесс выбора между ними. Можно также заметить, что вышеупомянутый "ламерский" Delphi (выражение "ламерский" к delphi применяют очень часто) стоит $1000, а вот VC++ (для "Real programmers") всего $400 (или $600). Почему - вот из-за всех его компонентов, которые делают интерфейс за несколько движений мыши. Поэтому давайте не будем больше "меряться письками" (как тут кто-то справедливо заметил) и задавать все подобные вопросы.


Ответ отправлен: 28.01.2003, 20:10
Отправитель: Bob Johnson


Отвечает Igoryk

Приветствую Вас, Денис!
Я с вами согласен.

Ответ отправлен: 29.01.2003, 18:10
Отправитель: Igoryk


Отвечает masquer

Здравствуйте, Денис!
А разрабатывать
коммерческое программное обеспечение на асме, в условиях
рынка, столь же не уместно, сколь глупо выглядят попытки
"дисассемблировать драйверы и переводить их на Бейсик"

Ну, не надо, не надо, я тебе могу тысячи причин привести, почему асм можно использовать (и он успешно используется) в "коммерческом программировании". Для примера "от фонаря" возьми любую систему где скорость является критичной. Например, в фотошопе ответственные части на асме написаны.
Я знаю коммерческие проекты, где отдельные модули на читом асме написаны. И ничего.
По поводу переносимости - да, на другую систему не так просто перевести программу (даже не очень объемную), но мне это не печет сейчас и, учитывая текущее состояние дел, ближайшие лет 10 ситуация не изменится. Так что переносимость отметаем.
По поводу Делфи - кроме как для "домашних" утилит, для которых не важен ни размер, ни скорость - да, пойдет, а больше ни на что не годная система, не зря на западе и слОва такого не знают (ну, условно так).
Ну, это так, еще одна точка зрения

Ответ отправлен: 28.01.2003, 12:19
Отправитель: masquer


Отвечает Ayl

Приветствую Вас, Денис!
Поддерживаю по всем пунктам! Даже и добавить-то по существу нечего!

Ответ отправлен: 28.01.2003, 12:55
Отправитель: Ayl


Отвечает Sensey

Здравствуйте, Денис!
Ну раз ответили - и я выскажусь :)
Полностью поддерживаю твой третий пункт.
При нахождении решения задачи, мыслить нужно, не
конструкциями конкретного языка, а "алгоритмически"

Лично я смотря по задаче, использую С, Паскаль, Ассемблер или Делфи(выучил наконец-то немного!).
Владею еще Бейсиком и Фортраном, но их не применяю - как-то не находил пока задач, которые на них лучше решаются :)


Ответ отправлен: 28.01.2003, 14:00
Отправитель: Sensey


Отвечает DiGiT[old]

Здравствуйте, Денис!
Ответ: Ты идешь на работу тебя заставляют писать прогу на незнакомом тебе и нелюбимом языке, ты что в позу встанешь ?? Все зависит от гонорара, и фирмы, ну может от принципиальности. Результат. надо изучать то, что нужно(спрос рождает предложение).
Однако в современной экономике утвердилось такое, что предложение рождает спрос, поэтому пишу на чем хочу, продаю всем...(пусть даже они этого не хотят)
А насчет Делфи ламеров, что обижаться, я знаю людей, которые на Делфи создают очень даже неплохие проги. К тому же много распространенных прог, написанных на борланде.

Ответ отправлен: 29.01.2003, 05:34
Отправитель: DiGiT[old]



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (28)
Perl (7)
Delphi (17)
Pascal (24)
Basic / VBA (12)
Java / JavaScript (12)
PHP (8)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (30)
"Железо" (32)
Поиск информации (18)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (13)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (5)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное