С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Dinar32

Завершение работы программы при нажатии любой клавиши

17.03.2013, 17:26. Показов 2796. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте
у меня такая проблема писал прогу для имитации звука сирены, с ней я разобрался, теперь нужно чтобы при нажатии любой клавиши программа прекращала работу и завершалась. У меня завершается при нажатии всех клавиш кроме shift? alt? caps lock? printscreen. А надо чтобы при любых)
вот код
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
model   small
stack   100h
delay macro time
local   ext,iter
;макрос задержки, его текст ограничивается директивами macro и endm.
;На входе - значение задержки (в мкс)
 
push    cx
mov cx,time
ext:
push    cx
mov cx,6000
iter:
loop    iter
pop cx
loop    ext
pop cx
endm
.data    ;сегмент данных
tonelow dw  5000     ;нижняя граница звучания = 450 Гц
cnt db  0   
temp    dw  2651     ;верхняя граница звучания
.code    ;сегмент кода
main:    ;точка входа в программу
mov ax,@data    ;связываем регистр ds с сегментом
mov ds,ax    ;данных через регистр ax
xor ax,ax    ;очищаем ax
 
go:
;заносим слово состояния 10110110b(0В6h) в командный регистр (порт 43h)
mov al,0B6h
out 43h,al
in  al,61h   ;получим значение порта 61h в al
or  al,3     ;инициализируем динамик и подаем ток в порт 61h
out 61h,al
mov cx,2083  ;количество шагов ступенчатого изменения тона
musicup:
;в ax значение нижней границы частоты 
mov ax,tonelow
out 42h,al   ;в порт 42h младшее слово ax :al
xchg    al,ah    ;обмен между al и ah
out 42h,al   ;в порт 42h старшее слово ax:ah
add tonelow,1   ;повышаем тон
delay 10     ;задержка на 1 мкс
mov dx,tonelow  ;в dx текущее значение высоты
mov temp,dx  ;temp - верхнее значение высоты 
loop    musicup  ;повторить цикл повышения
mov cx,2083  ;восстановить счетчик цикла
musicdown:
mov ax,temp  ;в ax верхнее значение высоты
out 42h,al   ;в порт 42h младшее слово ax :al
mov al,ah    ;обмен между al и ah
out 42h,al   ;в порт 42h старшее слово ax :ah
sub temp,1   ;понижаем высоту
delay 10     ;задержка на 1 мкс
loop musicdown   ;повторить цикл понижения
nosound:
in  al,61h   ;получим значение порта 61h в AL
and al,0FCh  ;выключить динамик
out 61h,al   ;в порт 61h
mov dx,2651  ;для последующих циклов
mov tonelow,dx
mov ah,1 ;здесь то что я писал))))
int 16h
je go
jmp exit 
exit:
mov ax,4c00h    ;стандартный выход
int 20h
end main     ;конец программы
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2013, 17:26
Ответы с готовыми решениями:

При нажатии любой клавиши вывести на экран просьбу нажать эту клавишу еще раз
Нужно написать программу, которая при нажатии любой клавиши на выводит на экран просьбу на*жать эту клавишу еще раз. При повторном нажатии...

[MASM32] Завершение программы при нажатии на клавиатуре клавиши "стрелка вверх"
помогите, пожалуйста, сделать так, чтоб при нажатии клавиши стрелка вверх на клавиатуре консоль закрывалась .486 .model flat...

Завершение цикла при нажатии клавиши
Проигрывается звуковой файл зацикленно, пока не нажата любая клавиша. var q:string; const fname = 'tadamm1.wav'; ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2013, 17:26
Помогаю со студенческими работами здесь

При нажатии любой клавиши появляется картинка
Здравствуйте! У меня есть к Вам небольшой вопрос, мне нужно сделать так, чтобы при нажатии определенной клавиши появлялась картинка, как...

Отмена обработки данных при нажатии любой клавиши
При нажатии любой клавиши выполнять отмену обработки данных и выводить результат. Заранее спасибо)

Выход из бесконечного цикла в GraphABC при нажатии клавиши (любой)
Здравствуйте! У меня такая проблема: Дан цикл: uses GraphABC repeat ...... until false; end; При нажатии клавиши...

Как сделать выход из цикла при нажатии любой клавиши?
У меня Python 3.2.5 как сделать выход из цикла по нажатию любой клавиши!! зарание спасибо!

Как закрыть форму при нажатии любой клавиши на клавиатуре
Помогите пожалуйста..Как закрыть форму при нажатии любой клавиши на клавиатуре?


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru