Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 514
от 31.03.2003, 19:50
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2875 Отправлено ответов: 8533 Активность: 296.8 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Joy Статус: Опытный Общий рейтинг: 129.56 [Подробней >>] |
DiGiT[old] Статус: Профессиональный Общий рейтинг: 111.07 [Подробней >>] |
Samodelkin Статус: Доверительный Общий рейтинг: 141.17 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 150.3 URL: Программирование [Подробней >>] |
akul Статус: Опытный Общий рейтинг: 116.33 Телефон: +6019-6416245 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 108.18 URL: Страничка обо мне и моих друзьях Телефон: +7 902 168 02 65 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 136.93 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 142.75 [Подробней >>] |
WNA Статус: Начальный Общий рейтинг: 107.28 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 124.59 URL: моя рассылка по Protected Mode [Подробней >>] |
St Статус: Опытный Общий рейтинг: 109.27 [Подробней >>] |
Eugene Статус: Опытный Общий рейтинг: 108.88 URL: мощный файловый архив [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.52 [Подробней >>] |
Tigran K. Kalaidjian Статус: Начальный Общий рейтинг: 112 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2848. Здраствуйте! Порекомендуйте мне, пожалуйста, сайты и книги о програмировании ОС, проектированию файл... (ответов: 2)
Вопрос № 2849. Господа эксперты. Извините заранее, если вопрос не в тему... Я столкнулся с такой проблемой(для меня... (ответов: 1)
Вопрос № 2850. Здравствуйте уважаемые тов. Эксперты! Я тут спрашивал у народа, как мне в программе которая выполняе... (ответов: 1)
Вопрос № 2851. Продолжение вопроса 2840. А какие побочные явления могут возникать при передаче аргументов макроопре... (ответов: 2)
Вопрос № 2852. Здра, уважаемые эксперты! Стоит ли использовать DDK для Win 2000 под Win ХР или для нее существует с... (ответов: 3)
Вопрос № 2853. Есть ли прерывания BIOS, с помощью которых можно получить модель и объем накопителя HDD?... (ответов: 4)
Вопрос № 2854. Доброе утро, день, вечер. (нужное подчеркнуть) Я программирую на Delphi. У меня возникла проблема. ... (ответов: 4)
Вопрос № 2855. Здравствуйте уважаемые Эксперты!!! Может у кого то из вас есть описания функций библиотек wsock32.d... (ответов: 3)
Вопрос № 2856. Большой привет ВСЕМ. Вопрос такой: КАК заставить Operu 7x сохранять страничку целеком и только одним... (ответов: 2)
Вопрос № 2857. Хочу написать прогу для перевода 16-ричных чисел в десятичные? Нужны идеи, как к этому подступиться ... (ответов: 7)
Вопросов: 10, ответов: 29
Вопрос № 2848 |
Здраствуйте!
Порекомендуйте мне, пожалуйста, сайты и книги о програмировании ОС, проектированию файловой системы и т.д.
Спасибо
Вопрос отправлен: 26.03.2003, 20:19
Отправитель: Torax (torax@dotes.west.energy.gov.ua)
[Следующий вопрос >>] [Список вопросов]
Отвечает Joy
Приветствую Вас, Torax!
На эту тему очен много информации как в инете (поисковики, wasm.ru, codenet.ru, sourses.ru ...), так и в книжных магазинах на полках.
Ответ отправлен: 27.03.2003, 11:23
Отправитель: Joy
Отвечает DiGiT[old]
Доброе время суток, Torax!
Знаешь я прочитал рульную книгу Вильма Столлингса "Операционные системы", это будет в точку, потом я видел книгу Таненбаума, но не читал "Современные операционные системы", в них обо всем изложено, и в конце приведены ссылки на популярные издания. если сможешь почитай Дейсктру, но я не видел такое издание тока слышал.
Ответ отправлен: 27.03.2003, 04:47
Отправитель: DiGiT[old]
Вопрос № 2849 |
Господа эксперты. Извините заранее, если вопрос не в тему... Я столкнулся с такой проблемой(для меня). Нужно прочитать информацию, которую отсылает серверу мой модем, т.е. Винда что-то-незнамо-что шлёт серверу - вот это я и хочу узнать. Дело упрощается(а может и нет) тем, что мне нужно выдернуть всего лишь одно число(параметр, значение), по возможности его изменить и отослать новое число(параметр, значение). Есть же программы, которые, к примеру блокируют "отсылание операционкой всякой информации". Надеюсь доступно изложил свою проблему. Помогите хотя бы функциями какими(если такие имеются АПИшные), идеей. Писать буду на Delphi.
Заранее спасибо всем откликнувшимся.
С уважением, Иван.
Вопрос отправлен: 26.03.2003, 21:24
Отправитель: Иван (stein@fromru.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает Samodelkin
Приветствую Вас, Иван!
решил сделать собственный файрволл? ну тогда ищи инфу по программированию сокетов. то есть по всяким АПИшным socket, connect, send,recv,gethostbyaddr,gethostbyname,accept,bind и пр...
Ответ отправлен: 27.03.2003, 11:05
Отправитель: Samodelkin
Вопрос № 2850 |
Здравствуйте уважаемые тов. Эксперты!
Я тут спрашивал у народа, как мне в программе которая выполняется как загрузчик аллокировать память динамически под переменные. Мне сказали что типа нихрена....
Может вы что подскажете - итак есть загрузчик. для проги нужен буфер в памяти - ну так байт где-то см. приложение. А что делать? Как получить память? Расскажите pls, может ресурс какой посоветуете?
Приложение:
Вопрос отправлен: 26.03.2003, 21:42
Отправитель: Эдвард Самохвалов (zeleniy_kot@yahoo.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Эдвард Самохвалов!
Загрузчик в смысле boot-сектора? Если да, то тогда память вся (почти) к твоим услугам... Потому что за выделение памяти отвечают функции dos, которые еще не загружены. Так что просто выбираешь себе свободный участок (например, 09000h - 09ААААр) и пишешь туда то, что хочешь.
Ответ отправлен: 27.03.2003, 14:13
Отправитель: Bob Johnson
Вопрос № 2851 |
Продолжение вопроса 2840. А какие побочные явления могут возникать при передаче аргументов макроопределениям.
Если можно пример. Заранее благодарен.
Вопрос отправлен: 26.03.2003, 21:52
Отправитель: Андрей
[Следующий вопрос >>] [Список вопросов]
Отвечает Joy
Добрый день, Андрей!
Так ты читал п. 3.5 в книге Зубкова? Там все расписано.
Я немного работал с макросами, но и ни каких "побочных" явлений не нашел.
Ответ отправлен: 29.03.2003, 08:05
Отправитель: Joy
Отвечает Bob Johnson
Доброе время суток, Андрей!
В смысле? Макрос как бы раскрывается в процессе компиляции, т.е. компилятор видит имя макроопределения а вместо него подставляет текст по определенным правилам.
Ответ отправлен: 27.03.2003, 14:14
Отправитель: Bob Johnson
Вопрос № 2852 |
Здра, уважаемые эксперты!
Стоит ли использовать DDK для Win 2000 под Win ХР или для нее существует свой собственный?
Спасибо
Вопрос отправлен: 26.03.2003, 22:34
Отправитель: equalizer
[Следующий вопрос >>] [Список вопросов]
Отвечает akul
Здравствуйте, equalizer!
На данный момент я натолкнулся на такую бяку: собранный video miniport по всем правилам на DDK2000 не заводится под XP (designed for old windows version). Хотя мой драйвер мышки написанный и отлаженный под 2k под ХР работает чудесно. Кстати, коллеги, если кто может - поделитесь DDK для xp.
Ответ отправлен: 27.03.2003, 16:30
Отправитель: akul
Отвечает Gibbel
Здравствуйте, equalizer!
Для WinXP существует свой... Распространяется он на компактах за некоторую сумму (как утверждает Microsoft, цена доставки, но IMHO, за такую цену мне ее бИЛЛ гЕЙТС сам лично должен привезти)...
Ответ отправлен: 27.03.2003, 10:14
Отправитель: Gibbel
Отвечает Bob Johnson
Доброе время суток, equalizer!
Существует. Если ты его сможешь найти - то используй, конечно. Ну а если нет, то под хр можно все-таки ставить драйвера от 2к.
Ответ отправлен: 27.03.2003, 14:14
Отправитель: Bob Johnson
Вопрос № 2853 |
Есть ли прерывания BIOS, с помощью которых можно получить модель и объем накопителя HDD?
Вопрос отправлен: 27.03.2003, 06:59
Отправитель: Tomazo Torquemada
[Следующий вопрос >>] [Список вопросов]
Отвечает Samodelkin
Доброе время суток, Tomazo Torquemada!
мне о таких неизвестно... обычно для этого применяют программирование портов
Ответ отправлен: 27.03.2003, 11:07
Отправитель: Samodelkin
Отвечает Joy
Приветствую Вас, Tomazo Torquemada!
Ни когда не слышал о том, что с помощью прерываний БИОСа получали модель и т.п. А вот с помощью технологии SMART - легко. Ищи описание в Инете, этого добра полно....
Ответ отправлен: 29.03.2003, 08:05
Отправитель: Joy
Отвечает Maverick
Доброе время суток, Tomazo Torquemada!
Второй раз отвечаю на этот вопрос за седня :)
INT 13 - Дисковое прерывание - GET CURRENT DRIVE PARAMETERS
- получить текущие параметры диска - (для XT,AT,XT286,CONV,PS)
AH = 08h
DL = номер диска
Возвращает: установленный CF при ошибке
AH = код состояния (смотри AH=01h)
BL = тип диска (смотри AH=17h) (только для гибких дисков AT/PS2)
DL = число последовательно ответивших дисков
DH = максимальный номер дорожки
CL = максимальный номер сектора (биты 0-5)
CH = максимальный номер цилиндра (старшие биты в битах 6,7 CL)
ES:DI -> таблица параметров диска
Ответ отправлен: 27.03.2003, 16:19
Отправитель: Maverick
Отвечает Gibbel
Приветствую Вас, Tomazo Torquemada!
Можешь попробовать прочитать эти данные из CMOS.
Ответ отправлен: 27.03.2003, 10:15
Отправитель: Gibbel
Вопрос № 2854 |
Доброе утро, день, вечер. (нужное подчеркнуть)
Я программирую на Delphi. У меня возникла проблема.
Есть массив of byte из 170000 элементов. От каждого элемента надо отнять 1 байт (0-1=255).
При реализации данного цикла PIII 1200 Mz выполняет задачу минуты за 2-3.
Вопрос: Возможно ли ускорить процесс при помощи АСМа? Если возможно то как?
Вопрос отправлен: 27.03.2003, 14:20
Отправитель: Aleksey
[Следующий вопрос >>] [Список вопросов]
Отвечает Samodelkin
Добрый день, Aleksey!
Реализация такой задачи на Асме даст существенный прирост скорости по сравнению с Delphi. Однако минуты 2-3 это черезчур даже для Delphi! У тебя случаем нехватка оперативки не сказывается? То есть к файлу подкачки при выполнении твоей программы винда не обращается? Если у тебя так мало оперативки что задействуется виртуальная память, то никакой асм не поможет - обращение к жесткому диску сведет на нет выигрыш, какой бы мог получиться при обработке Асмовой прогой вместо дельфёвой массива в реальной RAM.
Ответ отправлен: 27.03.2003, 16:25
Отправитель: Samodelkin
Отвечает masquer
Доброе время суток, Aleksey!
Не тестировал (и особо не оптимизировал), но на любой машине с MMX будет гораздо меньше секунды обрабатываться даже в 100 раз больший объем. Да, кстати о птичках, перепиши свой алгоритм на С и сравни скорость - Делфи отстой...
xor eax, eax
inc eax
movd mm0, eax
punpcklbw mm0,mm0
punpcklwd mm0,mm0
punpckldq mm0,mm0
mov ecx, 170000/32
mov edi, offset Your_170000_Elements
@@: movq mm1, [edi]
movq mm2, [edi+8]
movq mm3, [edi+16]
movq mm4, [edi+24]
psubb mm1, mm0
psubb mm2, mm0
psubb mm3, mm0
psubb mm4, mm0
movq [edi], mm1
movq [edi+8], mm2
movq [edi+16], mm3
movq [edi+24], mm4
dec ecx
jnz @B
Ответ отправлен: 27.03.2003, 14:58
Отправитель: masquer
Отвечает WNA
Добрый день, Aleksey!
Только что проверил - на Celeron 1200 меньше секунды. Просто оптимизируй цикл, возможно у тебя там что-то лишнее считается еще. Вообще хотелось бы увидеть конкретный кусок программы.
Ответ отправлен: 27.03.2003, 14:54
Отправитель: WNA
Отвечает Bob Johnson
Приветствую Вас, Aleksey!
Delphi имеет достаточно крутой компилятор, который все хорошо оптимизирует. Попробуй в свойствах проекта нажать кнопочку "Release", что должно привести к построению максимально оптимизированного файла.
Если же все таки это не поможет, можешь вот такую процедуру вставить в delphi
asm
mov eax, offset my_array
mov ecx, 170000
@@1:
sub byte ptr [eax], 1
inc eax
dec ecx
jnz @@1
end
в теории должно занимать 2 такта на байт, т.е. 340000 тактов на весь твой массив, но с учетом скорости памяти (а это около 400-600 мб на чтение, если у тебя не ddr, и 200 мб на запись, т.е. около 166 мб на копирование) должно занимать 1 миллисекунду... Странно, почему у тебя на delphi занимат 2 минуты? Смотри код, в нем должны быть ошибка...
Ответ отправлен: 28.03.2003, 17:18
Отправитель: Bob Johnson
Вопрос № 2855 |
Здравствуйте уважаемые Эксперты!!!
Может у кого то из вас есть описания функций библиотек wsock32.dll и wininet.dll? Буду очень признателен если вы скинете их (описания) мне на ё-майл.
Вопрос отправлен: 27.03.2003, 15:10
Отправитель: Drahus
[Следующий вопрос >>] [Список вопросов]
Отвечает Samodelkin
Здравствуйте, Drahus!
По wininet.dll описаний много, но я их избегал до сих пор, мне wsock32.dll больше по душе. Попадалась интересная статейка "Сокеты M$windows" (правда с небольшими ошибками, а еще MSDN на дисках с вижелстудией 6.0 читаю.
На почту... скинул бы статейку ... ну еще кое что ... ОСТОЛОП! ТЫ ЖЕ ПОЧТУ НЕ УКАЗАЛ! и куда я таперь слать буду?
Ответ отправлен: 27.03.2003, 16:45
Отправитель: Samodelkin
Отвечает Gibbel
Добрый день, Drahus!
MSDN forever!!!
Ответ отправлен: 27.03.2003, 15:25
Отправитель: Gibbel
Отвечает Bob Johnson
Добрый день, Drahus!
В MSDN все это есть. Лучше поставь сразу - все равно когда-нибудь сделаешь это. в on-line MSDN тоже доступен: msdn.microsoft.com.
Ответ отправлен: 28.03.2003, 17:18
Отправитель: Bob Johnson
Вопрос № 2856 |
Большой привет ВСЕМ. Вопрос такой: КАК заставить Operu 7x сохранять страничку целеком и только одним файлом, типа как в IE
Вопрос отправлен: 27.03.2003, 17:38
Отправитель: Mihail
[Следующий вопрос >>] [Список вопросов]
Отвечает Joy
Здравствуйте, Mihail!
Наверное не много не по теме рассылки! Я вообще не слышал, чтоб Opera это делала.
Ответ отправлен: 29.03.2003, 08:05
Отправитель: Joy
Отвечает Samodelkin
Доброе время суток, Mihail!
Ты жестоко ошибаешься :) ИЕ не сохраняет одним файлом. Картинки не могут быть инкапсулированы в текст и сохраняются в виде отдельных фалов в создаваемом подкаталоге с именем "сохраняемое_имя_страницы.files" так что сохранение и графической и тесктовой информации в одном файле не осуществляет ни один браузер
Ответ отправлен: 28.03.2003, 11:33
Отправитель: Samodelkin
Вопрос № 2857 |
Хочу написать прогу для перевода 16-ричных чисел в десятичные? Нужны идеи, как к этому подступиться (только кроме прописывания эквивалентов каждому 16-ричному числу!!!).
Вопрос отправлен: 27.03.2003, 18:09
Отправитель: Tomazo Torquemada
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Здравствуйте, Tomazo Torquemada!
знаю только, что красиво это никак не реализуешь. Я делаю всегда так: делю на 10 число и вывожу остаток (после +30h естественно). Заканчивается это дело только когда AL=0
Ответ отправлен: 27.03.2003, 20:48
Отправитель: Broken Sword
Отвечает St
Привет, Tomazo Torquemada!
Процедура перевода 16-ричного числа размером в WORD в строку десятиричных цифр оканчивающуюся кодом 0 (ASCIIZ-строка).
St
Приложение:
Ответ отправлен: 28.03.2003, 13:17
Отправитель: St
Отвечает Eugene
Здравствуйте, Tomazo Torquemada!
Прописать эквиваленты для всех 16-чных чисел будет очень неоптимально с точки зрения расходуемой памяти. Можешь кроме деления на 10 использовать счётчики. Т.е. организовываешь счётчик по 16-чному числу и в цикле увеличиваешь какую - нибудь переменную с 10-чной коррекцией.
Ответ отправлен: 28.03.2003, 09:08
Отправитель: Eugene
Отвечает Samodelkin
Здравствуйте, Tomazo Torquemada!
ну если тока идеи тогда прописывание эквивалентов можешь забыть. Чисел бесконечное множество - заколебешься прописывать :) Проще всего будет найти алгоритмы перевода шестнадцатеричного числа (то есть строки шестнадцатеричных цифр) в byte, word или dword, а то что получилось затем преобразовать в десятичное число (то есть строку десятичных цифр)
Ответ отправлен: 31.03.2003, 06:03
Отправитель: Samodelkin
Отвечает Ayl
Приветствую Вас, Tomazo Torquemada!
А что сложного-то? 16-ричное число переводится в 10-ую с.с. по простой формуле:
D = H0 + 16*(H1 + 16*(H2 +... +16*Hn)...),
где H0,H1,...,Hn - цифры 16-ричного числа.
Тебе все равно придется завести табличку для преобразования 16-ричных цифр в десятичные числа.
Можно также переводить не по цифрам, а по байтам (2 16-ричные цифры одновременно). Тогда формула будет выглядеть так:
D = B0 + 256*(B1 + 256*(B2 + ... + 256*Bn)...),
где Bi - 2 цифры 16-ричного числа.
Но для этого тебе уже потребуется табличка из 256 элементов.
Ответ отправлен: 28.03.2003, 16:40
Отправитель: Ayl
Отвечает Bob Johnson
Здравствуйте, Tomazo Torquemada!
Как я понял у тебя есть 16-чное число в виде строки, которую тебе нужно преобразовать в строку с десятичным числом. Тогда задача разделяется на 2:
1. Преобразование из строки в число (которое помещается в регистре).
2. Преобразование значения регистра в строку.
1 делается так:
1.1. результат = 0
1.2. идешь по строке слева направо, по одному символу.
1.3. Берешь текущий символ (это '0'-'9' или 'A'-'F') и переводишь его в цифру 0 - 15.
1.4. результат = результат*16 + текущая цифра.
1.5. до тех пор, пока не достугнут конец строки идешь к 1.2.
Для перевода числа в десятичное используй остаток от деления на 10.
Ответ отправлен: 28.03.2003, 17:18
Отправитель: Bob Johnson
Отвечает Tigran K. Kalaidjian
Здравствуйте, Tomazo Torquemada!
Возьмем 16-ричное число. Сумма=0.
Берем последнюю цифру и умножаем на 16 в степени 0(т.е. на 1). Прибавляем к сумме.
Берем предпоследнюю цифру и умножаем на 16 в степени 1. Прибавляем к сумме.
Берем предпредпоследнюю цифру и умножаем на 16 в степени 2. Прибавляем к сумме.
.
.
.
Берем первую цифру и умножаем на 16 в степени (n-1), где n-число разрядов 16-ричного числа. Прибавляем к сумме.
В сумме будет лежать 10-чное число, эквивалентное данному.
Единственное, что ещё надо будет прописать-соответствие "цифр" > 9:
A->10
B->11
C->12
D->13
E->14
F->15
Пример: F1A->10*16^0+1*16^1+15*16^2=3866
Ответ отправлен: 28.03.2003, 17:28
Отправитель: Tigran K. Kalaidjian
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (36) C / C++ (28) Perl (6) Delphi (15) Pascal (19) Basic / VBA (9) Java / JavaScript (9) PHP (5) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (30) Windows NT/2000/XP (23) "Железо" (28) Поиск информации (15) |
Администратору Windows NT/2000/XP (10) Linux / Unix (13) |
Юристу Гражданское право (9) Семейное право (5) Трудовое право (5) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||