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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2009, 18:29   #1
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
Восклицание ассемблер. прерывание INT21H

пишу в QC, нужно Написать функцию для чтения / установки системного време¬ни. Прототип функции:
void var3(int •hour, int *min. int *sec, int flag);
hour- часы
min - минуты
sec - секунды
flag - Режим работы: 0 - чтение времени,
1 - установка времени

вот файл c.c:
Код:
#include <stdio.h>
extern int func(int *hour, int *min, int *sec, int *flag);
void main()

{
  

  int num=0, hour, min, sec, flag;


  printf("\n flag-> ");
  scanf("%d" , &flag);


if (flag==0)

{
  func(hour, min, sec, flag);

  printf("\n Finish");
  printf("\n hour ->: %d", hour);
  printf("\n min ->: %d", min);
  printf("\n sec -> %d", sec);
  getch();
}
  
else
{



  printf("\n hour-> ");
  scanf("%d" , &hour);

  printf("\n min-> ");
  scanf("%d", &min);

  printf("\n sec: ");
  scanf("%d", &sec);

func(hour, min, sec, flag);
}
 

  getch();
}
вот asm1.asm :

Код:
.MODEL SMALL,C
.STACK 4056
.CODE
PUBLIC func
func proc near c hour: word, min: word, sec: word, flag: word

start:

cmp flag,0
je label1

;install

mov ch, hour
mov cl, min
mov dh, sec
mov ah, 2dh
int 21h



;read
label1:
mov ah, 2ch
int 21h
mov  hour,ch
mov  min,cl
mov  sec,dh

func ENDP

end
делаю файл asd.mak в среде но прога не работает, время не устанавливает и выводит время странно например hour равно 1823, помогите доделать...

Последний раз редактировалось blackbanny; 29.10.2009 в 18:35.
blackbanny вне форума Ответить с цитированием
Старый 29.10.2009, 18:38   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

А если sec,min и hour обьявлять как char, а не int и в асм программе соответственно как byte, а не word?
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 29.10.2009, 20:09   #3
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

не работает, если объявляем char, то надо scanf("%s" , hour); (%s писать?)
blackbanny вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывание приложения cherry25 БД в Delphi 6 21.08.2009 08:34
6 прерывание ленусик Фриланс 1 03.06.2008 16:22
6 прерывание ленусик Помощь студентам 5 30.05.2008 16:57
прерывание int21-02 sergei64_89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 27.05.2008 19:24