Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
name06
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 17
1

Какое время будет через 1 час 20 минут? (tasm, com-файл)

20.01.2016, 20:02. Просмотров 1020. Ответов 3
Метки нет (Все метки)

Написать на языке ассемблер com-программу, которая позволит вывести данные про то, какое время будет через 1 час и 20 минут. Помогите с решением
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2016, 20:02
Ответы с готовыми решениями:

Какое время будет показывать часы через p часов q минут r секунд?
Собственно дана вот такая задачка: Текущее показание электронных часов: m (0<=m<=23) : n...

Какое время будут показывать часы через p-час, q-мин, r-сек
Условие вложено в "Doc1.docx": \ln \begin{vmatrix}\left(y-\sqrt{|x|}...

Какое время будут показывать часы через p-часов, d-минут
Помогите решить задачки пожалуйста....заранее большое спасибо линейные алгоритмы. 1.Текущее...

Какое время будут показывать часы через p часов q минут r секунд?
Ребят, пожалуйста подскажите. 1)Текущее показание электронных часов: m ч (0≤m≤23) n...

3
R71MT
4620 / 1718 / 331
Регистрация: 29.07.2014
Сообщений: 2,701
Записей в блоге: 5
21.01.2016, 00:13 2
Ты хоть напиши, как считываешь время, что предпринял сам для решения этой задачи и т.д.
Если самому не интересно, то зачем занимаешься этим? Кидай свои наработки...
1
mambat
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 9
27.01.2016, 03:50 3
Наткнулся на похожее задание, смог вывести время и дату, но не знаю как добавить к этому времени 1 час и 20 минут
Помогите решить эту задачу

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
model tiny  
.186                        
.code
org 100h
.startup
         mov al,2
        mov ah,00h                          ;очистка екрана
        int 10h
;-----------------------------------------------------
;получаем дату
  mov ah,2ah
  int 21h
;вывод дня
  mov al,dl
  xor ah,ah
  call OutNumber
;вывод месяца
  mov al,dh
  xor ah,ah
  call OutNumber
;вывод года
  mov ax,cx
  call OutNumber
;----------------------------------------------------------------
mov ah,02h                               ;Время
int 1ah
                                           ;часы
mov al,ch
        call first
        call sumbol
 
mov al,ch
        call second
        call sumbol
 
mov al,58                                ;выведение двоеточия
call sumbol
 
 
mov al,cl                                ;минуты
        call first
        call sumbol
 
mov al,cl
        call second
        call sumbol
mov al,58                               ;выведение двоеточия    
call sumbol
mov ah,02h                             ;секунды
int 1ah
mov ch,dh
mov al,ch
        call first
        call sumbol
mov al,ch
        call second
        call sumbol
;------------------------------Procedyru----------------------
First proc                      ;перекодировка первой цифры
        and al,0f0h                 ;умножаем регистр al на маску 0f0h 
        shr al,4                        ;сдвигаем на 4 бита вправо
        lea bx,tabl                 ;загружаем в BX адресс смещения таблицы
        xlat                        ;получаем соответствующий код символа из таблицы 
                                            ;помещенный в AL
        ret                     
First endp
Second proc                     ;процедура аналогична предыдущей только другая 
        and al,0fh                  ;маска, перекодирование второй цифри  из AL
        
        lea bx,tabl
        xlat
        ret
Second endp
sumbol proc                     ;вывод символа на экран,который находится в АЛ
        lea bx,Got                  ;загрузка адресса смещения GOT
        mov [bx],al                 ;запись по загруженному адрессу зачения AL
        mov dx,bx                   ;вывод символа на экран
        mov ah,9h
        int 21h
        ret
sumbol endp
;подпограмма вывода числа в десятичной системе
OutNumber:
  pusha
;устанавливаем систему и счетчик цифр
  mov bx,10
  xor cx,cx
;делим на основание системы
isDiv:  xor dx,dx
  div bx
;запоминаем в стеке и увеличиваем счетчик цифр в стеке
  push dx
  inc cx
;повторяем пока Ах не равно 0
  or ax,ax
  jnz isDiv
;извлекаем из сткека число
isOut:  pop ax
;переводим его в символ
  or ax,30h
;выводим
  int 29h
  loop isOut
;выводим разделяющий пробел
  mov al,20h
  int 29h
  popa
  ret 
;----------------------------------------------------------------------
        RET
Got db 1 dup (' '),'$'      ;буфер для одного символа
DEN db ' Nedilya  $ Ponedilok$ Vivtorok $ Sereda   $ Chetver  $ Pyatnucya$ Subota   $' 
Mis db ' Sichen  $ Lyutuy  $ Berezen $ Kviten  $ Traven  $ Cherven$ Lupen   $ Serpen  $ Veresen $ Ghovten $ Lustopad$ Gruden  $'            ; наперед підготовлені строки
tabl        db '0123456789'             ;таблица
end
0
R71MT
4620 / 1718 / 331
Регистрация: 29.07.2014
Сообщений: 2,701
Записей в блоге: 5
27.01.2016, 10:20 4
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Код
ADJUSTMENT TIME: 01:20
=======================
   CURRENT TIME: 12:11
    FUTURE TIME: 13:31
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
ORG 100h
JMP start
 
mess0   DB  13,10,'ADJUSTMENT TIME: 01:20'
        DB  13,10,'======================='
        DB  13,10,'   CURRENT TIME: $'
mess1   DB  13,10,'    FUTURE TIME: $'
 
start:
;------- получить/вывести время (BCD формат) ----------------//
   MOV   AH,9           ;
   MOV   DX,mess0       ;
   INT   21h            ;
   MOV   AX,0200h       ; fn(2) INT-1Ah
   INT   1Ah            ;
   PUSH  CX             ; сохраняем выхлоп функции
   CALL  PRINT.TIME     ; выводим текущее время
                        ;
   MOV   AH,9           ;
   MOV   DX,mess1       ;
   INT   21h            ;
   POP   CX             ; СН = часы, CL = минуты
 
;------- расчитываем разницу --------------------------------//
   ADD   CX,0120h       ; разница во-времени..
   CMP   CL,59h         ; минута не вылетела в космос?
   JBE   @@1            ; меньше/равно - пропускаем
   SUB   CL,60h         ; иначе: коррекция минут
   INC   CH             ;        и час +1
@@1:                    ;
   CMP   CH,23h         ; час не вышел за предел?
   JBE   @@2            ;
   SUB   CH,23h         ; коррекция для часа
@@2:                    ;
   CALL  PRINT.TIME     ; выводим получившееся время на экран
 
exit:
   XOR   AX,AX
   INT   16h
   INT   20h
 
;ннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн
PRINT.TIME:             ;
   PUSHA                ;
   AND   AX,0           ; АХ = 0
   MOV   AL,CH          ; AL = текущий час в BCD
   MOV   BX,16          ; выводим его на экран как-есть (в HEX)
   CALL  HEX2ASC        ;
   MOV   AL,':'
   INT   29h
   AND   AH,0           ;
   MOV   AL,CL          ; AL = текущая минута
   MOV   BX,16          ;
   CALL  HEX2ASC        ;
   POPA                 ;
RET
 
HEX2ASC:                ; вывод беззнаковых чисел на экран
   PUSHA                ; на входе: ВХ = система счисления
   XOR   CX,CX          ;           AX = число
isDiv:                  ;
   XOR   DX,DX          ;
   DIV   BX             ;
   PUSH  DX             ;
   INC   CX             ;
   OR    AX,AX          ;
   JNZ   isDiv          ;
isOut:                  ;
   POP   AX             ;
   CMP   AL,9           ;
   JLE   noHex          ;
   ADD   AL,7           ;
noHex:                  ;
   ADD   AL,30h         ;
   INT   29h            ;
   LOOP  isOut          ;
   POPA                 ;
RET                     ;
;============================ E O F ======================================|
1
27.01.2016, 10:20
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 10:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Какое время будут показывать часы через р часов q минут r секунд?
Текущее показание электронных часов: h часов (0 ≤ h ≤ 23) m минут (0 ≤ m ≤ 59) s...

Какое время будут показывать часы через p часов q минут r секунд?
Доброго времени суток, тут такая проблемка нарисовалась: Текущее показание электронных часов: m...

Через какое время период вращения диска будет равен 0,01с?
К ободу первоначально покоившегося однородного диска с радиусом r=0,5м и с массой m=50кг приложена...

Через какое время в из 3-х амёб будет 100, если они делятся каждые 3 часа
Одноклеточная амеба каждые 3 часа делится на 2 штуки.Через какое время в колбе будет 100 амеб,если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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