Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 7

Резидентная программа, которая при нажатии определенных клавиш уменьшает/увеличивает курсор

19.12.2012, 00:46. Показов 1727. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! У меня возникла проблема с реализацией резидентной программы , которая при нажатии ALT+Z/ALT+X уменшает/увеличивает курсор. Вместо "..." в метках М4,М5 должен быть код , который реалезует это увеличение\уменшение. Уйму инфы уже перерыл , не могу найти ифнормацию об функциях , которые осуществляют это.

В результате должно получится что-то такое (это простая прога сделана через перерывание int 10h, сделал, чтобы наглядно показать) :


Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
.286
code segment
org 100h
assume cs:code, ds:code
intNumber equ 09h
  start:
        jmp m1            
    
    intMyFunc proc
 
      pushf
      call [dword ptr old_ip]
      push ds
    push ax
    push cx
    push es
mov ax,40h
mov es,ax
mov bx,es:[1Ah]
mov ax,es:[bx]
cmp ah,2Ch
je m4
cmp ah,2Dh
je m5
jmp exit
m4: ...
jmp exit
m5: ...
exit:
    pop es
    pop cx
     pop ax
     pop ds
      iret
    endp
 
  m3:
    old_ip dw 0
    old_cs dw 0              
  m1:
    mov ah, 35h
    mov al, intNumber
    int 21h
    mov [old_ip], bx
    mov [old_cs], es
    mov ah, 25h
    mov al, intNumber
    mov dx, offset intMyFunc
    int 21h
    mov dx, offset m1
    int 27h 
    ends
end start
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2012, 00:46
Ответы с готовыми решениями:

Разработать функцию, которая уменьшает в N раз число, кратное N, а остальные увеличивает на единицу
Задача: Разработать функцию f(x), которая число, кратное 5, уменьшает в 5 раз, а остальные числа увеличивает на 1. #include...

Срабатывание кнопок button при нажатии определённых клавиш
Написал калькулятор, но без ввода с нампада. Нужно его добавить. пробовал так: private void Form1_KeyPress(object sender,...

Воспроизвение звука при нажатии или сочетании определённых клавиш
Начну с главного: Программировать не умею но хочу создать программу для себя. Кратко: хочу сделать программу которая при нажатие или...

8
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
19.12.2012, 01:27
Дык, вот же:
Цитата Сообщение от Ralf Brown's Interrupt List
INT 10 01-- - VIDEO - SET TEXT-MODE CURSOR Inp.:
AH = 01h
CH = cursor start and options (see #00013)
CL = bottom scan line containing cursor (bits 0-4)
Return: nothing
Desc: specify the starting and ending scan lines to be occupied by the
hardware cursor in text modes
Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but returns unmapped cursor shape
UltraVision scales size to the current font height by assuming 14-line monochrome and 8-line color fonts; this call is not valid if cursor emulation has been disabled
applications which wish to change the cursor by programming the hardware directly on EGA or above should call INT 10/AX=1130h or read 0040h:0085h first to determine the current font height
on some adapters, setting the end line greater than the number of lines in the font will result in the cursor extending to the top of the next character cell on the right

Table #00013

Bitfields for cursor start and options:

Bit(s) Description
7 should be zero
6,5 cursor blink
(00=normal, 01=invisible, 10=erratic, 11=slow)
(00=normal, other=invisible on EGA/VGA)
4-0 topmost scan line containing cursor
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 7
19.12.2012, 02:49  [ТС]
Так это же перерывания БИОС , оно вроде не будет корректно работать в резидентной программе
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
19.12.2012, 10:27
Цитата Сообщение от SunJuan
Так это же перерывания БИОС
Хм. Новое слово в технике кодинга резидентов? Вообще-то с точностью до наоборот - во вложенных прерываниях ДОСи приходится приверять inDOS-flag и прочую дребедень. Так что дерзайте, или вы хотите, чтобы я написал это за вас?

А теперь внимание, вопрос: ДОС же сам является резидентной программой. Почему в нём прерывания БИОСа работают корректно?
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
19.12.2012, 11:05
Цитата Сообщение от Charles Kludge Посмотреть сообщение
ДОС же сам является резидентной программой.
как это он является резидентом?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
19.12.2012, 11:39
Fatal Error, OMG... А что, дос-кернел IO.SYS и MSDOS.SYS (в девичестве IBMDOS.SYS) куда-то выгружаются при запуске проги? Как же ты тогда int 21h юзаешь? Тов. Комманд.ком не в счёт - это интертрепатор командной строки, не более, вместо него можно прикрутить bash или csh. И да, у тебя же не вывзыват баттхерта тот факт, что ntvdm и прочие досбоксики являются резидентами для прог, которые ты в них запускаешь? Кстати, доки по выни нашёл на русском, если интересно.
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 7
19.12.2012, 15:03  [ТС]
я вообще специализируюсь на джаве, а єто курсовая рабрта в универе
особо не шарю в ассемблере, суто знания из-за того, что люблю программирование, но не мог в єтом разобратся
если там не много дописать нужно, а я уверен что именно так, то пожалйста ДОПИШИТЕ, а то завтра сдача )))))))){}

Добавлено через 3 минуты
Если бы не на столько краткие сроки., я бы дальше разбирался
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
19.12.2012, 15:15
Цитата Сообщение от SunJuan
то пожалйста ДОПИШИТЕ
Дык, я-то уже давно написалЪ, только боюсь ваш препод этот код не примет...
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 7
19.12.2012, 19:39  [ТС]
Цитата Сообщение от Charles Kludge Посмотреть сообщение
Дык, я-то уже давно написалЪ, только боюсь ваш препод этот код не примет...
примет! Он молодй и приветствует разные подходы к программированию. Самое главное это понимать полностью код и умеють обьяснить. Вот это все что нужно !

Добавлено через 7 минут
а если даже так , то Вы не знаете как реализовать приемлимым для учебы кодом ? )))

Добавлено через 3 часа 0 минут
У меня есть такая программа!
Она пойдет как резидентная ?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
model small
stack 100h
codeseg
start:
m0:mov ah,10h
int 16h
cmp ah,2Ch
je m2
cmp ah,2Dh
je m1
jmp exit
m1: mov ah,01h
mov ch,00h
mov cl,07h
int 10h
jmp exit
m2: mov ah,01h
mov ch,00h
mov cl,03h
int 10h
exit:
end start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2012, 19:39
Помогаю со студенческими работами здесь

Как использовать макрос, который увеличивает/уменьшает картинку при щелчке на ней
Внизу приведён макрос, который нашёл на просторах инета, и он почему-то не запускается. А макрос должен увеличивать/уменьшать картинку...

Как сделать чтоб во время работы программы при нажатии определенных клавиш изменялось значение некоторых переменных?
Как сделать чтоб во время работы программы при нажатии определенных клавиш на клавиатуре изменялось значение некоторых переменных? ...

Резидентная программа: при нажатии Ctrl+A сменить атрибуты файла на "только чтение"
Здраствуйте, есть программа на ассемблере, при нажатии Стрл+А меняет атрибуты файла на только чтение model small stack 100h ...

Резидентная программа: запись всех нажатия клавиш в файл (KeyLog)
Здравствуйте, помогите пожалуйста разобраться с написание резидентных программ. Мне поставлена задача написания резидентной программы,...

Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра.
Помогите,плиз... Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru