Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 3
1

Вывод системной даты, времени и даты ближайшего воскресенья

27.05.2013, 10:03. Показов 1992. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вот исходный код
выводит дату время
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
.Model Small
.486p
.Stack 100h
.Data
 
 wNumOff DW 10 Dup(0)      ;Смещение строки, где будет содержаться печатаемое число
 bNewLine DB 13, 10, '0'   ;Переменная для перехода на новую строчку в файле
 
 oclock db '0$'            ;Объявляем переменные для вывода
 hours db ' з*б®ў $'
 minutes db ' ¬Ё*гв $'
 seconds db ' ᥪг*¤ $'
 year db ' Ј®¤ $'
 mounth db ' ¬Ґбпж $'
 chislo db ' зЁб«® $'
 datta db '‘ҐЈ®¤*п: $'
 time db '‚६п: $'
 perehod db 13, 10, '$'
 Stolbec db  1             ;номер строки
 Stroca db  1              ;номер столбца
 string1 db 6 dup (?),'$'  ;буфер для хранения ASC2
 
.Code
 
Start:
 
 Mov AX, @Data
 Mov DS, AX    ;Инициализация сегмента данных
 
 Mov AX, 3h
 Int 10h       ;Очистка экрана
 
 Mov AH, 2Ch   ;Получение времени
 Int 21h
 
 mov ah,09h
 mov dx,offset time
 int 21h
 
 CMP CH, 0
 JE Usl
 
 Xor EAX, EAX  ;Вывод часов
 Mov AL, CH
 Call Num_Out
 JMP EndUsl
 Usl:
 Mov AH,09h
 Mov DX,offset oclock
 Int 21h
 EndUsl:
 
 mov ah,09h
 mov dx,offset hours
 int 21h
 
 Mov AH, 2Ch   ;Получение времени
 Int 21h
 
 Xor EAX, EAX  ;Вывод минут
 Mov AL, CL
 Call Num_Out
 
 mov ah,09h
 mov dx,offset minutes
 int 21h
 
 Xor EAX, EAX  ;Вывод секунд
 Mov AL, DL
 Call Num_Out
 
 mov ah,09h
 mov dx,offset seconds
 int 21h
 
 mov ah,09h    ;Переход на следующую строку
 mov dx,offset perehod
 int 21h
 
 mov ah,09h
 mov dx,offset datta
 int 21h
 
;Чтение системной даты
 
 MOV  AH, 2AH  ;Функция чтения даты.
 INT  21H      ;CX -год, DH - месяц, DL-день
 mov ax, cx    ;сохраним месяц и день в AX
 push dx       ;сохраним в стеке месяц и день
 call DEC_ASC2 ;переведем год в ASC2
 
 Mov AH, 2Ah   ;Получение даты
 Int 21h
 
 Xor EAX, EAX  ;Вывод числа
 Mov AL, DL
 Call Num_Out
 
 mov ah,09h
 mov dx,offset chislo
 int 21h
 
 Mov AH, 2Ah   ;Получение даты
 Int 21h
 
 Xor EAX, EAX  ;Вывод месяца
 Mov AL, DH
 Call Num_Out
 
 mov ah,09h
 mov dx,offset mounth
 int 21h
 
 
;Выведем год на экран
 
 mov Stolbec, 26
 mov Stroca,1
 call Superkursor
 LEA  DX, string1 ;в DX - адрес строки
 MOV  AH, 09H     ;Прерывание DOS
 INT  21H         ;для вывода на экран
 
 mov ah,09h
 mov dx,offset year
 int 21h
 
 
 
 Mov AH, 10h
 Int 16h          ;Ожидание нажатия любой клавиши
 
 Mov AH, 4Ch
 Int 21h          ;Выход в DOS
 
;Процедуры
 
Num_Out Proc Near   ;Процедура вывода данных на экран
 ;Uses EAX, EBX, ECX, EDX
 
 Xor DI, DI         ;В DI будет длина выводимого числа
 Mov ECX, 10        ;Задаем делитель
 
 Push EAX           ;Вычисляем длину выводимого числа
 Next_Length:
 
 Xor EDX, EDX
 Div ECX
 Inc DI
 
 Cmp EAX, 0
 JNZ Next_Length
 Pop EAX            ;Вычислили длину (В DI)
 
 Mov SI, wNumOff
 Add SI, DI
 Inc SI
 
 Next_Num:
 
 Xor EDX, EDX
 Div ECX
 Add DL, '0'
 Mov Byte PTR [SI], DL
 
 Dec SI
 
 Cmp EAX, 0
 JNZ Next_Num
 
 Inc SI
 
 Mov AH, 40h
 Mov BX, 1
 Mov CX, DI
 Mov DX, SI
 Int 21h       ;Записали число на экран
 
 Ret
 
 Num_Out EndP  ;Конец процедуры
 
;Процедура позиционирования курсора
 
Superkursor proc
 MOV  AH,2
 MOV  BH,0
 MOV  DH,Stroca
 mov  DL,Stolbec
 
 INT  10H
 
 ret
Superkursor endp
 
;Процедура преобразования кода в ASC2
;Берет значение из регистра AX переводит в ASC2 и помещает в буфер string1
 
DEC_ASC2 proc
 
 xor dx,dx
 mov SI,0
 mov bx, 10
 xor cx, cx
 WS_calc_loop:
 xor dx, dx
 div bx
 or dx, '0'
 push dx
 inc cx
 test ax,ax
 jnz WS_calc_loop
 WS_form_loop:
 pop ax
 mov string1[si],al
 inc si
 loop WS_form_loop
 inc si
 mov string1[si],'$'
 
 ret
 
DEC_ASC2 endp
 
End Start  ;Конец программы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 10:03
Ответы с готовыми решениями:

Вывод системной даты и времени
Вывести системное время и дату Помогите пожалуйста исправить ошибки в программе код программы:...

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

Надо дописать!Ассемблер вывод системной даты,времени и даты ближайшего воскресенья
вот исходный код .Model Small .486p .Stack 100h .Data wNumOff DW 10 Dup(0) ;Смещение...

Определите дату ближайшего воскресенья от заданной даты
2. Определите дату ближайшего воскресенья от заданной даты.

2
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
27.05.2013, 10:15 2
Albert_winkelho,
Assembler
1
2
3
4
5
6
7
8
hours db ' з*б®ў $'
 minutes db ' ¬Ё*гв $'
 seconds db ' ᥪг*¤ $'
 year db ' Ј®¤ $'
 mounth db ' ¬Ґбпж $'
 chislo db ' зЁб«® $'
 datta db '‘ҐЈ®¤*п: $'
 time db '‚६п: $'
это так специально задумано? чтобы помогали быстрее? а у меня сразу желание помогать пропало
0
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 3
27.05.2013, 18:23  [ТС] 3
прошу прощения=)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
.Model Small
.486p
.Stack 100h
.Data
 
 wNumOff DW 10 Dup(0)      ;Смещение строки, где будет содержаться печатаемое число
 bNewLine DB 13, 10, '0'   ;Переменная для перехода на новую строчку в                              файле
 
 oclock db '0$'            ;Объявляем переменные для вывода
 hours db ' hours $'
 minutes db ' minutes $'
 seconds db ' seconds $'
 year db ' year $'
 mounth db ' month $'
 chislo db ' date $'
 datta db 'Today: $'
 time db 'Time: $'
 perehod db 13, 10, '$'
 Stolbec db  1             ;номер строки
 Stroca db  1              ;номер столбца
 string1 db 6 dup (?),'$'  ;буфер для хранения ASC2
 
.Code
 
Start:
 Mov AX, @Data
 Mov DS, AX    ;Инициализация сегмента данных
 
 Mov AX, 3h
 Int 10h       ;Очистка экрана
 
 Mov AH, 2Ch   ;Получение времени
 Int 21h
 
 mov ah,09h
 mov dx,offset time
 int 21h
 
 CMP CH, 0
 JE Usl 
Xor EAX, EAX  ;Вывод часов
 Mov AL, CH
 Call Num_Out
 JMP EndUsl
 Usl:
 Mov AH,09h
 Mov DX, offset oclock
 Int 21h
 EndUsl:
 
 mov ah,09h
 mov dx, offset hours
 int 21h
 
 Mov AH, 2Ch   ;Получение времени
 Int 21h
 
 Xor EAX, EAX  ;Вывод минут
 Mov AL, CL
 Call Num_Out
 
 mov ah,09h
 mov dx, offset minutes
 int 21h
 
 Xor EAX, EAX  ;Вывод секунд
 Mov AL, DL
 Call Num_Out
 
 mov ah,09h
 mov dx, offset seconds
 int 21h
 
 mov ah,09h    ;Переход на следующую строку
 mov dx, offset perehod
 int 21h
 
 mov ah,09h
 mov dx, offset datta
 int 21h
 
;Чтение системной даты
 
 MOV AH, 2AH   ;Функция чтения даты.
 INT 21H       ;CX -год, DH - месяц, DL-день
 mov ax,cx     ;сохраним месяц и день в AX
 push dx       ;сохраним в стеке месяц и день
 call DEC_ASC2 ;переведем год в ASC2   
 
 
Mov AH, 2Ah    ;Получение даты
 Int 21h
 
 Xor EAX, EAX  ;Вывод числа
 Mov AL, DL
 Call Num_Out
 
 mov ah,09h
 mov dx, offset chislo
 int 21h
 
 Mov AH, 2Ah   ;Получение даты
 Int 21h
 
 Xor EAX, EAX  ;Вывод месяца
 Mov AL, DH
 Call Num_Out
 
 mov ah,09h
 mov dx, offset mounth
 int 21h
 
 
;Выведем год на экран
 
 mov Stolbec,24
 mov Stroca,1
 call Superkursor
 LEA  DX, string1   ;в DX - адрес строки
 MOV  AH, 09H       ;Прерывание DOS
 INT  21H           ;для вывода на экран
 
 mov ah,09h
 mov dx, offset year
 int 21h    
 
Mov AH, 10h
 Int 16h            ;Ожидание нажатия любой клавиши
 
 Mov AH, 4Ch
 Int 21h            ;Выход в DOS
 
;Процедуры
 
Num_Out Proc Near   ;Процедура вывода данных на экран
 ;Uses EAX, EBX, ECX, EDX
 
 Xor DI, DI         ;В DI будет длина выводимого числа
 Mov ECX, 10        ;Задаем делитель 
Push EAX            ;Вычисляем длину выводимого числа
 Next_Length:
 
 Xor EDX, EDX
 Div ECX
 Inc DI
 
 Cmp EAX, 0
 JNZ Next_Length
 Pop EAX            ;Вычислили длину (В DI)
 
 Mov SI, wNumOff
 Add SI, DI
 Inc SI
 
 Next_Num:
 
 Xor EDX, EDX
 Div ECX
 Add DL, '0'
 Mov Byte PTR [SI], DL
 
 Dec SI
 
 Cmp EAX, 0
 JNZ Next_Num
 
 Inc SI
 
 Mov AH, 40h
 Mov BX, 1
 Mov CX, DI
 Mov DX, SI
 Int 21h       ;Записали число на экран
 
 Ret
 
 Num_Out EndP  ;Конец процедуры
 
;Процедура позиционирования курсора
Superkursor proc
 MOV  AH,2
 MOV  BH,0
 MOV  DH, Stroca
 mov  DL, Stolbec
 
 INT  10H
 
 ret
Superkursor endp 
;Процедура преобразования кода в ASCII
;Берет значение из регистра AX, переводит в ASCII и помещает в буфер string1
 
DEC_ASC2 proc
 
 xor dx,dx
 mov SI,0
 mov bx, 10
 xor cx, cx
 WS_calc_loop:
 xor dx, dx
 div bx
 or dx, '0'
 push dx
 inc cx
 test ax,ax
 jnz WS_calc_loop
 WS_form_loop:
 pop ax
 mov string1[si],al
 inc si
 loop WS_form_loop
 inc si
 mov string1[si],'$'
 
 ret
 
DEC_ASC2 endp
 
End Start  ;Конец программы
0
27.05.2013, 18:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2013, 18:23
Помогаю со студенческими работами здесь

Вывод во временную таблицу значений системной даты и времени в столбец Х
Задание: Выведите во временную таблицу значение системной даты и времени в столбец Х Правильно ли...

Установка системной даты и времени (С++)
Срочно нужна программа, устанавливающая системную дату и время. Помогите, пожалуйста!

Синхронизация системной даты и времени с интернетом
При включении компа слетает дата и время. Я так понимаю батарейка сломана. Помогите как написать...

Не получается придумать решение для задачи: вывод даты следующего воскресенья
Здравствуйте. Задача состоит в том чтобы программа(C#) выводила дату следующего воскресенья при...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru