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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 08:54   #1
demon2321
 
Регистрация: 07.03.2011
Сообщений: 7
Восклицание Таймер (TASM)

Вводим с клавиатуры число в секундах, программа просто ждет это время и после делает выход!

Вот пример, но у меня почему-то он не работает(((
Цитата:
.model small
.stack 100h
.data

cr equ 0Dh ; \r
lf equ 0Ah ; \n

String db 'Kursovaya rabota', lf, cr, '$'
String2 db '"Systemnoe programmnoe obespechenie"', lf, cr, '$'
String3 db 'Studenta gruppy "ASOI-438"', lf, cr, '$'
String4 db 'Safina Rustama Faritovicha', lf, cr, '$'
String5 db 'Variant 18.2.2.2.2', lf, cr, '$'
String6 db lf, cr, 'Nazhmite klavishu dlya prodolzheniya...', lf, cr, '$'

String_init db 'Schityvanie vremeni', lf, cr, '$'

String_alarm db 'Zvonok!', lf, cr, '$'

.code
main:

mov dx, 03DAh ; Установка видеорежима
mov al, 10h
out dx, al
int 10h

mov dx, 03C0h ; Установка значения регистра видеоадаптера
mov al, 00h
out dx, al
int 10h

mov ax, @data ; Настройка сегментного регистра
mov ds, ax

mov ah, 09h ; Вывод текста

lea dx, String
int 21h
lea dx, String2
int 21h
lea dx, String3
int 21h
lea dx, String4
int 21h
lea dx, String5
int 21h
lea dx, String6
int 21h

mov ah, 00h ; Задержка до нажатия клавиши
int 16h

;начало очистки экрана
mov AX, 0600h ; AH=06 (прокрутка), AL=00 (весь экран)
mov BH, 07 ; нормальный атрибут (черно/белый)
mov CX, 0000 ; верхняя левая позиция
mov DX, 184fh ; нижняя правая позиция
int 10h ; вызов BIOS


mov ah, 09h ; Вывод текста "Считывание времени"
lea dx, String_init
int 21h

mov ah, 02 ; Чтение текущего времени -> секунды в DH
; INT 4aH
int 1Ah

mov ah, 06 ; Установка таймера
add dh, 5 ; Через 5 секунд
int 1Ah

push ds

lea dx, new_4a
MOV AX,SEG new_4a ;сегмент процедуры
MOV DS,AX ;помещаем в DS
mov ah,25h
mov al,4Ah
int 21h
pop ds

mov ah, 07 ; Сброс таймера
int 1Ah

mov ah, 00h ; Задержка до нажатия клавиши
int 16h

new_4a proc FAR
push AX
mov ah, 09h
lea dx, String_alarm
int 21h
pop AX

;MOV AL,20H ;эти две строки надо использовать
;OUT 20H,AL ;только для аппаратных прерываний
IRET
new_4a endp

exit:

mov ah, 49h ; Освобождение памяти
int 21h
mov ah, 4Ch ; Выход
int 21h

end main
demon2321 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TASM дело тонкое!:) (Где в TASM IDE?) 3.14oner Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 15.11.2011 16:20
ассемблер. tasm alex(21) Помощь студентам 5 20.03.2011 23:50
TASM Hant111 Фриланс 5 23.03.2010 21:54
TASM romale Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 16.12.2009 23:03
Регистры в TASM Piksel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 29.12.2008 09:28