Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2013, 11:56   #1
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию Перемещение курсора мыши по экрану

Нужно переместить курсор на экране, SetCursorPos (API) не подходит.

Пытаюсь использовать ASM, попытался найти в интернете нужный код, т.к. сам в ASM разбираюсь чуть менее, чем никак.

Один из кодов:
Код:
  asm
    mov ah, 2
    mov bh, 1
    mov dh, 0
    mov dl, 0
    int 10h
  end;
на int 10h выбивает ошибку (EAccess Violation).

Также пытался использовать готовую процедуру, найденную в сети:
Код:
Procedure GotoXY(X,Y : Byte); Assembler; Asm
  MOV DH, Y    { DH = Row (Y) }
  MOV DL, X    { DL = Column (X) }
  DEC DH       { Adjust For Zero-based Bios routines }
  DEC DL       { Turbo Crt.GotoXY is 1-based }
  MOV BH,0     { Display page 0 }
  MOV AH,2     { Call For SET CURSOR POSITION }
  INT 10h
end;
Результат одинаковый.

Кто-нибудь может помочь, разъяснить, в чём же дело?
KoBaL вне форума Ответить с цитированием
Старый 01.10.2013, 22:28   #2
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
SetCursorPos (API) не подходит.
Судя по всему у вас какая-то винда. А для использования прерывания int 10h нужны привилегии нулевого кольца, а их с трудом можно раздобыть только до XP(Soft Ice в пример). Вот, к сожалению, дело это бесполезное. Да и вообще, смешивание программирования под MS DOS с программированием под Windows - неудачная идея. Почему Вас не устраивают родные API?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 04.10.2013, 17:56   #3
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Судя по всему у вас какая-то винда. А для использования прерывания int 10h нужны привилегии нулевого кольца, а их с трудом можно раздобыть только до XP(Soft Ice в пример). Вот, к сожалению, дело это бесполезное. Да и вообще, смешивание программирования под MS DOS с программированием под Windows - неудачная идея. Почему Вас не устраивают родные API?
Стороннее ПО блокирует использование SetCursorPos (курсор не меняет положения)
KoBaL вне форума Ответить с цитированием
Старый 04.10.2013, 22:05   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от KoBaL Посмотреть сообщение
Стороннее ПО блокирует использование SetCursorPos (курсор не меняет положения)
печально...
но использование прерываний MS DOS Вам в этом случае точно (на 146%) не поможет!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение картинки по экрану... Erlotaza Общие вопросы Delphi 3 13.02.2012 20:01
Перемещение курсора мыши по экрану Илья2204 Общие вопросы C/C++ 1 08.12.2010 13:34
Перемещение курсора мыши UNREALcv Помощь студентам 1 11.04.2010 11:39
Программное перемещение указателя мыши по экрану. LENINGOLD Общие вопросы Delphi 3 30.11.2009 01:58