Автор Тема: системная дата  (Прочитано 2181 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Silver-Queen

  • Коллежский регистратор
  • *
  • Сообщений: 8
  • Репутация: 0
  • Пол: Женский
системная дата
« : ёоЭм 18, 2009, 12:49:23 am »
У меня две программы написаны:

Узнать системную дату:
include userv.mac

data segment   
 DAY DW ?
 MONTH DW ?
 YEAR DW ?
data ends

code segment
 assume cs:code, ds:data
 START:
MOV   AH,2AH       ;номер функции получения даты
   INT   21H          ;получение даты
   MOV   DAY,DL       ;день из DL
   MOV   MONTH,DH     ;месяц из DH
   ADD   CX,1980      ;добавляем базу к году
   MOV   YEAR,CX      ;получаем номер года

 
code ends

stack segment stack
dw 64 dup(?)
stack ends

end start
Установить системную дату:
include userv.mac

data segment   
 DAY DW ?
 MONTH DW ?
 YEAR DW ?
data ends

code segment
 assume cs:code, ds:data
 START:

   MOV   DL,DAY       ;помещаем день в DL
   MOV   DH,MONTH     ;помещаем месяц в DH
   MOV   CX,YEAR      ;помещаем год в CX
   SUB   CX,1980      ;берем смещение относительно 1980
   MOV   AH,2BH       ;номер функции установки даты
   INT   21H          ;установка даты
   CMP   AH,0FFH      ;проверяем успешность операции
   JE    ERROR        ;неверная дата, идем на обработку ошибки
 ERROR:
 U_MSG <13,10,"OWIBKA">
code ends

stack segment stack
dw 64 dup(?)
stack ends

end start
но они не работают почему то=(
если найдете ошибку скажите пожалуйста

Оффлайн Адамантэус

  • Коллежский советник
  • *****
  • Сообщений: 725
  • Репутация: 24
  • Пол: Мужской
  • Телезритель
Re: системная дата
« Ответ #1 : БХЭвпСам 12, 2009, 09:24:30 pm »
 Возможно у тебя не загружен системный драйвер который обслуживает эти функции, поэтому я бы посоветовал использовать вектор -1Ah (ROM REAL TIME CLOCK INTERRUPT).

Оффлайн Alexiski

  • Любитель давать советы
  • Надворный советник
  • *****
  • Сообщений: 307
  • Репутация: 15
  • Пол: Мужской
Re: системная дата
« Ответ #2 : БХЭвпСам 14, 2009, 03:25:39 am »
А кто будет регистр DS загружать?