Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 712
от 17.04.2004, 13:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 5156 Отправлено ответов: 14186 Активность: 275.1 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Pawel Статус: Профессиональный Общий рейтинг: 156.15 [Подробней >>] |
Acid Burn Статус: Начальный Общий рейтинг: 139.28 [Подробней >>] |
Foamplast Статус: Опытный Общий рейтинг: 152.68 URL: мой личный сайт [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 109.89 [Подробней >>] |
ZagSer168 Статус: Начальный Общий рейтинг: 104.32 [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 133.37 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 106.11 URL: Мой сайтик... [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 117.7 [Подробней >>] |
SedHg Статус: Опытный Общий рейтинг: 111.84 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 5136. Доброго времени суток! Дайте, плииз, ссылочку на досевый компилятор с поддержкой ммх и sse. Спасибо.... (ответов: 3)
Вопрос № 5137. День добрый уважаемые эксперты! Подскажите плиз как избавиться от переходов для оптимизации в тако... (ответов: 6)
Вопрос № 5138. Приветик всем!! Помогите разобраться вот в чем... под WinXP/9x 1. как узнать существует данный ката... (ответов: 3)
Вопрос № 5139. Здравствуйте. (winxp-masm612)(ml.exe 2_.asm /AT) При компиляции(или компоновке) (исходник в приложен... (ответов: 4)
Вопрос № 5140. Здравствуйте. Вобщем без таблицы импорта программа под виндой не запускается. Вроде логично. А если... (ответов: 2)
Вопрос № 5141. Уважаемы эксперты, подскажите пожалуйста в чём может быть дело в следующем случаи. Есть у меня учебн... (ответов: 3)
Вопрос № 5142. Здравствуйте дорогие эксперты! Вот у меня такой вопрос возник: Как в WDM драйвере (для WIN98) отлови... (ответов: 1)
Вопрос № 5144. Здраствуйте. У меня masm32 выдает ошибку: menu.rc<1> error A2044 invalid character in file ... menu.... (ответов: 3)
Вопросов: 8, ответов: 25
Вопрос № 5136 |
Доброго времени суток!
Дайте, плииз, ссылочку на досевый компилятор с поддержкой ммх и sse.
Спасибо.
Вопрос отправлен: 12.04.2004, 20:17
Отправитель: sasha
[Следующий вопрос >>] [Список вопросов]
Отвечает Pawel
Добрый день, sasha!
Fasm
http://flatassembler.net/
Ответ отправлен: 12.04.2004, 21:28
Отправитель: Pawel
Отвечает Acid Burn
Здравствуйте, sasha!
Качай TASM с WASM.RU! Он умеет работать со всем! Но если ты не поклонник борланда, то качай софт от МЕЛКОСОФТА с того же сайта
Ответ отправлен: 14.04.2004, 15:16
Отправитель: Acid Burn
Отвечает Foamplast
Здравствуйте, sasha!
http://nasm.sourceforge.net
Ответ отправлен: 15.04.2004, 08:47
Отправитель: Foamplast
Вопрос № 5137 |
День добрый уважаемые эксперты!
Подскажите плиз как избавиться от переходов
для оптимизации в такой задачке:
if(eax=b) then eax=1(или любое не нулевое значение) else eax=0.
Нужно для формирования значения функции.
У меня получилось так см. приложение.
Это наверно не оптимально будет.
Приложение:
Вопрос отправлен: 12.04.2004, 20:24
Отправитель: 1
[Следующий вопрос >>] [Список вопросов]
Отвечает Pawel
Приветствую Вас, 1!
По мойму по другому нельзя.
По коду можно перемещать ся только переходами.
Без них не получется.
Ответ отправлен: 12.04.2004, 21:31
Отправитель: Pawel
Отвечает Dark_Lord
Здравствуйте, 1!
cmp eax,[b]
sete al
В следствии чего, если еах=b, то al=1
Ответ отправлен: 12.04.2004, 22:04
Отправитель: Dark_Lord
Отвечает ZagSer168
Здравствуйте, 1!
Также возможно реализовать так:
cmp eax,[b]
sete al
and eax,1
ret
Ответ отправлен: 13.04.2004, 00:52
Отправитель: ZagSer168
Отвечает Евгений Иванов
cmp eax, [b]
setz al
and eax, 15
Бывай.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 13.04.2004, 20:04
Отправитель: Евгений Иванов
Отвечает Portnov
Приветствую Вас, 1!
ВО, по-моему, быстрее некуда:
...
xor eax,[b]
not eax
ret
XOR от двух чисел равен нулю тогда и только тогда, когда эти числа равны.
Ответ отправлен: 14.04.2004, 11:02
Отправитель: Portnov
Отвечает Foamplast
Доброе время суток, 1!
Cmp Eax, [b]
Sete Al
And Eax, 0FFh
Ответ отправлен: 15.04.2004, 08:47
Отправитель: Foamplast
Вопрос № 5138 |
Приветик всем!!
Помогите разобраться вот в чем...
под WinXP/9x
1. как узнать существует данный каталог или нет?
2. есть такой контрол SysDateTimePick32 как узнать когда юзер ввел дату, какие надо обрабатывать сообщения?
Вем огромное спасибо кто решился мне помочь!
Вопрос отправлен: 12.04.2004, 20:59
Отправитель: Agny (agny@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Здравствуйте, Agny!
Пусти поиск файла с параметрами искать каталоги.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 13.04.2004, 20:04
Отправитель: Евгений Иванов
Отвечает Acid Burn
Добрый день, Agny!
В ВИНДАХ существует такая функция прерывания 21 как проверка каталога!!!Посмотри в книге Зубкова "АССЕМБЛЕР ДЛЯ ДОС,ВИНДОС,УНИХ"там все хорошо написано
Ответ отправлен: 14.04.2004, 15:20
Отправитель: Acid Burn
Отвечает Foamplast
Приветствую Вас, Agny!
1. См. функцию SearchPath
2. DTN_DATETIMECHANGE и вообще смотри соответствующий раздел в MSDN.
Ответ отправлен: 15.04.2004, 08:49
Отправитель: Foamplast
Вопрос № 5139 |
Здравствуйте.
(winxp-masm612)(ml.exe 2_.asm /AT)
При компиляции(или компоновке) (исходник в приложении) выводятся ошибки:
2_.asm(12) : error A2085: instruction or register not accepted in current CPU mode
2_.asm(23) : error A2085: instruction or register not accepted in current CPU mode
Стоило мне переименовать Str в Stri как всё заработало. А под ДОС, вероятно, всё и так работает.
1.Почему это слово запрещено?(Оно что зарезервировано?)
2.Какие ещё слова запрещены?
3.Указывается код ошибки (A2085). Есть ли документация с разъяснением значения ошибок?
Приложение:
Вопрос отправлен: 13.04.2004, 01:16
Отправитель: EG
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Здравствуйте, EG!
1) Это инструкция 286+ процессора. Она запрещена по синтаксису MASM, т.к. по умолчанию используются только инструкции 8086/88. Для разрешения ее использования нужна строка
.286
в начале программы. В вашем случае, нельзя называть переменные зарезервированными словами.
2) Все инструкции процессора + директивы ассемблера.
3) Например, MSDN. Вот что там говорится:
A2085: instruction or register not accepted in current CPU mode
The error occurs because the default assembly mode is 8086. The .186, .286, .286p, .386, or .386p directive must be placed in the source code prior to any instructions that require those modes.
In addition, MASM 6.0 supports 80486 instructions.
E-Man : Life begins at 1000Mhz!
Ответ отправлен: 13.04.2004, 05:46
Отправитель: _vt
Отвечает Евгений Иванов
Добрый день, EG!
STR - это команда процессора и поэтому она зарезервирована. :))
Она записывает регистр задачи в 16-битный регистр основного назначения.
Удачи!
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 13.04.2004, 20:05
Отправитель: Евгений Иванов
Отвечает Acid Burn
Приветствую Вас, EG!
Вполне возможно, что первоначальный вариант имени перемменной используется процессором как команда! И он выдалсообщение о том что в указаном типе процессора этакоманда не используется!
Ответ отправлен: 14.04.2004, 14:56
Отправитель: Acid Burn
Отвечает Foamplast
Доброе время суток, EG!
1. Да, Str - это название команды (как Mov или Int) и поэтому используется специфически.
2. Специальным образом испольуются наименования команд, регистров и директив ассемблера. Возможно в MASM что-то ещё, поэтому подробнее смотрите документацию по masm, они там жутко любят плодить заверзервированные слова.
3. Документация обычно прилагается к ассемблеру.
Ответ отправлен: 15.04.2004, 08:49
Отправитель: Foamplast
Вопрос № 5140 |
Здравствуйте.
Вобщем без таблицы импорта программа под виндой не запускается.
Вроде логично. А если я сам хочу заполнить таблицу импорта? Вот встраиваю блок защиты в прогу.
там всё зашифровано. Блок при запуске расшифровывает и заполняет импорт. Поскольку загрузчику
винды нужна таблица импорта, возникает вопрос, КАКУЮ таблицу ему подсунуть в качестве заглушки?
Загрузчику явно не простое наличие таблицы нужно, а именно определённые ДЛЛ с определёнными
функциями. Так какие же ДЛЛ и функии?
Вопрос отправлен: 13.04.2004, 01:18
Отправитель: ПАПА
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Здравствуйте, ПАПА!
Загрузчику не нужна таблица!
Она нужна тебе, чтобы работали функции, нужные для распаковки.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 13.04.2004, 20:05
Отправитель: Евгений Иванов
Отвечает Foamplast
Доброе время суток, ПАПА!
1. Абсолютно любую таблицу, с любыми функциями из любых библиотек (проверено на Win2000). Советую ExitProcess().
2. Дело в том, что с точки зрения разработчиков ОС, блок защиты может не справиться с какой-либо из задач (например, по причине нехватки памяти), тогда этот блок должен сообщить пользователю об ошибке и корректно завершить процесс. А для этого и понадобятся функции! Поэтому обычно нормальные загрузчики проверяют файлы на корректность перед запуском. В критерии проверки входят проверка наличия необходимых полей и структур (секции кода, точки входа и т.п) и осмысленности этих полей (например, точка входа должна находиться в пределах какой-либо секции кода).
Срого говоря, ЛЮБОЙ файл должен импортировать по меньшей мере ExitProcess() и ещё что-либо для ввода или вывода (либо GetProcAddress() для определения адресов), но это не проверяется, так как тогда запуск процессов может стать дорогой операцией.
Поэтому обычно загрузчик проверяет, чтобы была таблица импорта.
Ответ отправлен: 15.04.2004, 08:49
Отправитель: Foamplast
Вопрос № 5141 |
Уважаемы эксперты, подскажите пожалуйста в чём может быть дело в следующем случаи.
Есть у меня учебные примеры по использованию расширенного редактора
класс RichEdit20A билиотека riched20.dll, примеры хорошие и в Windows98
всё было без проблем, а вот когда запустил их в Wndows XP то заметил
что сообщение получения выделенного текста "EM_GETSELTEXT"
анлгийские символы всегда выдаёт правильно, а вот русские только
при переключенири раскладки клавиатры на русскую, при английской
раскладке вместо русских букв аккуратно вставляет одни пробелы.
Подскажите отчего это может быть, нельзя ли как-то сделать так чтобы
выделенный текст выдавался как есть при любой раскладке без искажений.
С уважением Kostik.
Вопрос отправлен: 13.04.2004, 04:17
Отправитель: Kostik (mks@norcom.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Добрый день, Kostik!
Необходимо установить язык в функции.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 13.04.2004, 20:51
Отправитель: Евгений Иванов
Отвечает Acid Burn
Доброе время суток, Kostik!
Наверное нельзя, но бог тебе в помощь!!!! Если только ты не ПЕРЕПИШЕШЬ заново ВИНДЫ!!!!
Ответ отправлен: 14.04.2004, 15:22
Отправитель: Acid Burn
Отвечает Foamplast
Добрый день, Kostik!
Используйте RichEdit20W.
Ответ отправлен: 15.04.2004, 08:50
Отправитель: Foamplast
Вопрос № 5142 |
Здравствуйте дорогие эксперты!
Вот у меня такой вопрос возник:
Как в WDM драйвере (для WIN98) отловить прерывание? У меня есть часть исходника VxD драйвера:
Строки из инициализации прерывания:
mov EDI,OFFSET32 VMyD_IRQ_Desc;Адрес структуры VPICD_IRQ_Descriptor
VxDCall VPICD_Virtualize_IRQ;Виртуализация устройства
mov IRQ_Handle,EAX
...
mov EAX,IRQ_Handle
VxDCall VPICD_Physically_Unmask
Само прерывание:
BeginProc IRQproc
...
mov EAX,IRQ_Handle
VxDCall VPICD_Phys_EOI
VxDCall VPICD_Physically_Mask
clc
ret
EndProc IRQproc
По этому поводу вопрос:
1. Будут ли эти функции работать из WDM драйвера?
2. Как отключить прерывание?
3. Достаточно ли мне этих функций для работы?
4. Где я могу прочитать об этом?
Вопрос отправлен: 13.04.2004, 09:17
Отправитель: Filgat
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Приветствую Вас, Filgat!
1. Скорее всего, нет.
2. IoDisconnectInterrupt();
3. Нет.
4. в Windows DDK.
Во-первых, для обработки прерываний необходимо регистрировать их обработчики с помощью IoConnectInterrupt().
Во-вторых, драйвер должен иметь определённые процедуры и разделы файла.
Поэтому советую обратиться к Windows 2000 DDK и wasm.ru, там есть цикл статей про написание драйверов.
Ответ отправлен: 15.04.2004, 08:50
Отправитель: Foamplast
Вопрос № 5144 |
Здраствуйте.
У меня masm32 выдает ошибку:
menu.rc<1> error A2044 invalid character in file
...
menu.rc<100> error A2044 invalid character in file
Без строки include menu.rc все компилится нормально, а так он почему то не хочет.При этом у меня в файле ресурсов всего то не больше 20 строк, а он мне выдает АЖ 100 и при чем в каждой строке ошибка.В чем дело?
Вопрос отправлен: 13.04.2004, 13:32
Отправитель: Семен
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Здравствуйте, Семен!
Данные для программы надо обрабатывать отдельной программой.
brc32
Компилятор ресурсов .
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 13.04.2004, 20:52
Отправитель: Евгений Иванов
Отвечает SedHg
Добрый день, Семен!
Чего-то я тебя не понял 8). Кто ошибку выдает компоновщик или компилятор ресурсов ? И на будущее, если прога небольшая, лучше кидай исходник, а то сиди, гадай, что там у тебя случилось =).
Ответ отправлен: 13.04.2004, 21:30
Отправитель: SedHg
Отвечает _vt
Доброе время суток, Семен!
Ресурсы компилятся отдельной программой. В MASM она называется rc.exe.
E-Man : Life begins at 1000Mhz!
Ответ отправлен: 14.04.2004, 23:40
Отправитель: _vt
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (22) C / C++ (13) Perl (1) Builder / Delphi (18) Pascal (18) Basic / VBA (2) Java / JavaScript (3) PHP (10) Криптография (6) WinAPI (11) Радиоэлектроника (6) |
Пользователю Windows 95/98/Me (34) Windows NT/2000/XP (48) "Железо" (25) Поиск информации (16) |
Администратору Windows NT/2000/XP (24) Linux / Unix (7) |
Юристу Гражданское право (10) Семейное право (8) Трудовое право (8) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||