Вывод формата даты и времени - Assembler
Формулировка задачи:
Просьба сразу не кидать тухлыми помидорами, я понимаю для многих это не сложно, но я в тупике.
Делаю контрольную по ассемблеру. Учусь заочно, поэтому приходится фактически быть самоучкой.
Но тут завал. Вот значит что уже есть.
Работу выполняю в masm611, дебаггер turbodebugger.
В отладчике я вижу в регистрах ch, cl, dh текущее время системы. Но оно в BSD формате, а чтобы вывести я так понял мне надо шестнадцатеричный вид. Мне придется выделять по 4 бита из этих регистров, чтобы получить двоичный код каждого отдельно взятого числа, потом перевести в шестнадцатеричный код.
Так вот я не пойму...КАК в ассемблере перевести из двоичной системы в шестнадцатеричный. На бумаге я распишу что и куда, но принцип, а мне нужен не столько голый код, который я слету не пойму, а именно принцип перевода двоичной системы в шестнадцатеричную в ассемблере, я не понимаю.
Просьба объяснить как можно подробнее что, почему, как и зачем.
.186 .model small,stdcall .stack 100h .data Messd db "Current date:", 0Ah, 0Dh, '$' Messt db "Current time:", '$' Hour db ? Minute db ? Sec db ? option casemap:none .code start: mov ax, @data mov ds, ax ; Определяем начало данных в сегменте mov ax,3; int 10h; Переводим в текстовый режим xor ax, ax ; сбрасываем регистр в 0 mov dx, offset Messd ; Начало данных в dx mov ah, 09h int 21h; Выводим xor ax,ax xor dx,dx mov dx, offset Messt mov ah ,09h int 21h mov ah, 02h int 1Ah mov Hour, ch mov Minute, cl mov Sec, dh mov ah, 4ch ;Выходим из программы int 21h end start
Решение задачи: «Вывод формата даты и времени»
textual
Листинг программы
form proc mov al, 0h mov ah, 38h int 21h ret form endp
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д