Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2016, 12:14   #1
Oopsen
Новичок
Джуниор
 
Регистрация: 19.06.2016
Сообщений: 1
По умолчанию Нужно добавить время и дату в загрузчик.

org 0x7C00
bits 16

mov ax, 0
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7C00

mov si, welcome
call print_string

mainloop:
mov si, prompt
call print_string

mov di, buffer
call get_string
mov si, buffer
cmp byte [si], 0
je mainloop

mov si, buffer
mov di, cmd_hi
call strcmp
jc .helloworld

mov si, buffer
mov di, cmd_zaderzhka
call strcmp
jc .zaderzhka

mov si, buffer
mov di, cmd_help
call strcmp
jc .help

mov si, badcommand
call print_string
jmp mainloop

.helloworld:
mov si, msg_helloworld
call print_string

jmp mainloop
.zaderzhka:
mov si, msg_zaderzhka
call print_string
mov ah,86h
mov cx,0098h
mov dx,9680h
int 15h
mov si, msg_zaderzhka2
call print_string

jmp mainloop
.help:

mov si, msg_help
call print_string
int 15h
jmp mainloop

welcome db 'Welcome to My OS!', 0x0D, 0x0A, 0
msg_helloworld db 'Hello EVs World!', 0x0D, 0x0A, 0
badcommand db 'Bad command entered.', 0x0D, 0x0A, 0
prompt db '>', 0
cmd_hi db 'hi', 0
cmd_help db 'help', 0
msg_help db 'My OS: Commands: hi, help, Sekund', 0x0D, 0x0A, 0
cmd_zaderzhka db 'Sekund', 0
msg_zaderzhka db 'Zaderzhka 10 sekund start:', 0x0D, 0x0A, 0
msg_zaderzhka2 db 'Time stop.', 0x0D, 0x0A, 0


buffer times 64 db 0

;================
;calls start here
;================

print_string:
lodsb

or al,al
jz .done
mov ah, 0x0E
int 0x10

jmp print_string

.done:
ret

get_string:
xor cl,cl

.loop:
mov ah, 0
int 0x16

cmp al, 0x08
je .backspace

cmp al, 0x0D
je .done
cmp cl, 0x3F
je .loop

mov ah, 0x0E
int 0x10

stosb
inc cl
jmp .loop

.backspace:
cmp cl, 0
je .loop

dec di
mov byte [di], 0
dec cl

mov ah, 0x0E
mov al, 0x08
int 10h
mov al, ' '
int 10h

mov al, 0x08
int 10h

jmp .loop

.done:
mov al, 0
stosb

mov ah, 0x0E
mov al, 0x0D
int 0x10
mov al, 0x0A
int 0x10

ret

strcmp:
.loop:
mov al, [si]
mov bl, [di]
cmp al, bl
jne .notequal

cmp al, 0
je .done

inc di
inc si
jmp .loop

.notequal:
clc
ret

.done:
stc
ret

times 510-($-$$) db 0
dw 0AA55h
Oopsen вне форума Ответить с цитированием
Старый 19.06.2016, 18:04   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Код:
    INT 1aH: Ввод-вывод для времени

==========================================================================
02H ¦AT¦ читать время из "постоянных" (CMOS) часов реального времени
    Выход: CH = часы в коде BCD       (Пример: CX = 1243H = 12:43)
           CL = минуты в коде BCD
           DH = секунды в коде BCD
    Выход: CF = 1, если часы не работают

==========================================================================
04H ¦AT¦ читать дату из "постоянных"  (CMOS) часов реального времени
    Выход: CH = столетие в коде BCD   (Пример: CX = 1987H = 1987)
           CL = год в коде BCD
           DH = месяц в коде BCD      (Пример: DX = 0312H = 12-е марта)
           DL = день в коде BCD
    Выход: CF = 1, если часы не работают
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция возвращающая дату и время victor5133 PHP 1 17.05.2012 20:58
Вставить дату и время в ячейку kzld Microsoft Office Excel 5 24.01.2011 18:02
В ячейку вписать дату и время Romuald Microsoft Office Excel 2 21.07.2010 15:46
Установить програмно время и дату AleX CODER Общие вопросы Delphi 2 02.01.2009 13:51