Всем привет. Программа должна выводить системное время и дату на экран большими буквами...все работает кроме символа " : " находящегося между минутами и секундами, этот символ должен мигать а он у мя не мигает..( помогите пожалуйста разобраться что не так..(
DATASG SEGMENT 'DATA' NUMBERS LABEL BYTE DB 7CH, 0C6H, 0CEH, 0DEH, 0F6H, 0E6H, 7CH, 00 ;0 КОД 0
DB 30H, 70H, 30H, 30H, 30H, 30H, 0FCH, 00 ;1 КОД 1
DB 78H, 0CCH, 0CH, 38H, 60H, 0CCH, 0FCH, 00 ;2 КОД 2
DB 78H, 0CCH, 0CH, 38H, 0CH, 0CCH, 78H, 00 ;3 КОД 3
DB 1CH, 3CH, 6CH, 0CCH, 0FEH, 0CH, 1EH, 00 ;4 КОД 4
DB 0FCH, 0C0H, 0F8H, 0CH, 0CH, 0CCH, 78H, 00 ;5 КОД 5
DB 38H, 60H, 0C0H, 0F8H, 0CCH, 0CCH, 78H, 00 ;6 КОД 6
DB 0FCH, 0CCH, 0CH, 18H, 30H, 30H, 30H, 00 ;7 КОД 7
DB 78H, 0CCH, 0CCH, 78H, 0CCH, 0CCH, 78H, 00 ;8 КОД 8
DB 78H, 0CCH, 0CCH, 7CH, 0CH, 18H, 70H, 00 ;9 КОД 9
DB 00, 30H, 30H, 00, 00, 30H, 30H, 00 ;: КОД А
DB 06, 0CH, 18H, 30H, 60H, 0C0H, 80H, 00 ;/ КОД В
DELT EQU 9 DATASG ENDS
STACKSG SEGMENT STACK 'STACK' DB 100H DUP(?) STACKSG ENDS
ADD BX, 8 POP DX XOR AH, AH MOV AL, DH DIV CL CALL PRINT
ADD BX, 8 MOV AL, AH CALL PRINT
ADD BX, 8 MOV AX, 0BH CALL PRINT
ADD BX, 8 XOR AH, AH MOV AL, DL DIV CL CALL PRINT
ADD BX, 8 MOV AL, AH CALL PRINT
POP DX POP CX POP BX POP AX POPF RET DATAPRT ENDP
BEGIN: MAIN PROC CALL CLS
GET_KEY: MOV AH,0 ;номер функции для "чтения" INT 1AH ;получаем значение счетчика ADD DX, DELT ;добавляем время задержки к младшему слову MOV BX,DX ;запоминаем требуемое значение в BX
DCCL: INT 1AH ;получаем значение счетчика CMP DX,BX ;сравниваем с искомым JB DCCL ;если не равен, то повторяем снова
CALL CLS MOV AX, 4C00H INT 21H MAIN ENDP CODESG ENDS END BEGIN
AndNot
24.12.2009 23:47
VGA видеокарты в текстовом видеорежиме могут работать в двух режимах: 1 - режим повышенной яркости цвета фона (это цвета от 8 до 15) 2 - режим мерцания символов (тогда цвета фона от 8 до 15 не доступны). Дело в том, что за повышенную яркость фона и мерцание символов отвечает один и тот же бит байта атрибутов символов - самый старший бит в цвете фона байта атрибутов. По умолчанию BIOS включает режим повышенной яркости фона и нужно самому переключить режимы. Режим мерцания включается так:
mov ax, 1003h mov bl, 1 int 10h
После этого все символы на экране, у которых установлен старший бит цвета фона, начнут мигать. Переключиться обратно можно точно так же, но задав BL = 0.
xmavr
26.05.2011 20:40
Здравствуйте! Подскажите пожалуйста, что за значения написаны в сегменте данных?
DB 7CH, 0C6H, 0CEH, 0DEH, 0F6H, 0E6H, 7CH, 00 ;0 КОД 0 DB 30H, 70H, 30H, 30H, 30H, 30H, 0FCH, 00 ;1 КОД 1 DB 78H, 0CCH, 0CH, 38H, 60H, 0CCH, 0FCH, 00 ;2 КОД 2 DB 78H, 0CCH, 0CH, 38H, 0CH, 0CCH, 78H, 00 ;3 КОД 3 DB 1CH, 3CH, 6CH, 0CCH, 0FEH, 0CH, 1EH, 00 ;4 КОД 4 DB 0FCH, 0C0H, 0F8H, 0CH, 0CH, 0CCH, 78H, 00 ;5 КОД 5 DB 38H, 60H, 0C0H, 0F8H, 0CCH, 0CCH, 78H, 00 ;6 КОД 6 DB 0FCH, 0CCH, 0CH, 18H, 30H, 30H, 30H, 00 ;7 КОД 7 DB 78H, 0CCH, 0CCH, 78H, 0CCH, 0CCH, 78H, 00 ;8 КОД 8 DB 78H, 0CCH, 0CCH, 7CH, 0CH, 18H, 70H, 00 ;9 КОД 9 DB 00, 30H, 30H, 00, 00, 30H, 30H, 00 ;: КОД А DB 06, 0CH, 18H, 30H, 60H, 0C0H, 80H, 00 ;/ КОД В
И по какому принципу записаны эти значения...
IUnknown
26.05.2011 21:16
Цитата
Подскажите пожалуйста, что за значения написаны в сегменте данных?
А ты переведи эти значения в двоичные (7CH = 0111_1100, 0C6H = 1100_0110 и так далее), и нарисуй строка за строкой на бумаге. Единица - есть пиксел, ноль - нету. В каждой строке - одно значение: