Электронные часы - Assembler
Формулировка задачи:
дравствуйте. У никого случайно нету исходника електронныых часов на Ассемблере?
Решение задачи: «Электронные часы»
textual
Листинг программы
OutStr macro str ;макрос вывода строки push dx mov ah,09h lea dx,str int 21h pop dx endm ;---------------------------------------- OutChar macro char ;макрос вывода символа push ax push dx mov ah,06h mov dl,char add dl,30h int 21h pop dx pop ax endm ;---------------------------------------------------------------------------------------------------- Decomposition macro time ;макрос разложения двузначного числа (16-ного) на цифры и вывода их на экран push bx mov bh,time ;используется bx mov bl,time and bh,11110000b shr bh,4h and bl,00001111b OutChar bh OutChar bl pop bx endm ;------------------------------------- Delay macro time ;макрос задежки в мкс local ext,iter push cx mov cx,time ext: push cx mov cx,5000 iter: loop iter pop cx loop ext pop cx endm ;----------------------------------------------------------- GotoXY macro x,y ;макрос установки позиции курсора в т.(x,y) push ax push bx push dx mov ah,02 ;Запрос на установку курсора mov bh,0 ;Экран 0 mov dh,x ;Строка 0 mov dl,y ;Столбец 0 int 10h ;Передача управления в BIOS pop dx pop bx pop ax endm ;---------------------------------- ClrScr macro ;макрос очистки экрана push ax push bx push cx push dx mov ah,06h ;AH 06 (прокрутка) mov bh,07 ;Нормальный атрибут (черно/белый) mov cx,0000 ;Верхняя левая позиция mov dx,184Fh ;Нижняя правая позиция int 10h ;Передача управления в BIOS pop dx pop cx pop bx pop ax endm ;---------------------------------------------- BlinkOn macro ;макрос включения мигания курсора push ax push cx mov ax,0100h mov cx,0506h int 10h pop cx pop ax endm ;------------------------------------------------ BlinkOff macro ;макрос выключения мигания курсора push ax push cx mov ax,0100h mov cx,2000h int 10h pop cx pop ax endm ;----------------------------------------------- .model small .stack 100h .data M1 DB ':$' M2 DB 'Current time....$' M3 DB '',10,13,'$' M4 DB 178,177,176,176,177,178,178,177,176,91,'KaspeR labwork #4',93,176,177,178,178,177,176,176,177,178,7,'$' .code start: mov ax,@DATA ;инициализация mov ds,ax ClrScr BlinkOff l1: GotoXY 0,0 OutStr M2 xor ax,ax mov ah,2h ;получение времени int 1Ah Decomposition ch ;ch - часы OutStr M1 Decomposition cl ;cl - минуты OutStr M1 Decomposition dh ;dh - секунды OutStr M3 mov ah,01h ;проверка буфера клавиатуры int 16h ;флаг нуля zf=0 если была нажата клавиша jnz exit Delay 10000 jmp l1 exit: ClrScr BlinkOn OutStr M4 ;это про меня! mov ax,4C00h int 21h END start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д