Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 283
от 06.06.2002, 21:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 348 Отправлено ответов: 927 Активность: 266.3 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Артём Шегеда Статус: Профессиональный Общий рейтинг: 131.48 URL: Пристанище неодинокого программиста [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 140.57 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 162.83 [Подробней >>] |
Beeblebrox Статус: Опытный Общий рейтинг: 130.31 URL: Beeblebrox / TMA HomePage [Подробней >>] |
DiGiT Статус: Профессиональный Общий рейтинг: 146.05 [Подробней >>] |
Dron Статус: Профессиональный Общий рейтинг: 146.85 URL: Операционная система с нуля! [Подробней >>] |
AnSim Статус: Доверительный Общий рейтинг: 120.93 [Подробней >>] |
igorash Статус: Опытный Общий рейтинг: 139.86 [Подробней >>] |
kvINT Статус: Начальный Общий рейтинг: 110.48 [Подробней >>] |
Александр Статус: Опытный Общий рейтинг: 119.47 [Подробней >>] |
UFO Статус: Опытный Общий рейтинг: 121.95 [Подробней >>] |
Dark_Lord Статус: Доверительный Общий рейтинг: 117.78 [Подробней >>] |
kostik Статус: Профессиональный Общий рейтинг: 122.33 URL: Все о программистах и для программистов Телефон: (4212)393-276 [Подробней >>] |
Топор Статус: Опытный Общий рейтинг: 129.74 URL: Хорошая Русская Металлическая команда Телефон: (8462)160302, 162918 [Подробней >>] |
BlackBeast Статус: Доверительный Общий рейтинг: 104.19 [Подробней >>] |
Gibbel Статус: Доверительный Общий рейтинг: 109.25 [Подробней >>] |
Тorax Статус: Доверительный Общий рейтинг: 117.32 [Подробней >>] |
Andy Bitoff Статус: Опытный Общий рейтинг: 117.51 URL: HomePage или что-то типа того :) [Подробней >>] |
vitya Статус: Опытный Общий рейтинг: 119.22 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 288. Здраствуйте, тов. эксперты Не могли бы ответить на вопрос, зачем нужно выравнивание. По границе слов... (ответов: 10)
Вопрос № 289. Вопросов сразу много накопилось: 1. У кого есть полная версия PowerASM32? 2. Мне очень нравится ког... (ответов: 4)
Вопрос № 290. На нашем предприятии существует компьютерная сеть. Сервер на базе Novell, машин в сети порядка ... (ответов: 3)
Вопрос № 291. ml.exe (masm 6.11) govorit chto ne mozhet naiti link.exe kogda assebliruyu *.com file link.exe pot... (ответов: 2)
Вопрос № 292. Здраствуйте эксперты! Эксперты помогите решить такую проблему (теоретически или теоро-алгоритмически... (ответов: 5)
Вопрос № 293. Доброго время суток, эксперты! Какую прогу посоветуете для редактирования .rc/.res файлов. Зы. NOTaP... (ответов: 10)
Вопрос № 294. Люди, подскажите, pls, где взять драйвер принтера на асме, нужно чтобы выводило BMP-шники. Спасибо.... (ответов: 3)
Вопросов: 7, ответов: 37
Вопрос № 288 |
Здраствуйте, тов. эксперты
Не могли бы ответить на вопрос, зачем нужно выравнивание. По границе слова, двойного слова и т.д. Слышал, что это увеличивает скорость работы программ. Если это так, то почему?
Заранее спасибо
Вопрос отправлен: 02.06.2002, 06:52
Отправитель: Михаил
[Следующий вопрос >>] [Список вопросов]
Отвечает Артём Шегеда
Добрый день, Михаил!
На самом деле немножко не так, как ответил masquer.
Дело в том, что процессор (по крайней мере 386), выставляя адрес на шину данных, принимает сразу четыре байта по шине адреса. И если данные, имеющие размер 4 байта (dword), не выровнены на границу двойного слова, то процессор выполнит два обращения - а это затраты времени.
И эксперт masquer прав в том, что кэш с кодом, выровненным на границу параграфа, будет работать быстрее.
Это правило (повышении производительности) не выполняется для микроконтроллеров, работающих в байтном режиме обмена.
Ответ отправлен: 02.06.2002, 18:21
Отправитель: Артём Шегеда
Отвечает Ayl
Здравствуйте, Михаил!
Это действительно так и зависит от схемы работы процессора с шиной. Для 16-разрядных шин в случае, если слово считывается с четного адреса, то оно читается за 1 такт, а если с нечетного - то за 2. Двойное слово - аналогично, соответственно, за 2 и за 3 такта. Ну и т.п. Для 32-хразрядных - та же ситуация.
Ответ отправлен: 03.06.2002, 12:52
Отправитель: Ayl
Отвечает masquer
Приветствую Вас, Михаил!
Выравнивание уменьшает задержки (stalls), т.е. если данные или код не выровнены, то процессор, который может выполнять несколько инструкций одновременно будет работать "в холостую". Для данных выравнивание гарантирует их "правильное" попадание в кеш процессора, откуда они будут извлекаться гораздо быстрее.
Ответ отправлен: 02.06.2002, 09:03
Отправитель: masquer
Отвечает Beeblebrox
Доброе время суток, Михаил!
Так устроены интеловские процы, что если читать/писать невыравненные данные, то на выполнение команды уходят дополнительные циклы обращения к памяти.
Более того! Это чревато неприятной ситуацией нарушения границы, например, если у тебя di=0ffffh, то команда stosw вызовет зависание программы, чего не произошло бы, если б значение в di было четным.
Ответ отправлен: 03.06.2002, 10:50
Отправитель: Beeblebrox
Отвечает DiGiT
Добрый день, Михаил!
Вообще в интеловских процах самое оптимальное это выравнивание по граниче 16 байт. Это определяется наличем нескольких уровней кешей. Кстати в журнале "программист" есть стать об этом номер вроде 2 или 3 за этот год.
Ответ отправлен: 03.06.2002, 09:17
Отправитель: DiGiT
Отвечает Dron
Приветствую Вас, Михаил!
выборка памяти осуществляется по определенному количеству байт. на 286 проуессоре зa такт из памяти выбиралось по 2 байта (16 бит) на трешке по 4 байта. выше - там уже пошли всякие кеши, там сложнее. :)
короче если какой-то элемент данных попадает в два соседних двойных слова (ну типа два байта там, два байта тут. - элемент dd) то на его выборку из памяти уйдет два такта вместо одного. вот тебе потеря производительности.
а еще если у тебя каждая вторая команда обращается к этому невыровненному элементу...
Ответ отправлен: 03.06.2002, 11:44
Отправитель: Dron
Отвечает AnSim
Приветствую Вас, Михаил!
Ну это совсем просто - данные в компе передаются СЛОВАМИ.
Поэтому, если выровнять, компу не надо искать, где
Ответ отправлен: 03.06.2002, 17:17
Отправитель: AnSim
Отвечает igorash
Добрый день, Михаил!
Поищи статьи про оптимизацию программ там это все красиво рассмотрено.
На infocity.com.ua валяется одна от Р.Дункана, хоть и 10 лет ей уже, но все что там написано, можно использовать и сейчас.
Ответ отправлен: 04.06.2002, 11:52
Отправитель: igorash
Отвечает kvINT
Здравствуйте, Михаил!
Например, цепочечные команды (movs, cmps etc.) позволяют быстро производить разл. действия с байтами, словами, двойными словами. Представь, что поочередно выбираются слова, а у тебя там то байт, то слово. Все смешается в доме Обломских.
Ответ отправлен: 05.06.2002, 21:41
Отправитель: kvINT
Отвечает Александр
Приветствую Вас, Михаил!
Ну как тебе объяснить. Есть такое понятие, кэш-памятью зовётся. Так вот при использовании выравнивания на длину кратную длине строки кэш памяти всё происходит гораздо быстрее. К тому же при выравнивании по границе кратной 4 байтам происходит более эффектифное считывание из модулей памяти. Тоже построчное. В журнале Программист(programme.ru) №1_2002 и №2_2002 про кэш-память и оптимизацию данных была статья Криса Касперски. Хорошая. В №3_2002 логически из этих двух статей вытекающая, про оптимальное копирование данных.
Ответ отправлен: 04.06.2002, 13:40
Отправитель: Александр
Вопрос № 289 |
Вопросов сразу много накопилось:
1. У кого есть полная версия PowerASM32?
2. Мне очень нравится когда в рассылке проходят какие-то конкурсы, дак вот, предлагаю написать не самую короткую, а самую быструю программу для вывода линии на экран (алгоритм), за основу использовать режим VESA 640х480х32, тестироваться будет по принципу 1000 хаотичных линий на время выполнения.
3. И еще по поводу ОСьки, все есть, надо только графику, а вообще надо собраться, пива попить, и всем миром сообразить. Предлагаю сделать это в Новосибирске, надеюсь меня поддержат.
Вопрос отправлен: 02.06.2002, 09:49
Отправитель: AllAddIn (AllAddIn@Ngs.Ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Здравствуйте, AllAddIn!
1. Это еще что за зверь?
2. Не интересно под ДОС что-то выдумывать.
3. Пиво это хорошо, Новосибирск далековато от юга Украины.
Ответ отправлен: 02.06.2002, 14:08
Отправитель: masquer
Отвечает Beeblebrox
Доброе время суток, AllAddIn!
2.Самый быстрый алгоритм вывода отрезка на экран уже давно написан, это так называемый DDA (Digital Difference Algorithm), он значительно быстрее (и короче, кстати) Брезенхема.
Описание желающие найдут на http://www.enlight.ru
3.Пива попить я и в Харькове могу, а написание ОС - занятие для энтузиастов, имеющее практическую ценность только для них самих (в смысле самообучения и практики)
Ответ отправлен: 03.06.2002, 11:06
Отправитель: Beeblebrox
Отвечает Dron
Добрый день, AllAddIn!
По поводу тестирования... :)
100 хаотичных линий могут потребовать разного времени выполнения. :)
так что хаотичные линии должны быть заранее определены и одинаковы для всех.
А по поводу алгоритма - быстрее как его, Безенхейма чтоли?, еще вроде никто не придумал.
Ответ отправлен: 03.06.2002, 11:46
Отправитель: Dron
Отвечает Александр
Здравствуйте, AllAddIn!
1. А те мил человек точно Power Assembler нужен. Ты лучше посмотри какие у меня Visual Assembler, Archimedes IDE, Programmers IDE 2000.
2. А я даже париться с самой быстрой линией не буду, сопру у Майкла Абраша(Michael Abrash) Таинства программирования графики(Zen of graphics programming).
3. Рационализаторское предложение. Страна Советов более широкая, чем высокая(если рассматривать карту), поэтому выгоднее встречаться на северном полюсе. Никому не будет обидно.
Ответ отправлен: 04.06.2002, 13:41
Отправитель: Александр
Вопрос № 290 |
На нашем предприятии существует компьютерная сеть. Сервер на базе Novell, машин в сети порядка 40. Работаем с базой данных, в которой около полумиллиона записей, СУБД мало кому известна, но достаточно шустрая. Однако, есть желание сменить программное обеспечение. Вот, собственно, что интересно:
1) Какая СУБД на сегодняшний день считается наиболее надёжной и шустрой (Oracle, MySQL...)?
2) Какой сервер для этого нужен (Unix, WinNT, Linux, Novell...)?
3) Посоветуйте, что наиболее рационально в соотношении цена-качество, исходя из п.1,2.
В дополнение можно заметить, что компьютеры "разношёрстные"- от 386 до П-4, и в будущем, возможно, потребуется сеть между достаточно удалёнными машинами (порядка 100 км).
Вопрос отправлен: 02.06.2002, 10:22
Отправитель: Алексей (developer@galexv.hut.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает UFO
Приветствую Вас,Ничего не меняй!
Будет большая_задница
Ответ отправлен: 02.06.2002, 18:01
Отправитель: UFO
Отвечает DiGiT
Здравствуйте, Алексей!
1) Оракл мощная, но не настолько гибкая как MYSQL.(Все определаятся количеством баз данных)
2) Я думаю UNIX,а Novell отпадает только потому. что это специализированная сетевая ось. Винды я думаю знаешь почему.
Если такие тачки слабые, то я думаю Только Юникс(Например Фря)
Ответ отправлен: 03.06.2002, 09:11
Отправитель: DiGiT
Отвечает Александр
Доброе время суток, Алексей!
1) Оракл - ОЧЕНЬ дорого надёжно и МЕДЛЕННО.
MySQL - Бесплатно, быстро, многого не умеет, хотя постоянно развивается
Centura SQL - приемлемая цена, надёжно, но очень запутанное администрирование.
Я не претендую на роль эксперта, просто впечатления от работы со всеми тремя.
2) Все 3 работают под виндой. MySQL работает под всеми Unix - системами.
3) Ну насчёт цены/качества я не советчик, вы тут кажется критерий качества не задали. Надо выбирать под потребности. Если не требуется использование SQL-изысков, реализованных только в последних версиях Oracle и MS SQL Server, то идеальной становится MySQL. Работу сильно разбросанной системы я наблюдал только под Centura SQL. В системе, которую я наблюдал был центральный сервер и несколько локальных. Обмен данными происходил во время фиксированных сессий по модему, примерно раз в 20-30 минут. Соответственно филиалы получали каждый свою информацию, а сервер получал обновления и дополнения из филиалов. Причём количество обрабатываемых записей было около 50000 на локальный сервер и 500000 на центральный.
P.S. В следующий раз пиши либо в поиск информации, либо в администрирование Windows или Linux. А так оффтопик получается.
Ответ отправлен: 04.06.2002, 13:42
Отправитель: Александр
Вопрос № 291 |
ml.exe (masm 6.11)
govorit chto ne mozhet naiti link.exe kogda assebliruyu *.com file
link.exe poteryalsya ? ? ?
Вопрос отправлен: 02.06.2002, 12:14
Отправитель: Nick
[Следующий вопрос >>] [Список вопросов]
Отвечает AnSim
Добрый день, Nick!
Поаккуратнее с путями...
Ответ отправлен: 03.06.2002, 17:19
Отправитель: AnSim
Отвечает igorash
Добрый день, Nick!
Nu eto ne mne vopros, a samomu sebe - ya je ne mogu uvideti chto na tvoiem vinte tvoritsya.
Poischi ego, mojet naideshi
Ответ отправлен: 04.06.2002, 11:50
Отправитель: igorash
Вопрос № 292 |
Здраствуйте эксперты!
Эксперты помогите решить такую проблему (теоретически или теоро-алгоритмически:)).
Как написать собственный язык программирования для программы (которая в этом нуждается).
И еше, теоретически как разобрать синтаксис. К примеру:
X+Y=Z.
P.S. Удачи...!
Вопрос отправлен: 02.06.2002, 15:54
Отправитель: kuper
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, kuper!
Достаточно сложная проблема в общем случае. Поищи в поисковиках по слову translate, compile. Я слышал про программу, которая добавляет к другой программе скриптовый язык типа VBA. Названия не помню.
Ответ отправлен: 02.06.2002, 17:02
Отправитель: masquer
Отвечает Dark_Lord
Добрый день, kuper!
На счёт языка, писать руками, а на счёт А+В=С, то это можно записать в 5 булеанов и переменных 1=true 1(2)=А, 2=false 2(2)=1(плюс) 3=true 3(2)=B 4=false 4(2)=5(равно) 5=true 5(2)=C
Ответ отправлен: 02.06.2002, 16:50
Отправитель: Dark_Lord
Отвечает DiGiT
Добрый день, kuper!
Синтакс разбирай или рекурсивно(вроде просто реализуется, я сам такое делал), либо приводи к обратной польской записи и там такие записи обрабатываются достаточно просто.
Для написания своего языка сначала разберись с терией формальных грамматик. :)))
Ответ отправлен: 03.06.2002, 09:08
Отправитель: DiGiT
Отвечает Dron
Приветствую Вас, kuper!
Как ты собираешься анализировать X + Y = Z с точки зрения компьютера? или Z - это место куда нужно записать результат? почему тогда не слева?
по поводу разбора - сходи на www.softcraft.ru
там много про компиляторы написано.
Ответ отправлен: 03.06.2002, 11:49
Отправитель: Dron
Отвечает kostik
Добрый день, kuper!
Об этом написано много книг и сайтов.
Советую прогуляться о адресам
http://www.softcraft.ru
http://algolang.da.ru
Ответ отправлен: 06.06.2002, 14:06
Отправитель: kostik
Вопрос № 293 |
Доброго время суток, эксперты!
Какую прогу посоветуете для редактирования .rc/.res файлов.
Зы. NOTaPAD не предлагать;) с ним я сейчас работаю!
Вопрос отправлен: 02.06.2002, 16:51
Отправитель: Dark_Lord
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Здравствуйте, Dark_Lord!
Я пользуюсь редактором из Visual Studio, а потом ручками почищаю. А вообще, по-моему, Ресторатором можно, да куча их.
Ответ отправлен: 02.06.2002, 18:01
Отправитель: masquer
Отвечает Топор
Приветствую Вас, Dark_Lord!
Я пользую встроенный редактор ресурсов в Borland C++ 5.02, иногда - Resource Workshop 4.5
Ответ отправлен: 04.06.2002, 06:41
Отправитель: Топор
Отвечает BlackBeast
Добрый день, Dark_Lord!
Я использую WEdit. Можно еще Resource Builder и у Borland че-то там есть. Посмотри на www.protools.cjb.net там много всякого добра.
Ответ отправлен: 03.06.2002, 22:42
Отправитель: BlackBeast
Отвечает Gibbel
Доброе время суток, Dark_Lord!
Хватай Borland C 5.02 - мне его редактор наиболее приятен.
Ответ отправлен: 03.06.2002, 11:16
Отправитель: Gibbel
Отвечает Тorax
Приветствую Вас, Dark_Lord!
Вместе с Дельфи и Си++ Буилдер идет редактор ресурсов, вот ими и пользуйся. Вообще-то таких прог немеряно в Инете.
Torax
Ответ отправлен: 02.06.2002, 21:26
Отправитель: Тorax
Отвечает Andy Bitoff
Приветствую Вас, Dark_Lord!
Поставь Borland C++ 5.02 и не мучайся.
Ответ отправлен: 02.06.2002, 22:09
Отправитель: Andy Bitoff
Отвечает DiGiT
Добрый день, Dark_Lord!
Я есть специальные редакторы ресурсов, например в Визуал студио, в борланде есть.
Ответ отправлен: 03.06.2002, 09:06
Отправитель: DiGiT
Отвечает vitya
Здравствуйте, Dark_Lord!
попробуй редактор VStudio или Borland - овские.
В VS надо открывать файлы, но внизу, где Open As, надобно выбрать Resources. Тогда все откроется как следует.
Ответ отправлен: 03.06.2002, 09:14
Отправитель: vitya
Отвечает igorash
Доброе время суток, Dark_Lord!
Есть brcc в комплекте с Borland Pascal.
Есть еще целая куча.
Поищи в инете, найдешь ее.
Ответ отправлен: 04.06.2002, 11:48
Отправитель: igorash
Отвечает kostik
Добрый день, Dark_Lord!
В составе Visual Studio есть такой редактор.
Но вот лучше всех - Resourse Workshop. Он идет в составе даже с Borland C++ 3.0. Не говоря, уже о более современных продуктах.
Ответ отправлен: 06.06.2002, 14:09
Отправитель: kostik
Вопрос № 294 |
Люди, подскажите, pls, где взять драйвер принтера на асме, нужно чтобы выводило BMP-шники.
Спасибо.
Вопрос отправлен: 02.06.2002, 21:09
Отправитель: Burney (burney@toba.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, Burney!
Указывай, под какую ось тебе это нужно. Если под винды, то драйвер тебе не нужен.
Ответ отправлен: 03.06.2002, 08:28
Отправитель: masquer
Отвечает Артём Шегеда
Доброе время суток, Burney!
Маленькое лирическое отступление.
Функция печати содержимого экрана на принтере зашита в BIOS. Но её беда в том, что она не выводит содержимого экрана в графических режимах. Поэтому операционные системы должны сами реализовывать подобные функции.
В Windows GDI это родное - работа с графикой. Сложнее с MS-DOS. В MS-DOS 6.22 была такая программа - graphics.com. Это резидент, который перехватывал прерывание вывода на принтер содержимого экрана. Поищи дистрибутив MS-DOS. В крайнем случае - задавай вопрос о написании подобной программы: здесь расскажут как печатать графику, как печатать фрагмент экрана, как масштабировать и многое другое и всё это в 3 КБайта кода...
Ответ отправлен: 03.06.2002, 11:47
Отправитель: Артём Шегеда
Отвечает Александр
Добрый день, Burney!
Ты уже умер или только тренируешься? Вопрос задавать надо подробнее. Для какого принтера, какой операционной системы. В windows не парься, а открывай картинку в Paint и говори Печать. Если в Дос, то там есть такая программа print.exe для поддержки вывода на печать содержимого экрана, даже в графическом режиме. Так что берёшь просмотровщик под ДОС, открываешь картинку на весь экран и жми PrintScreen. print.exe настраивается на одну из нескольких ему известных систем команд принтеров IBM или Epson. Про HP ничего не помню. Если тебе нужны команды принтера, то к моему Epson LQ-100+ они были в приложении руководства.
Ответ отправлен: 04.06.2002, 13:43
Отправитель: Александр
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (49) C / C++ (29) Perl (10) Delphi (17) Pascal (28) Basic / VBA (14) Java / JavaScript (8) PHP (8) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (49) Windows NT/2000/XP (35) "Железо" (40) Поиск информации (21) |
Администратору Windows NT/2000/XP (15) Linux / Unix (9) |
Юристу Гражданское право (13) Семейное право (5) Трудовое право (7) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||