Вывод даты (день месяца) в файл - Assembler

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток. в бинарный файл выводит дату не так как нужно (N.05.2016) предполагаю что просто число не "обработано" для вывода (вывод осуществляется в бинарный файл lab8end.txt) вот собственно и проблемка!
Листинг программы
  1. .model small
  2. .stack 100h
  3. .data
  4. c dw ?
  5. i dw ?
  6. j dw ?
  7. razmer equ 4
  8. razmer_1 equ 9
  9. massiv db 10 dup(?),'$'
  10. min db 10 dup(?),'$'
  11. hor db 4 dup(':'),'$'
  12. tim db 10 dup(?),'$'
  13. time db 10 dup('.'),'$'
  14. mas db 35 dup(?),'$'
  15. sum_1 db 20 dup(' '),'$'
  16. handle dw 0
  17. sum dw 0
  18. hour db 10 dup('.'),'$'
  19. fname db 'lab8end.txt',0
  20. FileName db 'Massiv.txt',0
  21. Ent db 0dh,0ah,10 dup(?),'$'
  22. Summa_2 db 0dh,0ah,'Kolichestvo polojitel elementov: ','$'
  23. FileNamee db 0dh,0ah,'File name: ','$'
  24. Date db 0dh,0ah,'Date: ',5 dup(?),'$'
  25. Timeee db 0dh,0ah,'Time: ',5 dup(?),'$'
  26. Suuum db 0dh,0ah,'Kolichestvo polojitel elementov: ',31 dup(?),'$'
  27. .code
  28. timee proc
  29. mov ah, 2aH
  30. int 21h
  31. ret
  32. timee endp
  33. start:
  34. mov ax,@data
  35. mov ds,ax
  36.  
  37. mov ah, 3dh
  38. mov al, 0
  39. lea dx, FileName ; открываем файл, в котором находится матрица
  40. int 21h
  41. mov bx, ax
  42. xor cx, cx
  43. xor dx, dx
  44. mov ax, 4200h
  45. int 21h
  46. mov ah, 3fh
  47. mov cx, 40 ; считываем матрицу
  48. lea dx, mas-5
  49. int 21h
  50.  
  51. mov ah, 09h
  52. lea dx, mas ; выводим матрицу на консоль
  53. int 21h
  54. mov c, 0
  55. mov ah,0
  56. mov bp,0
  57. mov si,0
  58. mov i, 0
  59. mov sum,0
  60. mov j, 0
  61. mov di,-1
  62. summa:
  63. ;сумма столбцов
  64. cmp bp, razmer
  65. je exit_1
  66. mov ax,razmer_1
  67. mul i
  68. mov bx,ax
  69. mov al,mas[bx][si]
  70. sub al,30h ; высчитываем сумму столбцов матрицы
  71. mov ah,0
  72. sal ax,15
  73. cmp ax,0
  74. je loop_2
  75. inc bp
  76. inc i
  77. jmp summa
  78. loop_2:
  79. inc bp
  80. inc i
  81. inc c
  82. jmp summa
  83. exit_1:
  84. cmp si, 6
  85. je exit_3
  86. inc si
  87. inc si
  88. mov i, 0
  89. mov bp,0
  90. jmp summa
  91. exit_3:
  92. mov ax, c
  93. mov cx,10
  94. mov dx,-1
  95. push dx
  96. sym_3:
  97. cmp ax,0
  98. je symb_3
  99. mov dx,0
  100. div cx
  101. push dx
  102. jmp sym_3
  103. symb_3:
  104. pop dx
  105. cmp dx, -1
  106. je loop_1
  107. inc di
  108. add dl,30h
  109. mov byte ptr[sum_1+di],dl
  110. jmp sym_3
  111. loop_1:
  112. mov sum,0
  113. inc di
  114. inc si
  115. inc si
  116. mov bp,0
  117. mov i,0
  118. cmp si,razmer+2
  119. jg exit_2
  120. jmp summa
  121. exit_2:
  122. mov ah, 09h
  123. lea dx, Summa_2
  124. int 21h
  125. mov ah, 09h
  126. lea dx, sum_1
  127. int 21h
  128. ;День
  129. call timee
  130. add dl,30h ; получаем день, когда был создан файл
  131. mov byte ptr[hour],dl
  132. ;Месяц
  133. call timee
  134. add dh,30h ; получаем месяц, когда был создан файл
  135. mov byte ptr[time],dh
  136. ;Год
  137. call timee
  138. mov ax,cx
  139. mov cx,10 ; получаем год, когда был создан файл
  140. mov si,-1
  141. mov dx,-1
  142. push dx
  143. sym:
  144. cmp ax,0
  145. je symb
  146. mov dx,0
  147. div cx
  148. push dx
  149. jmp sym
  150. symb:
  151. pop dx
  152. cmp dx, -1
  153. je viv
  154. inc si
  155. add dl,30h
  156. mov byte ptr[tim+si],dl
  157. jmp symb
  158. viv:
  159. ;Часы
  160. mov ah, 2ch
  161. int 21h
  162. mov al,ch
  163. mov ah,0 ; получаем часы, когда был создан файл
  164. mov cx,10
  165. mov si,-1
  166. mov dx,-1
  167. push dx
  168. sym_1:
  169. cmp ax,0
  170. je symb_1
  171. mov dx,0
  172. div cx
  173. push dx
  174. jmp sym_1
  175. symb_1:
  176. pop dx
  177. cmp dx, -1
  178. je viv_1
  179. inc si
  180. add dl,30h
  181. mov byte ptr[hor+si],dl
  182. jmp sym_1
  183. viv_1:
  184. ;Минуты
  185. mov ah, 2ch
  186. int 21h
  187. mov al, cl
  188. mov ah, 0
  189. mov cx,10 ; получаем минуты, когда был создан файл
  190. mov si,-1
  191. mov dx,-1
  192. push dx
  193. sym_2:
  194. cmp ax,0
  195. je symb_2
  196. mov dx,0
  197. div cx
  198. push dx
  199. jmp sym_2
  200. symb_2:
  201. pop dx
  202. cmp dx, -1
  203. je begin
  204. inc si
  205. add dl,30h
  206. mov byte ptr[min+si],dl
  207. jmp sym_2
  208. Mass proc
  209. mov ah, 40h
  210. mov bx, handle ; процедура вывода
  211. int 21h
  212. ret
  213. Mass endp
  214. begin:
  215. mov ah, 3ch
  216. mov cx, 0
  217. lea dx, fname ; создаём файл
  218. int 21h
  219. mov handle,ax
  220. lea dx, mas
  221. mov cx, 35 ; записываем в файл матрицу
  222. call Mass
  223. lea dx, FileNamee
  224. mov cx, 13
  225. call Mass
  226. lea dx, FileName
  227. mov cx, 11
  228. call Mass ; записываем в файл название файла, где хранится матрица
  229. lea dx, Date
  230. mov cx, 13
  231. call Mass
  232. lea dx, hour
  233. mov cx, 2
  234. call Mass ;дней
  235. lea dx, time
  236. mov cx, 2
  237. call Mass ;месяц
  238. lea dx, tim
  239. mov cx, 5
  240. call Mass ; rog
  241. lea dx, Timeee
  242. mov cx, 13
  243. call Mass
  244. lea dx, hor
  245. mov cx, 3
  246. call Mass ; часы
  247.  
  248. lea dx, min
  249. mov cx, 5
  250. call Mass ; мину
  251.  
  252. lea dx, suuum
  253. mov cx, 35
  254. call Mass
  255.  
  256. lea dx, sum_1
  257. mov cx, 15
  258. call Mass ; записываем в файл сумму нечётных элементов в каждом столбце
  259.  
  260. mov ah, 3eh ; закрываем файл
  261. mov bx, handle
  262. int 21h
  263. mov ax, 4c00h
  264. int 21h
  265. end start ; конец программы
вот файлы для программы :

Решение задачи: «Вывод даты (день месяца) в файл»

textual
Листинг программы
  1. day       db      10 dup('.'),'$'

Объяснение кода листинга программы

  1. Переменная day содержит значение 10.
  2. Дубликатор . повторяет символ '.' 10 раз.
  3. Знак доллара '$' обозначает конец строки.
  4. В результате в файл выводится строка .......... (10 точек и символ конца строки).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы