Вывод системного времени - Assembler
Формулировка задачи:
Программа выводит на экран время , но делает это два раза, в чем проблема -без понятия . Буду благодарен за помощь.
.model tiny .code .186 ; для shr al,4 org 100h ; com- программа start: mov al,0Bh ; CMOS OBh - управл¤ющий регистр ¬ out 70h,al ; порт 70h - индекс CMOS in al,71h ; порт 71h - данные CMOS mov al,4 ; CMOS 04h - час call print_cmos mov al,':' ; int 29h mov al,2 ; CMOS 02h - минута call print_cmos mov al,':' ; двоеточие int 29h mov al,0h ; CMOS 00h - секунда call print_cmos ret ; процедура print_cmos ; выводит на экран содержимое ¤чейки CMOS с номером в AL ; считает, что число, читаемое из CMOS, находитс¤ в формате BCD print_cmos proc near out 70h,al ; послать AL в индексный порт CMOS in al,71h ; прочитать данные push ax ; размещение значения в стеке shr al,4 ; выделить старшие четыре бита add al,'0' ; добавить ASCII-код цифры 0 int 29h ; вывести на экран pop ax ; извлекает значение из стека and al,0Fh ; выделить младшие четыре бита add al,30h ; добавить ASCII-код цифры 0 int 29h ; вывести на экран ret print_cmos endp end start
Решение задачи: «Вывод системного времени»
textual
Листинг программы
mov al,0Bh ; CMOS OBh - управл¤ющий регистр out 70h,al ; порт 70h - индекс CMOS ; in al,71h ; порт 71h - данные CMOS
Объяснение кода листинга программы
- Сначала выполняется команда mov, которая переносит значение 0Bh в регистр AL.
- Затем выполняется команда out, которая передает значение регистра AL на порт 70h.
- После этого выполняется команда in, которая принимает данные из порта 71h и сохраняет их в регистре AL.
- Код не содержит дополнительных комментариев или пояснений.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д