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

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


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

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

Выпуск № 379
от 30.09.2002, 11:20

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


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

igorash
Статус: Профессиональный
Общий рейтинг: 119.81
[Подробней >>]
Bob Johnson
Статус: Опытный
Общий рейтинг: 144.82
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 116.49
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 133.67
URL: моя рассылка по Protected Mode
[Подробней >>]
LIFO
Статус: Опытный
Общий рейтинг: 133.42
Телефон: 8 01710 24758
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 156.68
[Подробней >>]
 
DiGiT[old]
Статус: Доверительный
Общий рейтинг: 111.2
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 131.36
URL: Моя страничка
[Подробней >>]
Kiss
Статус: Опытный
Общий рейтинг: 134.09
[Подробней >>]
 
Александр
Статус: Профессиональный
Общий рейтинг: 112.79
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 114.9
URL: Beeblebrox / TMA HomePage
[Подробней >>]
ASMодей
Статус: Опытный
Общий рейтинг: 123.35
[Подробней >>]
 
GL
Статус: Опытный
Общий рейтинг: 105.12
[Подробней >>]


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

Вопрос № 1334. Все эксперты извиняйте за спам, иначе никак Некий Сергей, который просил описалово портов для АТ. Пр... (ответов: 1)
Вопрос № 1336. Ув. эксперты. У меня не работает процедура смены положения курсора, может функция нета или есть друг... (ответов: 4)
Вопрос № 1337. Это так сказать небольшое дополнение на Вопрос № 1242 MB_RIGHT в Win 95 и 98 прекрасно работает, вот... (ответов: 2)
Вопрос № 1339. Ув. эксперты. Есть маленькая проблемка. Я пишу на асме библиотеку к Дельфи, причем код рабочий. Но п... (ответов: 4)
Вопрос № 1340. Доброе время суток! У меня тут вопрос... думаю это лучше задать именно вам, можно например расшифро... (ответов: 7)
Вопрос № 1341. Здравствуйте все! НаписАл я небольшую, буквально вовсе мелкую программку на асме, испоьзуя ещё не ус... (ответов: 4)
Вопрос № 1342. Привет, как сделать на WinXP что бы фолдер (любой) показывался в стандартных Open и save диалогах ка... (ответов: 2)
Вопрос № 1344. Хех, в кои-то веки решил и я поработать в роли массовика-затейника. Эта задачка относится к криптоан... (ответов: 2)

Вопросов: 8, ответов: 26


 Вопрос № 1334

Все эксперты извиняйте за спам, иначе никак
Некий Сергей, который просил описалово портов для АТ. Пришли мне письмо и я пришлю доку с ответом (ты походу дела неправильный адрес мне дал)



Вопрос отправлен: 25.09.2002, 01:42
Отправитель: Biv

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

Отвечает igorash

Доброе время суток, Biv!
это чтобы этот некий Сергей увидел этот вопрос в рассылке


Ответ отправлен: 25.09.2002, 01:52
Отправитель: igorash


 Вопрос № 1336

Ув. эксперты.
У меня не работает процедура смены положения курсора, может функция нета или есть другие способы(только биосовские или с I/O, а то разные типа int 21h не будут работать в NT).Помогите очень важный вопрос.


Приложение:


Вопрос отправлен: 25.09.2002, 07:43
Отправитель: SonicX (asm86@mail.ru)

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

Отвечает Bob Johnson

Здравствуйте, SonicX!
...у меня эта функция прекрасно работает... У меня win98, работает как в оконном режиме, так и в полноэкранном.


Приложение:

Ответ отправлен: 25.09.2002, 21:32
Отправитель: Bob Johnson


Отвечает baldr

Доброе время суток, SonicX!
Под NT?? Очень вряд ли у тебя это получится. В любом случае попробуй поменять номер видеоокна. Возможно, NT просто меняет его адрес.

Ответ отправлен: 25.09.2002, 15:18
Отправитель: baldr


Отвечает Broken Sword

Здравствуйте, SonicX!
Все то, и у меня почему то работает! Попробуй видеостраницу поменяй что ли...
А вообще способов не так уж и много, более того, данный способ вообще единственный мне известный (по прерываниям).
p.s. в курсе, что в оперативе по адресу 0040h:0050h лежит 8 слов, младший байт которой - номер столбца, старший - номер строки для каждой из 8 страниц. Т.ч. можешь их там менять, курсор реально переместится, но сам мигающий "штрих" останется на месте мигать...
других способов нет... ну можно еще выводить спецсимволы 09h ф-цией 21h прерывания (0Dh, 0Ah и т.п.)
см. приложение

Приложение:

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


Отвечает LIFO

Доброе время суток, SonicX!
nt тебе не даст сделать через порты или биос

Ответ отправлен: 25.09.2002, 16:13
Отправитель: LIFO


 Вопрос № 1337

Это так сказать небольшое дополнение на Вопрос № 1242
MB_RIGHT в Win 95 и 98 прекрасно работает, вот только...
(это кусок из письма к Вал.Ик.)
---------
Прикольно. Прикольно. Разрешил я эту задачку про MB_RIGHT, а было все
элементарно и прикольно. Да и решилась она, как всегда чисто случайно.
А написал я такую программу
push 00080000
push offset m_text
push offset m_caption
push 0
call MessageBoxA
и она ЗАРАБОТАЛА!!!! Буковку h писать не надо было. По всей видимости
и программеры в мелкософте забыли это когда писали Windows.
-----------
После этого Вал.Ик. обещал в следующей статье опубликовать, но затем
пропал неизвестно куда. Вот так вот господа. Не забывайте об h.
Свободу ПО!
С уважением Fess [PTDS] URL: vallkor.chat.ru



Вопрос отправлен: 25.09.2002, 15:26
Отправитель: Fess (lomovskih@yandex.ru)

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

Отвечает Bob Johnson

Добрый день, Fess!
Не работает она все равно! У меня win98 и никакого right-alinged text не выводится... (попробуй двухстрочный текст).
Просто 80000 при переводе в 16-ричную систему содержит 80h, что, скорее всего, означает пустую картинку... Вот и кажется, что текст немного передвинулся вправо.
Я перебрал все константы для MessageBox и не одна из них не позволяет на вин98 делать right-aligned text...


Ответ отправлен: 25.09.2002, 21:32
Отправитель: Bob Johnson


Отвечает masquer

Добрый день, Fess!
Все работает. Но судя по всему в вин2к этот баг был уже пофиксен. Вообще прикольная фишка - я был не в курсе :)

Ответ отправлен: 25.09.2002, 18:29
Отправитель: masquer


 Вопрос № 1339

Ув. эксперты.
Есть маленькая проблемка.
Я пишу на асме библиотеку к Дельфи, причем код рабочий.
Но проблема в том, что код обращается к 10h прерыванию.
Дельфи выдает ошибку о отказе в доступе!!!
Что делать???
Буду рад любой помощи.
PS Кому будет интересно написать библиотеку CRT для Дельфи
напишите письмо.


Приложение:


Вопрос отправлен: 25.09.2002, 17:15
Отправитель: SonicX (asm86@mail.ru)

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

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

Здравствуйте, SonicX!
Так какой смысл вызывать 10е биосовское прерывание под винды. Это глупо, и разумеется к нему нет доступа. Может это какие нить другие системные прервания. Для этого есть ВИНАПИ

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


Отвечает Bob Johnson

Добрый день, SonicX!
Вот это круто, чувак!!!!!!! Если я тебя правильно понял, то ты пытаешься в вин32 приложении использовать int 10h. В вин32 прерывания используются для обработки особых случаев, работы с устройствами и для вызова сервисов ядра. Все это используется в полной мере только драйверами и вирусами типа Win95CIH. Тебе же (раз ты пишешь CRT для дельфи) нужна функция SetConsoleCursorPosition - т.к. в вин32 все программы, которые работают с текстовым экраном называются консольными, а сам экран - консолью. Посмотри в MSDN эту функцию, затем найди внизу ссылку "Console Functions", нажми на нее и получишь полный список функций для работы с консолью...


Ответ отправлен: 25.09.2002, 21:32
Отправитель: Bob Johnson


Отвечает masquer

Доброе время суток, SonicX!
Естественно и логично - зачем это при программировании под винду (не важно на чем).
Используй ТурбоПаскаль, а если тебе просто для консольных приложений нужно, то прерывания тебе тем более не нужны.

Ответ отправлен: 25.09.2002, 17:47
Отправитель: masquer


Отвечает Pablo

Здравствуйте, SonicX!
А как ты умудряешься в 32-битном приложении вызывать 16-битные сервисы?! Для того чтобы пользоваться видео сервисом тебе нужно исполдьзовать WinAPIшные функции Виндов. В хелпе Дельф смотри по топикам 'Device Context Functions', 'Bitmap Functions', 'Font and Text Functions', 'Image Color Matching Functions', 'Metafile Functions', и 'Painting and Drawing Functions'.

Ответ отправлен: 25.09.2002, 21:02
Отправитель: Pablo


 Вопрос № 1340

Доброе время суток!
У меня тут вопрос... думаю это лучше задать именно вам,
можно например расшифровать данные, если не знаешь как они шифровались?
вот например после моих трудов "2*C(F-4P[)EQ.#913"@P8&*" - это "Hello all!", а латинская буква "H" это "&(3)@8&*"



Вопрос отправлен: 25.09.2002, 18:28
Отправитель: Ландграф Павел

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

Отвечает Kiss

Здравствуйте, Ландграф Павел!
Можно! Ты почитай книжку по криптографии и пойме что по суте не разгадываемых шифров нет только много времени уходит на их дешифрацию.


Ответ отправлен: 26.09.2002, 09:48
Отправитель: Kiss


Отвечает Александр

Добрый день, Ландграф Павел!
Большинство современных шифров обладают двумя свойствами.
1. Их невозможно расшифровать не зная алгоритм.
2. Зная алгоритм, но не зная ключа не существует более эффективных способов расшифровки, чем простой перебор ключей.
Если бы ты хотя бы сообщил, что это за программа, то можно было бы её поломать, а так я могу просто работать как генератор возможных ответов. Хотя по тому, что из одного символа было получено целых восемь, то это возможно DES. Хотя это не объясняет как из 10 символов было получено 23, вместо максимум 17-ти. Тогда возможно, что это что-то типа RSA. Гадать можно долго, при этом хвастаясь своей эрудицией, но дело от этого не продвинется ни на шаг.


Ответ отправлен: 28.09.2002, 13:56
Отправитель: Александр


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

Доброе время суток, Ландграф Павел!
Основной смысл в угадывании метода шифрования, а больше это уже не факт что будет работать

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


Отвечает Bob Johnson

Добрый день, Ландграф Павел!
Знаешь, это все равно что искать черную кошку в темной комнате.
Хотя такое возможно, если ты знаешь много способов шифрования и сможешь угадать, каким именно данные были зашифрованы.
Или ты знаешь, (хоть примерно), что данные должны из себя представлять.


Ответ отправлен: 25.09.2002, 21:32
Отправитель: Bob Johnson


Отвечает Beeblebrox

Доброе время суток, Ландграф Павел!
А ты сам сможешь их расшифровать?
Как у тебя одной букве соответствует восемь?
Если известен характер исходных (нешифрованных) данных, например, известно, что это был текст, и объем данных достаточно большой, то расшифровать можно.

Ответ отправлен: 25.09.2002, 18:38
Отправитель: Beeblebrox


Отвечает baldr

Добрый день, Ландграф Павел!
Это ты не RSA какой-нибудь нам подсунул?
В современных шифровальных алгоритмах, даже зная для каждой буквы алфавита как она будет зашифрована, это тебе не поможет. Почти все они (алгоритмы) будут криптостойки еще лет пять... Так что либо выясни конкретно чем оно шифровалось, либо брось это. Вряд ли кто-то будет с этим возиться.

Ответ отправлен: 25.09.2002, 18:38
Отправитель: baldr


Отвечает masquer

Доброе время суток, Ландграф Павел!
Если не знаешь - то НИКАК. Понятно, что посмотрев на данные, можно приблизительно оценить - что это, например пакованные данные, кодировку кои-8 и т.д.

Ответ отправлен: 25.09.2002, 18:42
Отправитель: masquer


 Вопрос № 1341

Здравствуйте все!
НаписАл я небольшую, буквально вовсе мелкую программку на асме, испоьзуя ещё не успевшие завять познания асма z80 и подглядывая в чужие проги на предмет значения команд, ну получилась простецкая менюшка - не столько с практической целью, сколько так - для эксперимента... Но тут же уткнулся в нечто неизведанное - отсюда и некая кучка вопросов:
Как можно сделать следующее наиболее просто, надёжно и правильно(естественно программно)?
1)Запустить какую-нить другую прогу из моей (т.е. выбираю пункт менюшки, в котором написано "Start Dos Navigator" и запускается C:DNDN.com или что пропишу ;))?
2)Устроить полную перезагрузку компа?
3)Скопировать каталог целиком, т.е. вместе со всеми подкаталогами и файлами что там есть?
4)Создать/удалить каталог?
Буду весьма признателен за примеры этих процедур (можно прямо на мыло - чтоб рассылку не раздувать), а так же за хорошо и доходчиво (для практически сАмого начального уровня) "разжёванные" ответы.
Скажу сразу - все это под дос.
Заранее благодарен!



Вопрос отправлен: 26.09.2002, 00:47
Отправитель: T!M0N (timon_hard@online.sinor.ru)

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

Отвечает masquer

Здравствуйте, T!M0N!
Все это в TechHelp-е есть и в предыдущих выпусках рассылки.

Ответ отправлен: 26.09.2002, 10:16
Отправитель: masquer


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

Доброе время суток, T!M0N!
Это все сервис опериционной системы. Ты не написал конкретно под какую. Если под Дос то прерывания, если винды, то ВИНАПИ, юних системные вызовы. Причем здесь асм.

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


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

Доброе время суток, T!M0N!
1. Запустить другую программу из своей можно с помощью
функции 4Bh прерывания INT 21h.
2. Найди в рассылке №375 от 26.09.2002 ответ Broken Sword
на вопрос 1300. Там все подробно расписано.
3. Копировать файлы и каталоги самому нелегко. Проще вызвать
программу COPY (как это и делается в DOS) и передать ей
необходимые параметры. Как это сделать см. п.1.
4. Создать каталог - функция 39h, удалить каталог - функция
3Ah.
PS. Описание приведенных функций можно найти хоть в TechHelp,
хоть в Interrupt List.


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


Отвечает Bob Johnson

Добрый день, T!M0N!
1. Функция 4Bh int 21h
2. :
.386
push 0F000h
push 0FFF0h
retf
3. Только своей рекурсивной прогой (т.е. поиск файла "*.*" с помощью функций 4Eh и 4Fh int 21h, затем его копирования) или с помощью внешней утилитки, которая может копировать подкаталоги (например, xcopy или xcopy32). Такую утилиту ты должен запускать сам из программы с необходимыми параметрами.
4. Функции 39h int 21h (создать каталог) и 3Ah int 21h (удалить каталог).
За параметрами вызова функций смотри в справочник по функциям DOS или (как я думаю) в Ralf Braun's Interrupt List.
Поясню отдельно процесс запуска файла.
Вначале, когда запускается твоя программа, ДОС выделяет ей всю свободную память. Таким образом, ничего ты запустить не сможешь, пока не урежишь основной блок памяти (функция 4Ah int 21h). Свободной памяти должно хватить для работы запускаемой программы, иначе получишь что-то типа out of memory. Функцию вызывай так:
mov ax,4B00h
mov dx,offset ChName
mov bx,offset ParBlk
int 21h
ParBlk dw 0 ; Environment segment - none
dd offset CmdTail ; Tail of command
dd offset FCB1
dd offset FCB2
ChName db 'c:command.com'
CmdTail db 0, 0Dh
FCB1 db 37 dup (0)
FCB2 db 37 dup (0)
Кстати, запустив из своей программы command.com, ты получишь "DOS Shell".


Ответ отправлен: 27.09.2002, 13:17
Отправитель: Bob Johnson


 Вопрос № 1342

Привет,
как сделать на WinXP что бы фолдер (любой) показывался в стандартных Open и save диалогах как кнопка, вместе с My Computer, desktop и т.п.



Вопрос отправлен: 26.09.2002, 01:49
Отправитель: ramz

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

Отвечает masquer

Здравствуйте, ramz!
Чтоб прям вот так - не знаю, реест ковырять нужно, но есть альтернативные варианты, когда появляется дополнительная кнопка, нажав на которую, выскочит список каталогов - выбрал и вперед. DocCommander, кажется.
Ну и вопросы по ассемблеру...

Ответ отправлен: 26.09.2002, 10:21
Отправитель: masquer


Отвечает GL

Доброе время суток, ramz!
А при чём тут ассемблер?
gpedit.msc > Конфигурация пользователя > Административные шаблоны > Компоненты Windows > Проводник > Общее диалоговое окно открытия файлов > Элементы, отображаемые в панели мест (раскрой этот апплет и вводи нужные тебе каталоги и не забудь прочитать в описании как это делать).

Ответ отправлен: 26.09.2002, 14:23
Отправитель: GL


 Вопрос № 1344

Хех, в кои-то веки решил и я поработать в роли массовика-затейника.
Эта задачка относится к криптоанализу, но за этим страшным словом ничего страшного в данном случае нет.
Итак задача - дан текст, который нужно расшифровать.
Две подсказки - текст на русском языке и не в кодировке КОИ-8
Ссылка - text.zip
Да, еще - чтобы не засорять рассылку и не возникало желания у экспертов нажать на ссылку "Подробнее" все варанты присылайте мне на мыло.
З.Ы. Текст был взят с какого-то сайта (сейчас не упомню). У меня все это вместе с написанием программы (на асме, ес-но) заняло около часа.



Вопрос отправлен: 26.09.2002, 11:16
Отправитель: masquer (masquer@pochta.ws)

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

Отвечает Kiss

Доброе время суток, masquer!
Спасибо тебе конечно, но архив качнуть я не могу потому что ссылка не срабатывает вот. Пришли мне его лично пожалуйста если тебя это не затруднит. Thank you!


Ответ отправлен: 26.09.2002, 16:40
Отправитель: Kiss


Отвечает baldr

Здравствуйте, masquer!
Ссылка у тебя неправильно отображалась. Вот такая должна быть:
http://lvbnhbq.fromru.com/text.zip

Ответ отправлен: 26.09.2002, 16:51
Отправитель: baldr



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

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

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




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

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


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

В избранное