на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Монітор використання ресурсів комп'ютера
OV COL,2

MOV ROW, 19

CALL Q20CURS

mov dx, offset modelmsg; print model msg

mov ah, 9h

int 21h

mov al, themodel

mov byte ptr dataCR, al

add byte ptr dataCR, 30H; convert to ASCII

MOV COL,30

MOV ROW, 19

CALL Q20CURS

mov dx, offset dataCR; print stepping info

mov ah, 9h

int 21h

end_print:

pop dx

pop cx

pop bx

pop ax

RET

print endp

TABL PROC; Процедура вывода рамки

MOV CX,78; Количество симв. для верт. линии рамки

MOV COL,1

MOV ROW,0

CALL Q20CURS

LINE: MOV AH,02H

MOV DL, 205; Вывод верт. верхней линии рамки

INT 21H

LOOP LINE

MOV CX,22; Количество симв. для гориз. линии рамки

MOV DH,1

LINE2: MOV COL,0

MOV ROW,DH

CALL Q20CURS; Установка курсора

MOV AH,02H

MOV DL,186; Вывод гориз. левой линии рамки

INT 21H

INC DH

LOOP LINE2

MOV CX,22

MOV DH,1

LINE3: MOV COL,79

MOV ROW,DH

CALL Q20CURS

MOV AH,02H

MOV DL,186; Вывод гориз. правой линии рамки

INT 21H

INC DH

LOOP LINE3

MOV CX,78

MOV COL,1

MOV ROW,23

CALL Q20CURS

LINE1: MOV AH,02H

MOV DL, 205; Вывод вертик. нижней линии рамки

INT 21H

LOOP LINE1

MOV COL,79; Вывод углов рамки

MOV ROW,0

CALL Q20CURS

MOV AH,02H

MOV DL,187

INT 21H

MOV COL,0

MOV ROW,0

CALL Q20CURS

MOV AH,02H

MOV DL, 201

INT 21H

MOV COL,0

MOV ROW,23

CALL Q20CURS

MOV AH,02H

MOV DL, 200

INT 21H

MOV COL,79

MOV ROW,23

CALL Q20CURS

MOV AH,02H

MOV DL,188

INT 21H

RET

TABL ENDP

COMP1 PROC; Процедура анализирования и вывода

; информации про тип компютера

MOV COL,1

MOV ROW,1

CALL Q20CURS; Установка курсора

LEA DX,TYPEC; Вывод сообщения о типе

MOV AH,09H

INT 21H

MOV AX,0F000H; Чтение типа комп. по адресу 0F000H: 0FFFEH

MOV ES,AX

MOV AL,ES: [0FFFEH]

CMP AL,0FDH; Проверка на JR

JE JR

CMP AL,0FFH; Проверка на PC

JE PC

CMP AL,0FEH; Проверка на XT

JE XT

CMP AL,0FCH; Проверка на AT

JE AT; Переход на вывод AT

JR: MOV COL,30

MOV ROW,1

CALL Q20CURS; Установка курсора

LEA DX,MJR; Вывод JR

MOV AH,09H

INT 21H

RET

PC: MOV COL,30

MOV ROW,1

CALL Q20CURS; Установка курсора

LEA DX,MPC; Вывод PC

MOV AH,09H

INT 21H

RET

XT: MOV COL,30

MOV ROW,1

CALL Q20CURS; Установка курсора

LEA DX,MXT; Вывод XT

MOV AH,09H

INT 21H

RET

AT: MOV COL,30

MOV ROW,1

CALL Q20CURS; Установка курсора

LEA DX,MAT; Вывод AT

MOV AH,09H

INT 21H

RET

COMP1 ENDP

MSDOSVER PROC; Процедура анализирования и вывода версии MS-DOS

MOV AH,30H

INT 21H; читаем номер версии DOS

MOV STAR,AL; переводим старшую часть версии в символ

OR STAR,30H

MOV AX,0000; переводим младшую часть версии в символы

MOV AL,AH

MOV BH,0ah

DIV BH

OR AL,30H

OR AH,30H

MOV MLAD,AL

MOV [MLAD+1],AH

MOV COL,1; Столбец 1

MOV ROW,2; Строка 2

CALL Q20CURS; Установка курсора

LEA DX,VER; вывод младшей части версии

MOV AH,09H

INT 21H

MOV COL,30

MOV ROW,2

CALL Q20CURS; Установка курсора

LEA DX,STAR; вывод старшей части версии

MOV AH,09H

INT 21H

RET

MSDOSVER ENDP

SYSTDAT PROC; Процедура анализирования и вывода дня недели

MOV COL,1

MOV ROW,3

CALL Q20CURS; Установка курсора

LEA DX,DENTIG; Вывод сообщения

MOV AH,09H

INT 21H

MOV AH,2AH

INT 21H; Чтение даты и дня недели

CMP AL,0; Проверка на воскресене

JE VOS; Переход на вывод воскр.

CMP AL,1

JE PO

CMP AL,2

JE VT

CMP AL,3

JE SR

CMP AL,4

JE CHT

CMP AL,5; Проверка на пятницу

JNE mq

jmp PT

mq: CMP AL,6; Проверка на суботу

MOV COL,30

MOV ROW,3

CALL Q20CURS; Установка курсора

LEA DX,SUB

MOV AH,09H

INT 21H

RET

VOS: MOV COL,30

MOV ROW,3

CALL Q20CURS; Установка курсора

LEA DX,NED

MOV AH,09H

INT 21H; Вывод воскр.

RET

PO: MOV COL,30

MOV ROW,3

CALL Q20CURS

LEA DX,PON

MOV AH,09H

INT 21H; Вывод пон.

RET

VT: MOV COL,30

MOV ROW,3

CALL Q20CURS; Установка курсора

LEA DX,DENTIG

MOV AH,09H

INT 21H

LEA DX,VIV

MOV AH,09H

INT 21H; Вывод вт.

RET

SR: MOV COL,30

MOV ROW,3

CALL Q20CURS; Установка курсора

LEA DX,SER

MOV AH,09H

INT 21H; Вывод ср.

RET

CHT: MOV COL,30

MOV ROW,3

CALL Q20CURS; Установка курсора

LEA DX,CHE

MOV AH,09H

INT 21H; Вывод четверг

RET

PT: MOV COL,30

MOV ROW,3

CALL Q20CURS; Установка курсора

LEA DX,PYA

MOV AH,09H

INT 21H; Вывод пятницы

RET

SYSTDAT ENDP

SMM1 PROC; Процедура анализирования и вывода текущей даты

MOV AH,2AH

INT 21H; Чтение даты

MOV AX,0000; Перевод числа в символьный вид

MOV AL,DL

MOV BH,0ah

DIV BH

OR AL,30H

OR AH,30H

MOV DAY,AL

MOV [DAY+1],AH

MOV AH,2AH; Чтение даты

INT 21H

MOV AX,0000; Перевод месяца в символьный вид

MOV AL,DH

MOV BH,0ah

DIV BH

OR AL,30H

OR AH,30H

MOV MUNS,AL

MOV [MUNS+1],AH

MOV AH,2AH

INT 21H; Чтение даты

MOV COL,1

MOV ROW,4

CALL Q20CURS; Установка курсора

LEA DX,SDAT; Вывод сообщения о дате

MOV AH,09H

INT 21H

MOV COL,30

MOV ROW,4

CALL Q20CURS; Установка курсора

mov dx,cx

call dec16out; Перевод года в символьный вид и его вывод

LEA DX,MUNS-1; Вывод месяца и числа

MOV AH,09H

INT 21H

RET

SMM1 ENDP

TIME1 PROC

MOV COL,1

MOV ROW,5

CALL Q20CURS; Установка курсора

LEA DX,TIME; Вывод сообщения о времени

MOV AH,09H

INT 21H

RET

TIME1 ENDP

TIME2 PROC; Процедура анализирования и вывода текущего времени

mov ah,1

mov ch,10h

mov cl,0

int 10h; Скрытие курсора

MOV AH,2CH; Чтение текущего времени

INT 21H

MOV AX,0000; Перевод часов в символьный вид

MOV AL,CH

MOV BH,0ah

DIV BH

OR AL,30H

OR AH,30H

MOV HOUR,AL

MOV [HOUR+1],AH

MOV AH,2CH

INT 21H; Чтение текущего времени

MOV AX,0000; Перевод минут в символьный вид

MOV AL,CL

MOV BH,0ah

DIV BH

OR AL,30H

OR AH,30H

MOV MIN,AL

MOV [MIN+1],AH

MOV AH,2CH

INT 21H; Чтение текущего времени

MOV AX,0000; Перевод секунд в символьный вид

MOV AL,DH

MOV BH,0ah

DIV BH

OR AL,30H

OR AH,30H

MOV SEC,AL

MOV [SEC+1],AH

MOV COL,30

MOV ROW,5

CALL Q20CURS; Установка курсора

LEA DX,HOUR; Вывод текущего времени

MOV AH,09H

INT 21H

RET

TIME2 ENDP

space_count proc; Процедура анализирования

; свободного места на диске

; Free_Space=ax*cx*bx;

mov ah,36h

mov dl,0

int 21h; читаем размер свободного пространства

.386

mov Sectors_Per_Cluster,ax; сохранение значения секторов на кластер

mov free_cluster,bx; сохранение значения свободных кластеров

mov zag_cluster,dx; сохранение значения всего кластеров

mul bx; результат - в DX: AX

mov word ptr for_eax,dx

mov word ptr for_eax1,ax

xor eax,eax

mov eax,dword ptr for_eax

shl eax,16

or eax,dword ptr for_eax1

mov word ptr mnoj,cx; EDX: EAX

mul mnoj

call perevod; перевод числа в строку

ret

space_count endp

perevod proc; Процедура перевода числа в строку

.386

lea si,sit

xor cx,cx; counter

jmp oop1

onz: mov edx,dword ptr space

mov eax,ebx

oop1:

xor ebx,ebx; part of result

oop: cmp edx,00

jne dely

cmp eax,memo

jl yes

dely:

sub eax,memo

sbb edx,00

add ebx,1

adc space,0

jmp oop

yes: mov dword ptr ostt,eax

mov dx,word ptr ostt

or dl,30h; перевести в символьный вид

mov [si],dl; сохранить символьный вид 10-ой цифры в строке

inc si; перейти к следующей позиции

inc cx

cmp dword ptr space,00h; проверка на наличие 10-ых знаков для вывода

jne onz; продолжение выделения отдельных цифр

cmp ebx,00h

jne onz

dec si

ret

perevod endp

disp_c proc; Процедура вывода свободного места на диске

mov ah,9; вывести сообщение о свободном месте

lea dx,prompt2

int 21h

okp:

mov ah,2h; функция вывода символов

mov dl, [si] ;

int 21h; Вывод свободного места

dec si

loop okp

ret

disp_c endp

vyv_dec1 proc; Процедура анализирования и вывода количества

; свободных кластеров

lea si,sit

xor cx,cx

mov al,0ah

cbw

mov bx,ax

mov ax,free_cluster

mov chast,ax

mmm:

xor dx,dx

mov ax,chast

div bx

mov chast,ax; octatok - in dx

or dl,30h

mov [si],dl

inc si

inc cx

cmp chast,00h

jne mmm

dec si

m1:

mov dl, [si]

mov ah,2h

int 21h

dec si

loop m1

ret

vyv_dec1 endp

vyv_dec2 proc; Процедура анализирования и вывода количества

; свободных кластеров

lea si,sit

xor cx,cx

mov al,0ah

cbw

mov bx,ax

mov ax,zag_cluster

mov chast,ax

mmmqw:

xor dx,dx

mov ax,chast

div bx

mov chast,ax; octatok - in dx

or dl,30h

mov [si],dl

inc si

inc cx

cmp chast,00h

jne mmmqw

dec si

m1qw:

mov dl, [si]

mov ah,2h

int 21h

dec si

loop m1qw

ret

vyv_dec2 endp

clust_count proc; Процедура анализирования и вывода количества

; свободных кластеров

mov ah,9h; функция вывода

lea dx,prompt1; сообщения о своб. кластерах

int 21h; вызов DOS

call vyv_dec1; Вызов процедуры вывода свободных кластеров

mov ah,9h; функция вывода

lea dx,prompt3; сообщения о своб. кластерах

int 21h; вызов DOS

call vyv_dec2; Вызов процедуры вывода свободных кластеров

ret

clust_count endp

get_logic_boot proc; Процедура анализирования BOOT-сектора

mov dx,0

mov cx,0ffffh

lea bx,Buffer

mov dword ptr Buffer,0; с какого сектора начинать чтение

mov word ptr Buffer+4,1; количество секторов для чтения

mov word ptr Buffer+6,bx; Адрес буфера (смещение)

mov ax,ds

mov word ptr Buffer+8,ax; Адрес буфера (сегмент)

mov al,3; функция чтения

int 25h; Чтение BOOT-сектора

pop dx; восстановление стека после int 25h

cld; установка направления вперед для movsb

push ds; установка es на сегмент данных

pop es

mov si,offset Buffer [43] ; регистр si - смещение Buffer [43] -метка тома

mov di,offset MetkaToma [16] ; регистр di - смещение MetkaToma [16] -метка тома

mov cx,11; колич. символов в метке тома

rep movsb; копирование метки тома в переменную

mov dx,offset MetkaToma; Вывод метки тома

mov ah,9

int 21h

mov si,offset Buffer [54] ; регистр si - смещение Buffer [54] -тип FAT

mov di,offset RFAT [16] ; регистр di - смещение RFAT [16] -тип FAT

mov cx,8; колич. символов в типе FAT

rep movsb; копирование типа FAT в переменную

mov dx,offset RFAT; Вывод типа FAT

mov ah,9

int 21h

ret

get_logic_boot endp

DISC PROC; Процедура анализирования и вывода информации о диске

call get_logic_boot; Вызов процедуры анализирования BOOT-сектора

call space_count; Вызов процедуры анализирования свободного места

call disp_c; Вызов процедуры вывода свободного места

call clust_count; Вызов процедуры анализирования и вывода количества

; свободных кластеров

RET

DISC ENDP

Q10SCR PROC NEAR; Процедура прокрутки экрана

; AX установлен при вызове

MOV BH,31; Цвет (07 для ч/б)

SUB CX,CX

MOV DX,184FH

INT 10H; прокрутка экрана

RET

Q10SCR ENDP

Q20CURS PROC NEAR; Процедура установки курсора

MOV AH,02

SUB BH,BH

MOV DH,ROW

MOV DL,COL

INT 10H; Установка курсора

RET

Q20CURS ENDP

MEMORY2 PROC; Процедура анализирования и вывода размера памяти

MOV COL,2

MOV ROW,6

CALL Q20CURS; Установка курсора

LEA DX,MEMMS; Вывод сообщения о памяти

MOV AH,09H

INT 21H

MOV COL,30

MOV ROW,6

CALL Q20CURS; Установка курсора

mov al,15h; Установка для чтения из CMOS

out 70h,al; младшего байта размера памяти

nop

xor ax,ax

in al,71h; Чтение из CMOS размера памяти

mov bx,ax

mov al,16h; Установка для чтения из CMOS

out 70h,al; старшего байта размера памяти

nop

xor ax,ax

in al,71h; Чтение из CMOS размера памяти

shl ax,8

add bx,ax

mov dx,bx

call dec16out; Перевод размера памяти в строку и его вывод

MOV COL,2

MOV ROW,7

CALL Q20CURS; Установка курсора

LEA DX,MEMMS1; Вывод сообщения о расширенной памяти

MOV AH,09H

INT 21H

MOV COL,30

MOV ROW,7

CALL Q20CURS; Установка курсора

mov al,17h; Установка для чтения из CMOS

out 70h,al; младшего байта размера расширенной памяти

nop

xor ax,ax

in al,71h; Чтение из CMOS размера расширенной памяти

mov bx,ax

mov al,18h; Установка для чтения из CMOS

out 70h,al; старшего байта размера расширенной памяти

nop

xor ax,ax

in al,71h; Чтение из CMOS размера расширенной памяти

shl ax,8

add bx,ax

mov dx,bx

call dec16out; Перевод расширенного размера памяти в строку

; и его вывод

RET

MEMORY2 ENDP

dec16out proc near; Процедура перевода 16-битного кода в строку

; DX-число для перевода

dec16out0:

push ds; сохраняем используемые регистры в стеке

push di

push dx

push cx

push ax

; помещение символьных цифр во временный буфер

mov cx,0

mov di, offset cs: tbuff; адрес временного буфера

dec16out1:

push cx; сохранить cx

mov ax,dx

mov dx,0

mov cx,10

div cx; деление на 10

xchg ax,dx; получение остатка

add al,30h; перевод цифры в символ

mov cs: [di],al; поместить символ в буфер

inc di; переход к следующему символу

pop cx; восстановить cx

inc cx; увеличить количество цифр

cmp dx,0; проверка частного на 0

jnz dec16out1; если не равно, продолжать выделение цифр

dec16out2:

dec di; вывод символов буфера в обратном порядке

mov al,cs: [di]

call stdout; Вызов процедуры вывода символа на экран

loop dec16out2

pop ax; восстанавливаем сохраненные регистры из стека

pop cx

pop dx

pop di

pop ds

ret

dec16out endp

stdout proc near; Процедура вывода символа на экран

push dx

mov dl,al;

mov ah,2; функция вывода символа на экран

int 21h; вывод символа

pop dx

ret

tbuff db 255 dup ('$')

stdout endp

CODESG ENDS

END BEGIN

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.