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

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


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

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

Выпуск № 457
от 30.12.2002, 16:10

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


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

ASMодей
Статус: Профессиональный
Общий рейтинг: 118.54
[Подробней >>]
keleb-glin
Статус: Опытный
Общий рейтинг: 111.69
[Подробней >>]
Traish
Статус: Опытный
Общий рейтинг: 128.57
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 139.67
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.36
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.13
[Подробней >>]
 
baldr
Статус: Профессиональный
Общий рейтинг: 113.88
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.3
URL: Страничка обо мне и моих друзьях
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 121.64
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
 
LIFO
Статус: Профессиональный
Общий рейтинг: 120.08
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
DiGiT[old]
Статус: Опытный
Общий рейтинг: 107.13
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 127.64
URL: моя рассылка по Protected Mode
[Подробней >>]
 
Andrew Vext
Статус: Опытный
Общий рейтинг: 107.82
[Подробней >>]


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

Вопрос № 2265. Имеется прога которая удаляет файл: cseg segment org 100h Begin: mov ah,13h mov dx,offset File_1 int... (ответов: 5)
Вопрос № 2266. Здравствуйте эксперты. Дайте свои ICQ. Мой: 170878060. Всего доброго.... (ответов: 5)
Вопрос № 2267. Доброго времени суток!!! Может ли кто-нибудь подсказать, как работать с портами (LPT, COM, USB, ISA,... (ответов: 2)
Вопрос № 2268. Уважаемые! вопрос несколько глуповат, но не обессудьте... (ответы просьба слать сюда: brokensword@ma... (ответов: 3)
Вопрос № 2269. Есть TRW 2000,хелпа нет. Работаю по аналогии с Айсом. Меня интересует команда "найти" на S... (ответов: 2)
Вопрос № 2270. Уважаемые господа эксперты.. НЕ хочу будь назойливым , но повторяю свой вопрос - кто нибудь сталкив... (ответов: 2)
Вопрос № 2271. Здравствуйте, Traish. Я сделал все, как вы говорили (я насчет gethostbyname), но ничего кроме сообще... (ответов: 1)
Вопрос № 2272. Здравствуйте, уважаемые Эксперты. Я бы опять хотел уточнить (прошу прощения за назойливость). Вы гов... (ответов: 4)
Вопрос № 2273. Здрасти. У меня вопрос. Программе надо определить, существует ли обработчик одного из прерываний и е... (ответов: 5)
Вопрос № 2274. Вау, Traish! как ты так быстро ответил? Насчет вопроса - в eax действительно 0. Может это быть связа... (ответов: 1)

Вопросов: 10, ответов: 30


 Вопрос № 2265

Имеется прога которая удаляет файл:
cseg segment
org 100h
Begin:
mov ah,13h
mov dx,offset File_1
int 21h
int 20h
File_1 db 'd:setup.ini',0
cseg ends
end Begin
она у меня не функцианирует,покажите ошибку
и исправленную прогу отправте на мыло ПОЖАЛУЙСТА!!!!



Вопрос отправлен: 25.12.2002, 18:33
Отправитель: Mozart (radmir@newmail.ru)

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

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

Здравствуйте, Mozart!
Используй функцию 41h (вместо 13h), остальной текст
программы можно оставить без изменения.


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


Отвечает keleb-glin

Приветствую Вас, Mozart!
Ты пытаешься удалить файл 13-й ф-кцией, а это - удаление через FCB, что использовалось только в ДОС 1.0. Там надо заполнять структуру FCB, что не катит. Иак что вместо mov ah, 13h делай mov ah, 41h и всё заработает.


Ответ отправлен: 27.12.2002, 14:54
Отправитель: keleb-glin


Отвечает Traish

Здравствуйте, Mozart!
Вот тебе твоя прога.



Приложение:

Ответ отправлен: 25.12.2002, 19:07
Отправитель: Traish


Отвечает Maverick

Доброе время суток, Mozart!
У тебя не правильно написана структура FCB.
cseg segment
org 100h
Begin:
mov ah,13h
mov dx,offset File_1
int 21h
int 20h
File_1 db 0,'setup ini'
cseg ends
end Begin


Ответ отправлен: 26.12.2002, 16:47
Отправитель: Maverick


Отвечает Ayl

Добрый день, Mozart!
Элементарно. Ты пытаешься использовать функцию удаления файла с помощью FCB, но при этом его не описываешь. Тебе нужно использовать функцию 41h с теми же параметрами. Работа с файлами с помощью FCB - это анахронизм.


Ответ отправлен: 25.12.2002, 19:05
Отправитель: Ayl


 Вопрос № 2266

Здравствуйте эксперты.
Дайте свои ICQ.
Мой: 170878060.
Всего доброго.



Вопрос отправлен: 25.12.2002, 20:14
Отправитель: kuper (kuper@hotbox.ru)

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

Отвечает Maverick

Добрый день, kuper!
В информации об экспертах есть ICQ тех экспертов, которые не против этого.

Ответ отправлен: 26.12.2002, 16:49
Отправитель: Maverick


Отвечает Bob Johnson

Добрый день, kuper!
А вот у меня нет ICQ...


Ответ отправлен: 26.12.2002, 18:55
Отправитель: Bob Johnson


Отвечает baldr

Добрый день, kuper!
эксперт baldr.
ICQ: #164208732
Правда, не скоро ты меня там найдешь...


Ответ отправлен: 26.12.2002, 01:13
Отправитель: baldr


Отвечает Ayl

Доброе время суток, kuper!
Это для спама, что ли? :-)
Вот моя: 5163321

Ответ отправлен: 26.12.2002, 10:44
Отправитель: Ayl


Отвечает Gibbel

Здравствуйте, kuper!
Ну чтож, мои ICQ:
рабочая: #147426672
домашняя #141374374


Ответ отправлен: 26.12.2002, 11:21
Отправитель: Gibbel


 Вопрос № 2267

Доброго времени суток!!!
Может ли кто-нибудь подсказать, как работать с портами
(LPT, COM, USB, ISA, PCI), как передаватьпринимать данные виз них?
На ассемблере в Windows!!!
В основном меня интересует USB.
Заранее большое спасибо!!!



Вопрос отправлен: 25.12.2002, 21:51
Отправитель: Андрей

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

Отвечает Maverick

Приветствую Вас, Андрей!
Винда не даст ковырятся во всех портах, а так, теме же командами, что и в дос.


Ответ отправлен: 26.12.2002, 16:49
Отправитель: Maverick


Отвечает Sensey

Добрый день, Андрей!
По USB я уже отвечал. Зайди на www.usb.org - начни оттуда.
Там есть спецификации, так тебе как программисту надо начать изучение 9 главы - там много чего написано.
Удачи!
Лично я с USB больше полугода мучился, пока кое-как заработало...


Ответ отправлен: 26.12.2002, 11:23
Отправитель: Sensey


 Вопрос № 2268

Уважаемые!
вопрос несколько глуповат, но не обессудьте... (ответы просьба слать сюда: brokensword@mail.ru)
насколько далеко можно уйти с такой системой:
Мать: Soltek SL-75KAV (KT133A), Socket A, UATA/100, AGP 4x, Sound AC'97, ATX
Проц: Athlon XP 1700+ Socket A, 1.47GHz/266, L1=128k, exclusive L2=256k
Видео: ATI RADEON VE 64Mb SDRAM, AGP 4X
Память: 256Mb, PC133
Винт: Seagate Barracuda IV, 40Gb, 7200
т.е. можно ли на ней спокойно поиграть в мафию хотя бы в 800x600 ? а в Doom 3 ?
и вообще, во сколько раз, в процентном соотношении, данная система отличается от аналогичной, но с DDR 266 (или 333) (на чипе, скажем, VT333) по производительности ? Последний вопрос волнует больше всего (было бы очень кстати, если кто то располагает реальными цифрами и данными)
Т.е. DDR-память - это трюк и миф, или реальное увеличение
производительности в несколько раз? Стоит ли на нем экономить?
Почему то у каждого опрошенного мной человека на этот счет свое особое мнение, никаких цифр и реальных фактов я нигде не нашел (может плохо искал)



Вопрос отправлен: 25.12.2002, 22:46
Отправитель: ? (brokensword@mail.ru)

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

Отвечает Bob Johnson

Доброе время суток, ?!
Хочется сразу отметить, что Athlon + Radeon = "полный набор". Т.е. глючить может конкретно (это уж как повезет и руки какие).
Процессор: по тестам очень непонятно реальное положение атлона относительно п4. По последним тестам с ixbt athlon 2.8 где-то лучше, а где-то хуже, чем п4 2.8. У меня сейчас п4 2400 -> 2750 и вот Unreal Tournament 2003 работает не всегда так, как хотелось бы (и вообще, многие современные игры стали прежде всего критичны к процессору, а не к видеокарте - слишком много всего хотят рассчитать в реальном времени). Так что уже если выбрал атлон, то бери хотя бы 2000 (1666).
Видио: radeon ve староват все-таки. Сейчас ведь есть 9000, 9500. Или можно попробовать Ge Force 4 - если есть возможность - то ti, иначе - MX.
Винт: на 40 в наше время маловат, хотя seagate вроде ничего. Советую взять на 80 и чтобы тоже 7200 - это будет на $15 дороже.
Память: много раз и много где я читал, что DDR дает прирост всего-лишь на 25% по отношению к SDR. И вот, например, в видеокартах Ge Force 2 так и было - карты MX (SDR) давали FillRate около 500, в то время как GTS (DDR) - 600-700. А вот в компьютерах оказалось не так. В свое время (давно) я написал прогу, которая тестировала скорость линейного чтения из памяти различной длины (1К, 2К ... 16М). Прога работала на 0-м кольце (под 9х) и вроде как должна была давать реальные результаты (написал на асме - oh, yeah!!!). У меня был п3 (точнее - селерон) 800 -> 1120 (шина 140, т.е. память на ней же) и моя прога показывала скорость чтения из памяти (при мин. задержках всего в BIOS) около 700 мб/сек.
И вот теперь на п4 с DDR я запустил свою прогу и она показала около 2000 мб/сек. (шина памяти - 153 МГц). Это конечно, только линейное чтение, но факт есть факт. Так что советую брать DDR.
Если тебе нужны конкретные числа - иди на www.ixbt.com - там очень много тестов, но за достоверность дать гарантии сложно.


Ответ отправлен: 27.12.2002, 18:33
Отправитель: Bob Johnson


Отвечает LIFO

Доброе время суток, ?!
В Mafia - спокойно, а вот Doom 3 глючить будет, там как минимум проц на 2 гига надо.

Ответ отправлен: 28.12.2002, 11:53
Отправитель: LIFO


Отвечает Sensey

Доброе время суток, ?Меч?!
А ты че, в железо не мог послать?
Рассказываю.
В Мафию не играл, по поводу Дума(альфа-версия):
На такой же машине, но с GeForce Ti4200 имел 7-14 фпс с 1024х768, если много монстров - 4 фпс
Если сам, в ограниченном пространстве - до 20 фпс.
Для Дума надо примерно Ati Radeon 8500 и старше, проц 2 Гига.
Сам же знаешь - хочется играть - купи видуху за 150-200 баксов.
Дождись выхода релиза - поможет- разработчики обещают ускорить.
2) Лично сравнивал DDR и DIMM на разных машинах. На машинах с процом 800-1000Мгц прирост процентор 5-7. На твоей будет процентов 15, даже может 20 - SDRAM на этом машине - узкое горло. Но! DDR стоит 75$ за 256 метров, а DIMM - 26$.
Есть ли смысл платить больше? Нет. Пока DDR не будет стоить в 1.5-1.7 раза больше, а не в 3.

Ответ отправлен: 26.12.2002, 11:34
Отправитель: Sensey


 Вопрос № 2269

Есть TRW 2000,хелпа нет.
Работаю по аналогии с Айсом.
Меня интересует команда "найти" на Softice что-то типа
s 0 1 ffffffff "1100223344" пробую на TRW, команду принимает т.е
не говорит error comand , но и не ищет.
Если кто с хелпом сидит, пусть не стесняется,шлет,благодарю заранее.




Вопрос отправлен: 25.12.2002, 23:52
Отправитель: Oleg

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

Отвечает Bob Johnson

Здравствуйте, Oleg!
Help'a к сожалению у меня нет, но сразу могу сказать, что выслать его по неуказанному адресу трудновато...


Ответ отправлен: 27.12.2002, 18:33
Отправитель: Bob Johnson


Отвечает Maverick

Приветствую Вас, Oleg!
Есть старенький хелпак на русском, если надо, то мыль.


Ответ отправлен: 26.12.2002, 16:49
Отправитель: Maverick


 Вопрос № 2270

Уважаемые господа эксперты.. НЕ хочу будь назойливым , но повторяю свой вопрос - кто нибудь сталкивался с проблемой реализации на асме элементарного пинга удаленного компьютера?
Если да, то поделитесь пожалуйста опытом..
Заранее спасибо..



Вопрос отправлен: 26.12.2002, 09:20
Отправитель: Plex

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

Отвечает Bob Johnson

Приветствую Вас, Plex!
Тебе, вероятно, не ответили...
Если тебе нужен полный настоящий пинг, ты должен что-то послать в порт 7 - этот порт закреплен за стандантным (RFC 1060) сервисом "эхо". Порт UDP. Что именно посылать - не знаю, может быть все, что хочешь... Тебе должен будет прийти ответ. Куда - тоже точно не знаю. Как посылать - см. MSDN и примеры работы с сокетами.


Ответ отправлен: 27.12.2002, 18:34
Отправитель: Bob Johnson


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

Здравствуйте, Plex!
Под какую ОС№ если под винды, то просто WSA функции. Что сложного№ Не понимаю, если ты собираешься на асме писать такие проги, то хоть представляй как их хотя бы на сях писать.
ЗЫ. Извиняюсь если что, но такая грубая истина. Сначала определись нафига те нужен асм, а потом качай доки и изучай и не задавай глупых вопросов.

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


 Вопрос № 2271

Здравствуйте, Traish.
Я сделал все, как вы говорили (я насчет gethostbyname), но ничего кроме сообщения "программа выполнила недопустимую..." не получил. В чем может быть проблема?



Вопрос отправлен: 26.12.2002, 13:19
Отправитель: Leonid

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

Отвечает Traish

Добрый день, Leonid!
Без исходника я ничего не могу сказать точно. Проверь свой wsock32 и вообще все файлы, которые включаешь; может ошибка где-нибудь в другом месте, да много тут еще чего может быть. А может, ты не проверяешь eax на 0? Короче, засылай исходник.


Ответ отправлен: 26.12.2002, 13:45
Отправитель: Traish


 Вопрос № 2272

Здравствуйте, уважаемые Эксперты.
Я бы опять хотел уточнить (прошу прощения за назойливость). Вы говорите, что для того чтобы использовать средства отладки, предоставляемые процом, нужно патчить IDT, т.е отладчики типа SoftIce делают это? Но ведь для этого нужен нулевой уровень привилегий (под НТ). Как же решается эта проблема?



Вопрос отправлен: 26.12.2002, 13:17
Отправитель: Leonid

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

Отвечает Broken Sword

Приветствую Вас, Leonid!
SoftICE при установке брейкпоинтов типа BPINT модифицирует IDT, а как он это делает? Ну так очень просто, он и имеет этот самый 0 уровень привилегий, загружается еще до ядра (а как по твоему дрова в NT работают)?

Ответ отправлен: 26.12.2002, 15:09
Отправитель: Broken Sword


Отвечает Andrew Vext

Здравствуйте, Leonid!
Создается драйвер (а драйвера выполняются в ядре с нулевым уровнем привилегий), который и выполняет эту работу.

Ответ отправлен: 26.12.2002, 13:50
Отправитель: Andrew Vext


Отвечает Traish

Здравствуйте, Leonid!
Да, для изменения IDT в NT (в отличии от Win9x) нужен 0 уровень привилегий. А проблема решается с помощью драйвера, или ты думал, что в NT нельзя работать в Ring 0? Тогда чем по-твоему отличается SoftIce под Win9x и под NT?

Ответ отправлен: 26.12.2002, 16:21
Отправитель: Traish


Отвечает LIFO

Приветствую Вас, Leonid!
А софт работает под нулевым уровнем.

Ответ отправлен: 28.12.2002, 12:23
Отправитель: LIFO


 Вопрос № 2273

Здрасти. У меня вопрос.
Программе надо определить, существует ли обработчик одного из прерываний и если нет, то поставить свой. Допустим, прерывание 99h. Для этого она вызывает прерывание 99h командой int 99h. А так как таковского обработчика заведомо нет, она выдает ошибку. Вопрос: как обойти эту ошибку? jc не работает.



Вопрос отправлен: 26.12.2002, 14:09
Отправитель: Faraon (faraon@hotmail.ru)

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

Отвечает Broken Sword

Приветствую Вас, Faraon!
мда. если это институтское задание, то прикол в другом. Нужно написать такую прогу, которая перехватывает int 99h, причем на свой обработчик, но также в условие входит то, чтобы она не перехватывала его дважды.
Именно так и есть. Тебе нужно перед перехватом проверить нет ли уже ТВОЕГО обработчика в памяти, а сделать это можно как угодно - хоть в регистре возвращать какое то значение, хоть как угодно, ВСЕ ЗАВИСИТ ОТ ТВОЕГО ОБРАБОТЧИКА int 99h. Понимаешь?
А так просто взять и посмотреть, есть ли обработчик или нет - невозможно, потому что что-то же да находится в таблице векторов по вектору 99h, т.е. по адресу, который содержит этот вектор начинается какой-нибудь код, а определить полезный он или нет - невозможно.

Ответ отправлен: 26.12.2002, 15:09
Отправитель: Broken Sword


Отвечает Ayl

Приветствую Вас, Faraon!
Нет, боюсь, что ничего не получится. Если обработчика прерывания нет, то после его вызова программа вообще может больше не получить управления. А что еще будет разрушено - вообще неизвестно. В принципе, это тоже самое, что запустить на выполнение текстовый файл - результат не предсказуем. Поэтому ты либо вызывай прерывания, которые заведомо присутствуют в системе, либо меняй алгоритм.
Что ты вообще пытаешься реализовать?
И какую ошибку выдает? И кто именно?

Ответ отправлен: 26.12.2002, 14:28
Отправитель: Ayl


Отвечает Gibbel

Доброе время суток, Faraon!
Я тебе уже объяснял, но повторюсь...
Проверяешь, куда указывает вектор прерывания 99h.
После сброса он указывает на 0000:0000. Если кто-либо перехватывает это прерывание, то он, соответственно, меняется... Далее, можешь еще проверить, кто перехватил прерывание, выяснив, в адресное пространство какой программы указывает этот вектор.

Ответ отправлен: 26.12.2002, 15:13
Отправитель: Gibbel


Отвечает Bob Johnson

Доброе время суток, Faraon!
Ты можешь напрямую посмотреть вектор прерывания для 99h - если там 0 (у меня так, например), значит обработчика нет...


Ответ отправлен: 27.12.2002, 18:34
Отправитель: Bob Johnson


Отвечает Maverick

Здравствуйте, Faraon!
Ну естественно его там нет.
Ты поставь туда свой обработчик, который и будет проверять наличие проги в памяти.


Ответ отправлен: 26.12.2002, 16:49
Отправитель: Maverick


 Вопрос № 2274

Вау, Traish!
как ты так быстро ответил?
Насчет вопроса - в eax действительно 0. Может это быть связано с тем, что я не в он-лайне?



Вопрос отправлен: 26.12.2002, 14:32
Отправитель: Leonid

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

Отвечает Traish

Доброе время суток, Leonid!
Так а ты, что не в он-лайне?! И ожидаешь еще чего-то, кроме ошибки? Преобразование-то кто делать будет? Пушкин? Не твой ведь комп его выполняет. И вообще, что за странный вопрос - проще самому проверить. Только не говори, что у тебя доступа к инету нет - вопрос этот ведь ты как-то отправил.
ЗЫ К тому же можно использовать WSAGetLastError.


Ответ отправлен: 26.12.2002, 16:16
Отправитель: Traish



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (40)
C / C++ (29)
Perl (5)
Delphi (22)
Pascal (23)
Basic / VBA (11)
Java / JavaScript (7)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (27)
"Железо" (30)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (14)
Юристу
Гражданское право (6)
Семейное право (3)
Трудовое право (4)
КоАП (2)

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




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

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


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

В избранное