Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 662
от 12.11.2003, 12:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 4480 Отправлено ответов: 12921 Активность: 288.4 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 143.02 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 149.4 URL: Программирование [Подробней >>] |
never_again Статус: Опытный Общий рейтинг: 137.77 [Подробней >>] |
PUSH Статус: Начальный Общий рейтинг: 109.25 [Подробней >>] |
Orlando Статус: Начальный Общий рейтинг: 101.42 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 120.49 [Подробней >>] |
Artemy Статус: Начальный Общий рейтинг: 125 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.03 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 110.79 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 112.7 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 4437. Уважаемые эксперты , вопрос у меня прога садится в трей у нее создано всплывающее меню которое вс... (ответов: 2)
Вопрос № 4438. Всем читать: http://nicki-site.narod.ru/... (ответов: 1)
Вопрос № 4440. Уважаемые, господа эксперты. Подскажите, пожалуйста, как пользоваться линейным буфером для вывода гр... (ответов: 1)
Вопрос № 4441. Где взять Windows 98 DDK тлька не MSDN там я за парился искать дайте мне премой путь к этим библеоте... (ответов: 3)
Вопрос № 4443. Ей, Mortus Alighieri! Ты начальный уровень, а пишешь всякую $#$#... > "ii. Tasm32 + Tlink32 для... (ответов: 2)
Вопрос № 4444. Здравствуйте ув.эксперты! Возникла проблема следующего план. Необходимо послать контролеру через RS2... (ответов: 1)
Вопрос № 4445. Здравствуйте эксперты! Осталась нерешенной проблема с графикой под DOS на VC6.0. Проблемы с алгоритм... (ответов: 2)
Вопрос № 4448. Доброе время суток! К сожалению, на мой предыдущий вопрос никто не ответил. Объясню проблему более д... (ответов: 1)
Вопрос № 4449. Здраствуйте все эксперты! Пишет вем саботажник с города Н. Около полугода я в городе занимаюсь диктр... (ответов: 4)
Вопрос № 4450. Здравствуйте! Требуется написать простенькую программку, выводящую на экран(в графическом... (ответов: 2)
Вопрос № 4451. Как перевести строку десятичных чисел в двоичное число?Например, есть строка "4294967295",... (ответов: 2)
Вопрос № 4452. Скажыте уважаемые експерти? Что лудшэ TASM или MASM... (ответов: 5)
Вопросов: 12, ответов: 26
Вопрос № 4437 |
Уважаемые эксперты , вопрос у меня прога садится в трей у нее создано всплывающее меню которое всплывает когда я кликаю по трей иконке правой кнопкой мыши, и вот тут у меня трабл пока я не выберу какой либо пункт меню не исчезает , а мне надо чтобы если я передумал при нажатии на другом окне менюшка исчезала, заранее благодарен....
Вопрос отправлен: 06.11.2003, 10:07
Отправитель: greg
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Здравствуйте, greg!
ebx равен номеру главного окна
MsgNIRbuttonUp:
Call GetForegroundWindow
push eax
Call SetForegroundWindow, ebx
mov esi,ofs pt
Call GetCursorPos,esi
Call GetSubMenu,[hMenuMain],0
Call TrackPopupMenuEx,eax,TPM_LEFTALIGN,[(t POINT esi).x],[(t POINT esi).y],
ebx,0
pop esi
Call IsWindow, esi
or eax, eax
jz @@ExitMsgNI
Call SetForegroundWindow, esi
jmp @@ExitMsgNI
Удачи!
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 06.11.2003, 12:43
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Доброе время суток, greg!
А как ты меню выводишь? Надо trackpopupmenu.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 09.11.2003, 01:09
Отправитель: Bob Johnson
Вопрос № 4438 |
Всем читать:
http://nicki-site.narod.ru/
Вопрос отправлен: 06.11.2003, 11:55
Отправитель: Eugene Ivanov (sam@mail.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Добрый день, Eugene Ivanov!
прочитаю.
Ответ отправлен: 06.11.2003, 18:52
Отправитель: never_again
Вопрос № 4440 |
Уважаемые, господа эксперты. Подскажите, пожалуйста, как пользоваться линейным буфером для вывода графики. Буду очень признателен за пример с выводом на экран, желательно в режиме 640х480х256 или выше и глубже, хотя бы одной точки (с остальными надеюсь сам разберусь :)) ).
Вопрос отправлен: 06.11.2003, 19:08
Отправитель: Мирослав Махрук
[Следующий вопрос >>] [Список вопросов]
Отвечает PUSH
Доброе время суток, Мирослав Махрук!
Зубкова почитайте, там написано. И пример есть.
Ответ отправлен: 08.11.2003, 07:49
Отправитель: PUSH
Вопрос № 4441 |
Где взять Windows 98 DDK тлька не MSDN там я за парился искать дайте мне премой путь к этим библеотекам а то я немогу создать драйвер VXD.
Как перейти в нулевое кольцо RING0 из делфи или как мне использовать прерывание и порты O/I.
Вопрос отправлен: 06.11.2003, 20:16
Отправитель: NikNet
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Приветствую Вас, NikNet!
http://shelek.org.ru/ddk/98ddk.exe
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 06.11.2003, 22:46
Отправитель: Евгений Иванов
Отвечает Orlando
Здравствуйте, NikNet!
Вот ссылка
http://www.microsoft.com/whdc/ddk/winddk.mspx
Ответ отправлен: 06.11.2003, 21:48
Отправитель: Orlando
Отвечает Bob Johnson
Доброе время суток, NikNet!
1. На все DDK тут проходили ссылки.
2. Некоторая информация по написанию vxd есть на моей странице, сходи если нужно.
3. Это можно сделать способом, используемым в wincih - посмотри его исходник. Но наиболее правильно писать драйвер.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 09.11.2003, 01:10
Отправитель: Bob Johnson
Вопрос № 4443 |
Ей, Mortus Alighieri!
Ты начальный уровень, а пишешь всякую $#$#...
> "ii. Tasm32 + Tlink32 для драйверов не годятся. используй > M$ VC++ или M$ VS.NET/C++"
Это что?
На TASM можно сделать ВСЁ! Всё, что угодно!
Или в крайнем случае использовать FASM, NASM!
А у кого руки не те, нечего пенять на инструмент!!!
Вопрос отправлен: 06.11.2003, 23:23
Отправитель: Eugene Ivanov (super21@ATmail.nnov.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Здравствуйте, Eugene Ivanov!
Целиком и полностью поддерживаю твоё мнение о TASM'e
Ответ отправлен: 07.11.2003, 22:25
Отправитель: never_again
Отвечает _vt
Приветствую Вас, Eugene Ivanov!
Годиться TASM для чего угодно - это понятно, но многие вещи, особенно под Win32 гораздо удобнее писать на MASM. А другие ассемблеры из-за отсутствия возможностей отладки, неполной совместимости с MASM и прочих недостатков, можно только в самых простых случаях использовать.
*** E-Man - can help you***
Ответ отправлен: 10.11.2003, 14:36
Отправитель: _vt
Вопрос № 4444 |
Здравствуйте ув.эксперты!
Возникла проблема следующего план.
Необходимо послать контролеру через RS232 строку байт.
Посылка происходит нормально, но когда необходимо прочитать что пришло прога вешается на ReadFile.
При открытии дескрипора COM порта не получается комбинация флагов на чтение и запиь. Т.е он либо говорит что не могу открыть COM либо не может записать туда.
В чем мой косяк не могу понять, а нужно очень срочно.
В дальнейшем если все получится буду переделывать на асме.
Заранее спасибо.
Приложение:
Вопрос отправлен: 07.11.2003, 04:23
Отправитель: m0v8lack
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Приветствую Вас, m0v8lack!
Открыть порт на чтение и запись одновременно возможно и об этом написано в мсдн (The CreateFile function can create a handle to a communications resource, such as the serial port COM1. For communications resources, the dwCreationDisposition parameter must be OPEN_EXISTING, and the hTemplate parameter must be NULL. Read, write, or read/write access can be specified, and the handle can be opened for overlapped I/O. For more information about communications, see Communications).
Тебе следует указать в качестве параметра share ноль, т.к. порт не расшаривается и доступ к нему может получить только одна программа в один момент времени.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 09.11.2003, 01:10
Отправитель: Bob Johnson
Вопрос № 4445 |
Здравствуйте эксперты!
Осталась нерешенной проблема с графикой под DOS на VC6.0.
Проблемы с алгоритмом вывода линии и точки нет! Проблема заключается в том, что не работает процедура перехода в графический режим 13h.
Пример:
void init() {
_asm {
mov ax, 0a000h
mov es, ax
mov ax, 13h
int 10h
xor di, di
xor ax, ax
mov cx, 320*200
cld
rep stosb
}
}
В тестовом модуле я вызываю эту процедуру и компилятор VC6.0 выводит ошибки (и соотв. не работает).
---
Мне не нужно в принципе реализовывать эти процедуры и если есть граф. библиотека, то скинте ее пожалуйсто!
---
Спасибо за отзывы!
Вопрос отправлен: 07.11.2003, 19:14
Отправитель: kuper
[Следующий вопрос >>] [Список вопросов]
Отвечает Artemy
Доброе время суток, kuper!
попробуй запомнить и восстановить регистры ES и DI
и лучше используй ДОСовый компилятор.
Ответ отправлен: 10.11.2003, 11:21
Отправитель: Artemy
Отвечает vitya
Доброе время суток, kuper!
Dos графика по определению не возможна из под vc6.0, так как он поддерживает липшь win32 приложения.
Ответ отправлен: 10.11.2003, 08:08
Отправитель: vitya
Вопрос № 4448 |
Доброе время суток!
К сожалению, на мой предыдущий вопрос никто не ответил. Объясню проблему более детально.
Написал программу и dll к ней, которая вешает хук на клавиатуру. Когда запускаешь ее мышкой она работает нормально (то есть ведет лог и выдает окошко на каждое нажатие клавиши для проверки).
А если программа (ехе) запускается из реестра, то сама она в памяти висит, а лог не ведется и окошки не вылазят по нажатию клавиш. В реестре программу записывал в HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun и в HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun. Потом попробовал записать его в win.ini... Но все одно: лог не ведется, окошко не выскакивает, но программа висит в памяти.
Оптимальным выходом из ситуации был бы запуск программы вручную при каждой загрузке, но... программа пишется с учетом запуска вместе с WINDOWS без участия пользователя.
Спасибо!
Вопрос отправлен: 07.11.2003, 22:39
Отправитель: Faraon (faraon@hotmail.kz)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Добрый день, Faraon!
А при чём тут Ассемблер??!!
Дело в путях...
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 08.11.2003, 08:42
Отправитель: Евгений Иванов
Вопрос № 4449 |
Здраствуйте все эксперты!
Пишет вем саботажник с города Н.
Около полугода я в городе занимаюсь диктруктивными действиями! В основном в информационной сфере! Сначала саботировал в инфо сфере с помощью Bat файлов, затем перешел на VB сейчас перехожу на АСМ.
У меня в программе такая ошибка:
'Near jump or call to different CS!
Также ищу единомышленников!
Пока!!!!!
Приложение:
Вопрос отправлен: 08.11.2003, 11:22
Отправитель: Saboter (neonit@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Приветствую Вас, Saboter!
Так как ты пишешь в стандартном синтаксисе MASM, не используя упрощенную форму объявления сегментов, тебе надо вручную указывать какой сегментный регистр на какой сегмент указывает. Делается это с помощью директивы assume: после org 100h вставь строку assume cs:cseg,ds:cseg,ss:cseg.
*** E-Man - can help you***
Ответ отправлен: 10.11.2003, 14:37
Отправитель: _vt
Отвечает Artemy
Здравствуйте, Saboter!
пиши: assume cs:cseg
Ответ отправлен: 10.11.2003, 11:22
Отправитель: Artemy
Отвечает Dark_Lord
Приветствую Вас, Saboter!
Near jump or call to different CS - означает попытку ипользования внутрисегментного прижка или внутрисегментного вызова функции для достижения другого сегмента. Можно сказать, что это не ассемблерная ошибка, а ошибка соглашений, тоесть в зависимости от компилятора надо писать на соответсвующем синтаксе. Так как не знаю, каким компилятором пользуешься могу посоветовать следующее:
jmp near $
jmp cs:$
jmp short $
Ответ отправлен: 09.11.2003, 12:20
Отправитель: Dark_Lord
Отвечает ASMодей
Приветствую Вас, Saboter!
Поставь после org 100h директиву assume cs:cseg и все пройдет.
Ответ отправлен: 10.11.2003, 06:48
Отправитель: ASMодей
Вопрос № 4450 |
Здравствуйте!
Требуется написать простенькую программку, выводящую
на экран(в графическом режиме) бегущую волну с регистром
цвета(волна должна иметь вид графика y=sin(x) или y=cos(x)).
Цвет волны, соответственно, со временем изменяется.
Вопрос отправлен: 08.11.2003, 11:40
Отправитель: Boris
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Здравствуйте, Boris!
Специально для тебя выложил на мой сайт:
http://superforest.narod.ru/rar/waves.rar
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 08.11.2003, 13:08
Отправитель: Евгений Иванов
Отвечает Dark_Lord
Добрый день, Boris!
Так напиши. И вообще вопрос ставь правильнее и не надейся, что всё за тебя сделают, так ничему сам не научишься.
Цвет можно брать из текущей секунды, синус/косинус можно высчитовать при помощи соответсвующих директив FPU, fsin, fcos. причём лучше вычислить всё это один раз, а потом сдвигать!
Ответ отправлен: 09.11.2003, 12:24
Отправитель: Dark_Lord
Вопрос № 4451 |
Как перевести строку десятичных чисел в двоичное число?Например, есть строка "4294967295", должны получить dx = 0FFFFh, ax = 0FFFFh.
Нашел здесть прогу:
mov ah,0ah
mov dx,offset Chislo
int 21h
xor ax, ax
xor bx, bx
xor cx, cx
cwd
lea si, Chislo + 2
mov cl, Chislo [1]
mov di, 10
@@loop:
mov bl, [si]
inc si
sub bl, 30h
mul di
add ax, bx
adc dx, 0
loop @@loop
Chislo db 10, ? 10 dup (?)
но она работает не правильно.
Вопрос отправлен: 08.11.2003, 12:05
Отправитель: Artem
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Artem!
Это просто - проходишь строку слева направо. На каждой цифре умножаешь результат на 10 и добавляешь текущую цифру.
Процедура работает неправильно из-за того, что она во-первых не рассчитана на числа больше 65535, а так в ней есть еще пара мелких деталей.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 11.11.2003, 21:59
Отправитель: Bob Johnson
Отвечает Евгений Иванов
Приветствую Вас, Artem!
Смотри исходник Хранителя Экрана на моём сайте. Там есть подпрограмма
atoui.
;---------------------
; Преобразует "строковое число" в число
;
proc atoui
USES esi, edi, ebx
ARG @@StrNum :dword
mov edx, [@@StrNum]
sub eax, eax
@@m1:
mov cl, [edx]
cmp cl, 30h ; '0'
jl @@ret
cmp cl, 39h ; '9'
jg @@ret
movsx ecx, cl
lea eax, [eax+eax*4]
inc edx
lea eax, [ecx+eax*2-30h]
jmp @@m1
@@ret:
ret
endp
Удачи! (Наташа, гляди веселей и пиши мне письма почаще!)
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 08.11.2003, 13:10
Отправитель: Евгений Иванов
Вопрос № 4452 |
Скажыте уважаемые експерти? Что лудшэ TASM или MASM
Вопрос отправлен: 08.11.2003, 12:24
Отправитель: ol
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, ol!
Я использую тасм (и под винды, и под дос).
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 11.11.2003, 21:59
Отправитель: Bob Johnson
Отвечает Евгений Иванов
Доброе время суток, ol!
Я привык к TASM и его режиму IDEAL. Пишу уже на подсознательном уровне, не задумываясь на грамматике :)
По сути, в любом Ассемблере можно сделать что угодно, хотя есть исключения...
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 08.11.2003, 13:15
Отправитель: Евгений Иванов
Отвечает never_again
Доброе время суток, ol!
смотря где и когда, а вообще "муж и жена - одна сатана"
Ответ отправлен: 08.11.2003, 21:23
Отправитель: never_again
Отвечает Orlando
Доброе время суток, ol!
Для начала пойдет TASM (под DOS), ну а при программировании под Windows целесообразнее использовать MASM, всеже компилятор от Microsoft, а они лучше разбираются в своих осях..
Ответ отправлен: 08.11.2003, 22:34
Отправитель: Orlando
Отвечает Dark_Lord
Добрый день, ol!
Хороший вопрос, о нём человечество спорит со времём первого 86086 процессора. Вопрос в том, для чего он тебе нужен, под дос советую тасм, под windows - масм.
Ответ отправлен: 09.11.2003, 12:28
Отправитель: Dark_Lord
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (31) C / C++ (26) Perl (4) Builder / Delphi (20) Pascal (19) Basic / VBA (7) Java / JavaScript (9) PHP (14) Криптография (9) WinAPI (13) |
Пользователю Windows 95/98/Me (41) Windows NT/2000/XP (59) "Железо" (36) Поиск информации (24) |
Администратору Windows NT/2000/XP (36) Linux / Unix (17) |
Юристу Гражданское право (11) Семейное право (8) Трудовое право (8) КоАП (8) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||