Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Assembler masm http://www.cyberforum.ru/assembler/thread1088873.html
помогите решить пожалуйста (masm) С помощью клавиш курсора осуществляется движение «кисти» по экрану. Цифровые клавиши 0..9 переключают цвет «кисти».
Адресация памяти с шириной шины больше 32 бит Assembler
Доброго времени суток Всем! Хотел бы узнать, как проверить наличие возможности реализации в процессоре адресации памяти с шириной шины больше 32 бит? Какие прерывания нужно использовать и какие биты...
Assembler Assembler
Надо 2 решение . 1 без факториала. 2 с факториалом. По примеру: model small .stack 100h .data mes2 db 0ah,0dh,'vivod:',0ah,0dh,'$' a db n dup(0) .code start:
Assembler Не ищется функция LoadBitmap Всем доброго времени суток, Проблема такая: не ищется функция LoadBitmap из gdi32.lib отрывок из программы extern LoadBitmap@8:near includelib c:\masm32\lib\gdi32.lib При линковке пишет http://www.cyberforum.ru/assembler/thread1082871.html
Assembler Проверка на загрузку с дисковода http://www.cyberforum.ru/assembler/thread1080990.html
Доброго всем времени суток! У меня задание узнать установлена ли загрузка с дисковода. Помогите разобраться как это сделать... в интернете искал, ничего подобного нету...даже не знаю какие функции...
Экзамен по ассмеблеру Assembler
Очень нужна помощь :help: :help:, у меня экзамен по ассемблеру! не понимаю его совсем %-)... нужно ответить на вопросы.. помогите пожалуйста. :cry: Вопросы на фото, нужны только примеры которые...
Assembler for на ассемблере
for(int i=0;i<=2;i++) { CAN_Frame = Tail; // записываем в CAN_Frame 3 байта Tail tm = i; }//for i tm = tm + 1; CAN_Frame=Tail&0xE0; // записываем в CAN_Frame 3...
Assembler Разработать программу, которая не реагирует на нажатия клавиш Ctrl+Break и Ctrl+C И мне помогите пожалуйста)) На входном языке Assembler разработать программу, которая не реагирует на нажатия клавиш Ctrl+Break и Ctrl+C. Выход из программы по нажатию клавиши Esc, при разработке... http://www.cyberforum.ru/assembler/thread1076801.html
Assembler Ханойские башни http://www.cyberforum.ru/assembler/thread1073841.html
Ребят срочно помогите пожалуйста, как написать код игры на assemblere Ханойские башни или может у кого нибудь есть?
Assembler Обработчик прерываний Необходимо сделать так, чтобы каждое второе нажатие игнорировалось. Почему то этого не происходит. Помогите кто может, очень срочно надо .model small .stack 100h .code .186 start: jmp init ... http://www.cyberforum.ru/assembler/thread1073586.html
Lexa44
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 31
0

Нужно сделать чтобы сигнал сам выключался через 15 секунд

06.02.2014, 19:51. Просмотров 825. Ответов 4
Метки (Все метки)

Нужно сделать чтобы сигнал сам выключался примерно секунд через 15, как сделать не знаю писал не я(. Очень нужно помогите.
файлы здесь time.zip

Добавлено через 38 минут
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
.286
.model small
.stack  100h
.data
    TIME        db  '00:00:00',13,10,10,'$'
    msg1    db  'PROGRAMM < ALARM >',13,10,'ESC exit',13,10,'$'
    msg2    db  'PLEASE ENTER ALARM TIME :$'
    msg3    db  13,10,'WAIT$'
    count   db  0   ;счетчик введенных цифр
    pos     dw  0   ;позиция курсора
    TIMER   dw  0   ;переменная заданного времени
.code
org 100h
start:
    mov ax,@data
    mov ds,ax
 
    mov ax,3        ;очистить экран
    int 10h
    
    call    GETTIME ;вызвать процедуру взятия текущего времени
    
    lea dx,TIME
    mov ah,09h
    int 21h     ;вывести время на экран
    
    lea dx,msg1
    mov ah,09h
    int 21h     ;вывод сообщений
    
    lea dx,msg2
    mov ah,09h
    int 21h
    
    mov ah,01   ;
    mov cx,2000h    ;ch=столбец cl-строка
    int 10h     ;убрать курсор (что бы не мерцал)
    ;цикл вывода времени и ввода таймера
L1:
    mov ah,03
    int 10h     ;взять текущее положение курсора
    mov pos,dx  ;сохранить позицию курсора
    
    mov dx,0        ;строка и столбец =0
    mov ah,02
    int 10h     ;установить курсор на начало 
    
    call    GETTIME ;взять текущее время
    lea dx,TIME
    mov ah,09h
    int 21h     ;вывести время 
    
    mov dx,pos  ;dx=сохраненная позиция курсора
    mov ah,02
    int 10h     ;установить курсор на прежнюю позицию
 
    mov ah,06h
    mov dl,-1       ;= 0ffH запрос ввода со стандартного ввода
    int 21h     ;считать нажатую клавишу в al
    jz  L1
    cmp al,27   ;если esp 
    je  exit        ;на выход
    cmp count,4 ;сравнить счетчик ввода
    jae L1      ;если больше 4 то таймер введен
    inc count   ;счетчик +1
    mov dl,al       ;поместить в dl нажатый символ
    mov ah,02h  
    int 21h     ;вывести на экран символ
    
    mov ax,TIMER    ;поместить текущее значение таймера
    rol ax,4        ;сдвиг влево на 4 бита
    sub dl,'0'      ;преобразовать символ в цифру
    or  al,dl       ;добавить к al
    mov TIMER,ax    ;сохранить в переменную
    cmp count,2 ;сравнить счетчик с введеными 2 символами
    jne next        ;продолжить если не равно
    mov dl,':'      ;вывести разделитель
    mov ah,02h
    int 21h     ;вывод символа ':'
next:   
    cmp [count],4   
    je  setalarm    ;если введены 4 символа установить таймер
    jmp L1      ;иначе продолжать цикл ввода и вывода времени
setalarm:   
    lea dx,msg3 ;вывести wait
    mov ah,9
    int 21h
    ;замена вектора  прерывания 4Ah на процедуру ALARM
    push    ds              ;сохраняем сегмент данных
    mov ax,seg ALARM        ;AX=сегмент процедуры 
    mov ds,ax           ;поместить  в DS
    mov dx,offset ALARM ;берем смещение процедуры
    mov al,4Ah          ;номер изменяемого вектора
    mov ah,25h          ;функция изменения вектора
    int 21h             ;поменять вектор
    pop ds              ;восстанавитьсегмент данных
    
    ;установить сигнал часов
    ;В указанное время вызывается пользовательская программа 
    ;по вектору прерывания INT 4aH
    xor dx,dx           ;DH    = секунды в коде BCD
    mov cx,TIMER            ;CH,CL = часы,минуты в коде BCD
    mov ah,06h          
    int 1Ah             ;установить сигнал часов
    inc [count]         ;увеличить счетчик 
    jmp L1              ;перейти в начало цикла
    
    
exit:
    mov ax,4c00h            ;завершить программу
    int 21h
 
;взятие времени
GETTIME proc 
    mov ah,02h
    int 1Ah             ;взять время ch=часы cl=минуты в формате BCD
    push    cx              ;сохранить в стек
    lea si,TIME         ;адрес переменной
    mov cl,ch               ;в ch и сl часы
    and cx,0FF0h            ;преобразовать в неупакованное BCD 
    ror cl,4                ;сдвиг младшей цифры часа на 4 вправо
    add cx,'00'         ;преобразовать в ASCII символы
    mov word ptr [si],cx        ;записать в переменную
    
    pop cx              ;восстановить cx из стека
    mov ch,cl               ;в ch и сl минуты
    and cx,0FF0h
    ror cl,4
    add cx,'00'         ;преобразовать в ASCII
    mov word ptr [si+3],cx  ;сохранить на место минут в time
    
    mov dl,dh           ;в dh и dl секунды
    and dx,0FF0h
    ror dl,4
    add dx,'00'
    mov word ptr [si+6],dx  ;сохранить в time на место секунд
    ret
GETTIME endp
 
;сигнал
ALARM proc far              ;FAR-дальний вызов
    mov  cx,10000 
beep:
    in  al,61h          ;получим значение порта 61h в al
    or  al,3                ;инициализируем динамик и подаем ток в порт 61h
    out 61h,al
    mov dx,50000            ;внутренний цикл задержка
    dec dx              ;отнимать от dx
    jnz $-1             ;перейти на dec dx
    and al,0FCh         ;выключить динамик
    out 61h,al          ;в порт 61h
    loop    beep
    iret            ;возврат из аппаратного прерывания
ALARM endp
 
end start


Вернуться к обсуждению:
Нужно сделать чтобы сигнал сам выключался через 15 секунд
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2014, 19:51
Готовые ответы и решения:

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

Как сделать, чтоб при отключении электроэнергии в сети и переводе энергии на аккумулятор, сервер сам выключался не аварийно
Сервер windows 2008 r2 подключен к ИБП как сделать, чтоб при отключении электроэнергии в сети и...

Как сделать чтобы кнопка появлялась через 10 секунд?
Я пишу сайт, и мне надо чтобы при открытии сайта через несколько секунд выскакивала кнопка(это...

Нужно сделать перенаправление страницы через n секунд
Как перенаправить на другую страницу я знаю(header(refresh)), но в данной задаче нужно показывать в...

Как сделать так, чтобы комп не выключался?
Уважаемые форумчане помогите решить одну задачу... У меня ноутбук с операционкой Windows XP хочу...

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.