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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 23:25   #1
J@GU@R
Новичок
Джуниор
 
Регистрация: 11.12.2009
Сообщений: 1
По умолчанию Пожалуйста помогите исправить программу!!!

Задача: по истечении часа как создан *.exe программа должна выдавать сообщение, что программа не работает, до часа использования соответственно ,что работает....
Листинг прилагается
model small
.stack 80h
.data
file_name db '4.exe',0
true_msg db 'programma rabotaet!$'
fail_msg db 'programma ne rabotaet!$'
.code
start:
mov ax,@data
mov ds,ax
mov ax,3d00h
lea dx,file_name
int 21h
mov ax,5700h
int 21h
mov ah,3eh
int 21h
push cx
mov ah,2ch
int 21h
pop dx
mov ax,cx
mov bx,dx
shr ax,5
shr bx,5
and ax,3fh
and bx,3fh
mov si,ax ;текущие минуты
mov di,bx ;минуты последнего доступа к файлу
mov ax,cx
mov bx,dx
shr ax,11 ;текущие часы
shr bx,11 ;часы последнего доступа к файлу
cmp ax,bx ;сравниваем часы
je i1
dec ax ; Отнимаем час от системного времени
cmp ax,bx ;сравниваем часы
jne no_run
cmp si,di
jb yes_run
jmp no_run
i1:
cmp si,di ;сравниваем минуты
jae yes_run

no_run:
lea dx,fail_msg
mov ah,9
int 21h
mov ah,1
int 21h
mov ax,4c01h
int 21h

yes_run:
lea dx,true_msg
mov ah,9
int 21h
mov ah,1
int 21h
mov ax,4c00h
int 21h

end start

БУДУ ОЧЕНЬ БЛАГОДАРЕН ...
J@GU@R вне форума Ответить с цитированием
Старый 12.12.2009, 21:51   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

в компиляторе есть предопределенные имена
??time
??date
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 12.12.2009, 22:59   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Мне кажется, что Вы сравниваете разные величины.
Функция 57h возвращает время в формате filetime, а функция 2Ch в формате чч:мм:сс
Для преобразования filetime есть алгоритм:

Код:
And CX, 001Fh
shl CX, 1
CX = секунды
And CX, 07E0h
Shr CX, 5
CX = минуты 
And CX, 0F800h
Shr CX, 11
CX = часы
Для получения даты:
Код:
And DX, 001Fh
DX = день
And DX, 01E0h
Shr DX, 5
DX = месяц 
And DX, 0FC00h
Shr DX, 9
Add DX, 07BCh
DX = год
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добрые люди! Помогите исправить программу! Lifefine Общие вопросы C/C++ 5 08.12.2009 01:35
Помогите исправить программу... Lifefine Общие вопросы C/C++ 1 29.10.2009 11:32
Помогите исправить программу kill301 Помощь студентам 1 01.06.2009 16:17
Пожалуйста!!!!Помогите исправить программу на Visual Basic Kate777 Помощь студентам 3 18.01.2009 18:51
помогите исправить программу со стрингами Ananim-Pbl6ak Помощь студентам 2 31.12.2008 00:32