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

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


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

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

Выпуск № 724
от 15.05.2004, 16:30

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


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

Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 133.47
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Pawel
Статус: Профессиональный
Общий рейтинг: 154.45
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 118.43
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 111.7
[Подробней >>]
VOVAN
Статус: Опытный
Общий рейтинг: 105.37
[Подробней >>]
Foamplast
Статус: Профессиональный
Общий рейтинг: 150.11
URL: мой личный сайт
[Подробней >>]
 
Acid Burn
Статус: Доверительный
Общий рейтинг: 126
[Подробней >>]
Dragoon
Статус: Начальный
Общий рейтинг: 108.77
[Подробней >>]
Стас
Статус: Начальный
Общий рейтинг: 123.07
[Подробней >>]
 
Artemy
Статус: Опытный
Общий рейтинг: 112
Телефон: 8 905 549 38 66
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.57
[Подробней >>]


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

Вопрос № 5254. ЗДРАВСТВЙТЕ! Хотел бы поинтересоваться в каком редекторе нужно писать программу на ассемблере(есть M... (ответов: 7)
Вопрос № 5255. Доброго времени суток, уважаемые эксперты! У меня возникла следующая проблема. Я хочу написать резид... (ответов: 9)
Вопрос № 5256. Здравствуйте. Подскажите пожалуйста можно ли сделать так чтоб функция 7141h прерывания 21h для удале... (ответов: 3)
Вопрос № 5258. Всем привет! народ помогите лабу написать: Посортирывать символы в пердложении по спаданию независим... (ответов: 5)
Вопрос № 5259. Спасибо за ответ №5232 Foamplast и Pawel. Pawel спасибо за помощь куда можно писать? ... (ответов: 1)

Вопросов: 5, ответов: 25


 Вопрос № 5254

ЗДРАВСТВЙТЕ!
Хотел бы поинтересоваться в каком редекторе нужно писать программу на ассемблере(есть MS Office XP),и как её записать в MASM611 чтобы прокампилировать.Установлена ОС WinXP и MASM611.Заранее благодарю.



Вопрос отправлен: 10.05.2004, 20:34
Отправитель: АЛЕКСАНДР (shurik@pbox.infotecstt.ru)

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

Отвечает Евгений Иванов

Доброе время суток, АЛЕКСАНДР!
Только в Office, а как же!!
И потом мышой перетащить на Masm, больше никак.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 10.05.2004, 23:50
Отправитель: Евгений Иванов


Отвечает Pawel

Доброе время суток, АЛЕКСАНДР!
Хоть в блокноте!!!
Но вообщето существует masm32, с уже встроенным редактором.

Ответ отправлен: 10.05.2004, 21:43
Отправитель: Pawel


Отвечает _vt

Добрый день, АЛЕКСАНДР!
Для изучения ассемблера в первую очередь необходимо иметь навыки работы с командной строкой. Если их нет - ничего не выйдет. Ты можешь найти какую-либо визуальную среду разработки под ассемблер, но необходимо понять более глубокие принципы. Итак, тебе нужен для начала текстовый редактор Блокнот ™ , в котором необходимо набивать программу и командная строка, в которой надо запускать ML.EXE с параметрами компиляции. Все подробно описано в книге Олега Калашникова - скачай ее с kalashnikoff.ru. Если возникнут вопросы - обращайся.
E-Man : Life begins at 1000Mhz!


Ответ отправлен: 11.05.2004, 04:11
Отправитель: _vt


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

Приветствую Вас, АЛЕКСАНДР!
Писать программу можно в любом редакторе, главное соблюдать правильную
кодировку, а то вместо русских букв получатся каракули.
Записывать программу в MASM611 не надо, он ее сам прочитает, ему нужно
только указать где она лежит. Пиши ml.exe, потом через пробел полный путь
к файлу с текстом программы и, если это *.com-программа, то через пробел
укажи ключ /AT (большими буквами). Если в программе не было ошибок, получишь
исполняемый файл.


Ответ отправлен: 11.05.2004, 15:39
Отправитель: ASMодей


Отвечает VOVAN

Здравствуйте, АЛЕКСАНДР!
набирать можно в блокноте, сохранять с расширением .asm, как компилировать написано в рассылке Калашникова.

Ответ отправлен: 11.05.2004, 17:18
Отправитель: VOVAN


Отвечает Foamplast

Приветствую Вас, АЛЕКСАНДР!
В любом, сохраняющем простой текст. Наример, если Вы мазохист, то можно в блокноте. Я предпочитаю Aditor. Его можно найти и бесплатно скачать.


Ответ отправлен: 11.05.2004, 22:09
Отправитель: Foamplast


Отвечает Acid Burn

Приветствую Вас, АЛЕКСАНДР!
Блокнот - все что тебе нужно... Сохраняй только с расширением *.asm!

Ответ отправлен: 11.05.2004, 23:01
Отправитель: Acid Burn


 Вопрос № 5255

Доброго времени суток, уважаемые эксперты!
У меня возникла следующая проблема. Я хочу написать резидентную программу под DOS, которая бы вела логи всех нажатых на клавиатуре клавиш (такой вот клавиатурный шпион :) ). Вот только не знаю какое прерывание (и какую функцию этого прерывания) стоит перехватывать, чтоб наверняка знать обо всех нажатых пользователем клавишах (поскольку функций и прерываний считывающих данные с клавиатуры много, например 10h , 21h и 16h). Может при кажущемся многообразии функций прерываний, работающих с клавиатурой есть какая то базовая, к которой ссылаются все остальные (своеобразная иерархия прерываний), если да, то что это за основное прерываение?
Собственно это и есть мой вопрос.
Заранее спасибо за ответы.



Вопрос отправлен: 10.05.2004, 21:51
Отправитель: Тагир

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

Отвечает Евгений Иванов

Добрый день, Тагир!
Первое аппаратное.
9-ое программное.
;)

* EMan: -=- Любовь существует! =-=


Ответ отправлен: 10.05.2004, 23:51
Отправитель: Евгений Иванов


Отвечает Dragoon

Здравствуйте, Тагир!
Прерывание 09h вызывается каждый раз, когда нажимается
любая клавиша.


Ответ отправлен: 13.05.2004, 22:04
Отправитель: Dragoon


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

Добрый день, Тагир!
Есть такое прерывание. INT 09 называется. Аппаратное прерывание от клавиатуры.
Приходит всякий раз, когда нажимаешь или отпускаешь клавишу. В обработчике
этого прерывания из порта 60h считываешь скан-код клавиши, расшифровываешь
ее и делаешь то, что нужно. И не забудь в обработчике в конце поставить
следующие строки (особенности аппаратных прерываний):
;разрешить работу клавиатуры
in al,61h
or al,80h
out 61h,al
;послать EOI контроллеру прерываний
mov al,20h
out 20h,al


Ответ отправлен: 11.05.2004, 15:41
Отправитель: ASMодей


Отвечает Стас

Приветствую Вас, Тагир!
Через Int9 и чтение буффера клавиатуры надежнее всего. 100% гарантия.
А легче всего через Int16. Проще реализуется. Скорее всего весь клавиатурный ввод (в т.ч. Int21) проходит и через него тоже.
Но гарантировать не могу.

Ответ отправлен: 11.05.2004, 00:16
Отправитель: Стас


Отвечает Artemy

Здравствуйте, Тагир!
int 09h


Ответ отправлен: 11.05.2004, 16:14
Отправитель: Artemy


Отвечает VOVAN

Доброе время суток, Тагир!
перехватывай int 9h, ставь сой обработчик, не промахнёшься.

Ответ отправлен: 11.05.2004, 17:22
Отправитель: VOVAN


Отвечает Ayl

Приветствую Вас, Тагир!
Любая нажатая (и отпущенная!) клавиша выдает прерывание 9 для процессора. После чего обработчик этого прерывания преобразует код этой клавиши (т.н. скен-код) в ASCII-код либо в расширенный код (для функциональных и т.п. клавиш). Так что ты можешь перехватить 9-е прерывание, прочитать значение из порта 60h и записать его. После чего вызвать старый обработчик прерывания. Единственный минус - это то, что ты получишь скен-коды клавиш. Зато точно не пропустишь ничего. А для преобразования можешь написать отдельную программку, которая будет преобразовывать эти скен-коды в последовательность нажатых клавиш. Хоть в графике! :-)


Ответ отправлен: 11.05.2004, 17:56
Отправитель: Ayl


Отвечает Foamplast

Здравствуйте, Тагир!

Вы аболютно правы. Приведённые Вами прерывания всего лишь интерфейсы к DOS или BIOS. Прерывание клавиатуры - INT 9. Вызывается оно контроллером клавиатуры при каждом нажатии или отпускании клавиш. То есть если необходимо знать всё, то нужно перехватить это прерывание, записав адрес своего обработчика в таблицу векторов прерываний. После этого Ваша поцедура будет вызываться при каждом нажатии или отпускании клавиши. Эта тема займёт достаточно места, так что отсылаю Вас к ya.ru за исходниками и к книгам. (Например, Зубков С.В. - "Assembler для DOS, Windows и UNIX".)




Ответ отправлен: 11.05.2004, 22:09
Отправитель: Foamplast


Отвечает Acid Burn

Доброе время суток, Тагир!
Легче всего перехватыват int 9h!

Ответ отправлен: 11.05.2004, 22:54
Отправитель: Acid Burn


 Вопрос № 5256

Здравствуйте.
Подскажите пожалуйста можно ли сделать так чтоб функция 7141h прерывания 21h для удаления файлов с длинными именами, удаляла файл с указанием пути на файл, например "d:путьимяфайла",0. Старая функция 41h, если ей передать такой путь работает нормально, а 7141h выдает ошибку "файл не найден".



Вопрос отправлен: 10.05.2004, 22:52
Отправитель: Начинающий

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

Отвечает Foamplast

Доброе время суток, Начинающий!
Она, наверное, только в текущем каталоге работает, проверьте.


Ответ отправлен: 13.05.2004, 23:35
Отправитель: Foamplast


Отвечает Artemy

Приветствую Вас, Начинающий!
попробуй указывать путь в кавычкач (код 22h)


Ответ отправлен: 11.05.2004, 16:18
Отправитель: Artemy


Отвечает Acid Burn

Приветствую Вас, Начинающий!
Возможно ы не правельно задаешь строку адресе(т.е. не используешь "" в в пути). С ним у меня все работает нормально!

Ответ отправлен: 11.05.2004, 22:51
Отправитель: Acid Burn


 Вопрос № 5258

Всем привет!
народ помогите лабу написать:
Посортирывать символы в пердложении по спаданию независимо от величина букв.


Приложение:


Вопрос отправлен: 11.05.2004, 09:34
Отправитель: OL

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

Отвечает Dragoon

Приветствую Вас, OL!
Это в каком смысле 'по спаданию'??? Выражайся яснее.

Ответ отправлен: 13.05.2004, 22:03
Отправитель: Dragoon


Отвечает Стас

Доброе время суток, OL!
Примерно так.
На регистр букв внимания не обращаю, т.е. M=m.
Строка может быть любой длинны (в разумных пределах), должна заканчиваться "$". Цифры, пробелы и знаки тоже попадают под "раздачу".

Приложение:

Ответ отправлен: 11.05.2004, 12:48
Отправитель: Стас


Отвечает Foamplast

Добрый день, OL!

Предлагаю сортировку методом пузырька. Здесь пары символов пересекаются друг с другом. Т.е. в слове паровоз первая пара - "па", вторая - "ар", третья - "ро" и т.д.

Цикл: Сбрасываем флаг, берём первую пару символов, выполняем над ней операцию проверки. Если проверка неудачная, устанавливаем флаг и меняем местами символы пары. Если удачная, то нифига не делаем. Берём следующую пару. Повторяем. И так до конца предложения. Когда предложение закончится, смотрим, установлен ли флаг. Если да, то повторяем весь цикл заново.

Проверка: Если какой-либо символ больше или равен 'а' и одновременно меньше 'я', то из него следует вычесть ('а' - 'А'). Далее сравниваем символы и возвращаем результат.

Пример: Можно скачать здесь: http://foamplast.hexx.ru/csort.zip (В общем, Ваша "лаба" давно уже сделана :)




Ответ отправлен: 13.05.2004, 23:35
Отправитель: Foamplast


Отвечает Евгений Иванов

Добрый день, OL!
Ну вот, надо символы напоить сначала, они и поспадутся ;)
И не важен размер букв, они спаиваются просто замечательно!
Удачи!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 11.05.2004, 18:36
Отправитель: Евгений Иванов


Отвечает _vt

Приветствую Вас, OL!
А в чем проблема-то? Я не умею "посортирывать"... :) Вопрос-то в чем?
E-Man : Life begins at 1000Mhz!


Ответ отправлен: 11.05.2004, 22:48
Отправитель: _vt


 Вопрос № 5259

Спасибо за ответ №5232 Foamplast и Pawel.
Pawel спасибо за помощь куда можно писать?



Вопрос отправлен: 11.05.2004, 10:42
Отправитель: vlad (dvovani@rambler.ru)

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

Отвечает Pawel

Здравствуйте, vlad!
Пиши на ProgramMan@list.ru.

Ответ отправлен: 12.05.2004, 05:54
Отправитель: Pawel



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (25)
C / C++ (14)
Perl (4)
Builder / Delphi (19)
Pascal (20)
Basic / VBA (4)
Java / JavaScript (4)
PHP (12)
Криптография (8)
WinAPI (10)
Радиоэлектроника (5)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (53)
"Железо" (28)
Поиск информации (15)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (9)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (9)
КоАП (6)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.


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


В избранное