Вывод системного времени - Assembler

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

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

Программа выводит на экран время , но делает это два раза, в чем проблема -без понятия . Буду благодарен за помощь.
Листинг программы
  1. .model tiny
  2.  
  3. .code
  4. .186 ; для shr al,4
  5. org 100h ; com- программа
  6. start:
  7. mov al,0Bh ; CMOS OBh - управл¤ющий регистр ¬
  8. out 70h,al ; порт 70h - индекс CMOS
  9. in al,71h ; порт 71h - данные CMOS
  10.  
  11. mov al,4 ; CMOS 04h - час
  12. call print_cmos
  13. mov al,':' ;
  14. int 29h
  15.  
  16. mov al,2 ; CMOS 02h - минута
  17. call print_cmos
  18. mov al,':' ; двоеточие
  19. int 29h
  20. mov al,0h ; CMOS 00h - секунда
  21. call print_cmos
  22. ret
  23. ; процедура print_cmos
  24. ; выводит на экран содержимое ¤чейки CMOS с номером в AL
  25. ; считает, что число, читаемое из CMOS, находитс¤ в формате BCD
  26. print_cmos proc near
  27. out 70h,al ; послать AL в индексный порт CMOS
  28. in al,71h ; прочитать данные
  29. push ax ; размещение значения в стеке
  30. shr al,4 ; выделить старшие четыре бита
  31. add al,'0' ; добавить ASCII-код цифры 0
  32. int 29h ; вывести на экран
  33. pop ax ; извлекает значение из стека
  34. and al,0Fh ; выделить младшие четыре бита
  35. add al,30h ; добавить ASCII-код цифры 0
  36. int 29h ; вывести на экран
  37. ret
  38. print_cmos endp
  39. end start

Решение задачи: «Вывод системного времени»

textual
Листинг программы
  1.   mov  al,0Bh      ; CMOS OBh - управл¤ющий регистр
  2.   out  70h,al      ; порт 70h - индекс CMOS
  3. ;  in   al,71h      ; порт 71h - данные CMOS

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

  1. Сначала выполняется команда mov, которая переносит значение 0Bh в регистр AL.
  2. Затем выполняется команда out, которая передает значение регистра AL на порт 70h.
  3. После этого выполняется команда in, которая принимает данные из порта 71h и сохраняет их в регистре AL.
  4. Код не содержит дополнительных комментариев или пояснений.

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


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

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

11   голосов , оценка 3.545 из 5

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

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

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