|
Монітор використання ресурсів комп'ютера |
OV COL,2MOV ROW, 19CALL Q20CURSmov dx, offset modelmsg; print model msgmov ah, 9hint 21hmov al, themodelmov byte ptr dataCR, aladd byte ptr dataCR, 30H; convert to ASCIIMOV COL,30MOV ROW, 19CALL Q20CURSmov dx, offset dataCR; print stepping infomov ah, 9hint 21hend_print:pop dxpop cxpop bxpop axRETprint endpTABL PROC; Процедура вывода рамкиMOV CX,78; Количество симв. для верт. линии рамкиMOV COL,1MOV ROW,0CALL Q20CURSLINE: MOV AH,02HMOV DL, 205; Вывод верт. верхней линии рамкиINT 21HLOOP LINEMOV CX,22; Количество симв. для гориз. линии рамкиMOV DH,1LINE2: MOV COL,0MOV ROW,DHCALL Q20CURS; Установка курсораMOV AH,02HMOV DL,186; Вывод гориз. левой линии рамкиINT 21HINC DHLOOP LINE2MOV CX,22MOV DH,1LINE3: MOV COL,79MOV ROW,DHCALL Q20CURSMOV AH,02HMOV DL,186; Вывод гориз. правой линии рамкиINT 21HINC DHLOOP LINE3MOV CX,78MOV COL,1MOV ROW,23CALL Q20CURSLINE1: MOV AH,02HMOV DL, 205; Вывод вертик. нижней линии рамкиINT 21HLOOP LINE1MOV COL,79; Вывод углов рамкиMOV ROW,0CALL Q20CURSMOV AH,02HMOV DL,187INT 21HMOV COL,0MOV ROW,0CALL Q20CURSMOV AH,02HMOV DL, 201INT 21HMOV COL,0MOV ROW,23CALL Q20CURSMOV AH,02HMOV DL, 200INT 21HMOV COL,79MOV ROW,23CALL Q20CURSMOV AH,02HMOV DL,188INT 21HRETTABL ENDPCOMP1 PROC; Процедура анализирования и вывода; информации про тип компютераMOV COL,1MOV ROW,1CALL Q20CURS; Установка курсораLEA DX,TYPEC; Вывод сообщения о типеMOV AH,09HINT 21HMOV AX,0F000H; Чтение типа комп. по адресу 0F000H: 0FFFEHMOV ES,AXMOV AL,ES: [0FFFEH]CMP AL,0FDH; Проверка на JRJE JRCMP AL,0FFH; Проверка на PCJE PCCMP AL,0FEH; Проверка на XTJE XTCMP AL,0FCH; Проверка на ATJE AT; Переход на вывод ATJR: MOV COL,30MOV ROW,1CALL Q20CURS; Установка курсораLEA DX,MJR; Вывод JRMOV AH,09HINT 21HRETPC: MOV COL,30MOV ROW,1CALL Q20CURS; Установка курсораLEA DX,MPC; Вывод PCMOV AH,09HINT 21HRETXT: MOV COL,30MOV ROW,1CALL Q20CURS; Установка курсораLEA DX,MXT; Вывод XTMOV AH,09HINT 21HRETAT: MOV COL,30MOV ROW,1CALL Q20CURS; Установка курсораLEA DX,MAT; Вывод ATMOV AH,09HINT 21HRETCOMP1 ENDPMSDOSVER PROC; Процедура анализирования и вывода версии MS-DOSMOV AH,30HINT 21H; читаем номер версии DOSMOV STAR,AL; переводим старшую часть версии в символOR STAR,30HMOV AX,0000; переводим младшую часть версии в символыMOV AL,AHMOV BH,0ahDIV BHOR AL,30HOR AH,30HMOV MLAD,ALMOV [MLAD+1],AHMOV COL,1; Столбец 1MOV ROW,2; Строка 2CALL Q20CURS; Установка курсораLEA DX,VER; вывод младшей части версииMOV AH,09HINT 21HMOV COL,30MOV ROW,2CALL Q20CURS; Установка курсораLEA DX,STAR; вывод старшей части версииMOV AH,09HINT 21HRETMSDOSVER ENDPSYSTDAT PROC; Процедура анализирования и вывода дня неделиMOV COL,1MOV ROW,3CALL Q20CURS; Установка курсораLEA DX,DENTIG; Вывод сообщенияMOV AH,09HINT 21HMOV AH,2AHINT 21H; Чтение даты и дня неделиCMP AL,0; Проверка на воскресенеJE VOS; Переход на вывод воскр.CMP AL,1JE POCMP AL,2JE VTCMP AL,3JE SRCMP AL,4JE CHTCMP AL,5; Проверка на пятницуJNE mqjmp PTmq: CMP AL,6; Проверка на суботуMOV COL,30MOV ROW,3CALL Q20CURS; Установка курсораLEA DX,SUBMOV AH,09HINT 21HRETVOS: MOV COL,30MOV ROW,3CALL Q20CURS; Установка курсораLEA DX,NEDMOV AH,09HINT 21H; Вывод воскр.RETPO: MOV COL,30MOV ROW,3CALL Q20CURSLEA DX,PONMOV AH,09HINT 21H; Вывод пон.RETVT: MOV COL,30MOV ROW,3CALL Q20CURS; Установка курсораLEA DX,DENTIGMOV AH,09HINT 21HLEA DX,VIVMOV AH,09HINT 21H; Вывод вт.RETSR: MOV COL,30MOV ROW,3CALL Q20CURS; Установка курсораLEA DX,SERMOV AH,09HINT 21H; Вывод ср.RETCHT: MOV COL,30MOV ROW,3CALL Q20CURS; Установка курсораLEA DX,CHEMOV AH,09HINT 21H; Вывод четвергRETPT: MOV COL,30MOV ROW,3CALL Q20CURS; Установка курсораLEA DX,PYAMOV AH,09HINT 21H; Вывод пятницыRETSYSTDAT ENDPSMM1 PROC; Процедура анализирования и вывода текущей датыMOV AH,2AHINT 21H; Чтение датыMOV AX,0000; Перевод числа в символьный видMOV AL,DLMOV BH,0ahDIV BHOR AL,30HOR AH,30HMOV DAY,ALMOV [DAY+1],AHMOV AH,2AH; Чтение датыINT 21HMOV AX,0000; Перевод месяца в символьный видMOV AL,DHMOV BH,0ahDIV BHOR AL,30HOR AH,30HMOV MUNS,ALMOV [MUNS+1],AHMOV AH,2AHINT 21H; Чтение датыMOV COL,1MOV ROW,4CALL Q20CURS; Установка курсораLEA DX,SDAT; Вывод сообщения о датеMOV AH,09HINT 21HMOV COL,30MOV ROW,4CALL Q20CURS; Установка курсораmov dx,cxcall dec16out; Перевод года в символьный вид и его выводLEA DX,MUNS-1; Вывод месяца и числаMOV AH,09HINT 21HRETSMM1 ENDPTIME1 PROCMOV COL,1MOV ROW,5CALL Q20CURS; Установка курсораLEA DX,TIME; Вывод сообщения о времениMOV AH,09HINT 21HRETTIME1 ENDPTIME2 PROC; Процедура анализирования и вывода текущего времениmov ah,1mov ch,10hmov cl,0int 10h; Скрытие курсораMOV AH,2CH; Чтение текущего времениINT 21HMOV AX,0000; Перевод часов в символьный видMOV AL,CHMOV BH,0ahDIV BHOR AL,30HOR AH,30HMOV HOUR,ALMOV [HOUR+1],AHMOV AH,2CHINT 21H; Чтение текущего времениMOV AX,0000; Перевод минут в символьный видMOV AL,CLMOV BH,0ahDIV BHOR AL,30HOR AH,30HMOV MIN,ALMOV [MIN+1],AHMOV AH,2CHINT 21H; Чтение текущего времениMOV AX,0000; Перевод секунд в символьный видMOV AL,DHMOV BH,0ahDIV BHOR AL,30HOR AH,30HMOV SEC,ALMOV [SEC+1],AHMOV COL,30MOV ROW,5CALL Q20CURS; Установка курсораLEA DX,HOUR; Вывод текущего времениMOV AH,09HINT 21HRETTIME2 ENDPspace_count proc; Процедура анализирования; свободного места на диске; Free_Space=ax*cx*bx;mov ah,36hmov dl,0int 21h; читаем размер свободного пространства.386mov Sectors_Per_Cluster,ax; сохранение значения секторов на кластерmov free_cluster,bx; сохранение значения свободных кластеровmov zag_cluster,dx; сохранение значения всего кластеровmul bx; результат - в DX: AXmov word ptr for_eax,dxmov word ptr for_eax1,axxor eax,eaxmov eax,dword ptr for_eaxshl eax,16or eax,dword ptr for_eax1mov word ptr mnoj,cx; EDX: EAXmul mnojcall perevod; перевод числа в строкуretspace_count endpperevod proc; Процедура перевода числа в строку.386lea si,sitxor cx,cx; counterjmp oop1onz: mov edx,dword ptr spacemov eax,ebxoop1:xor ebx,ebx; part of resultoop: cmp edx,00jne delycmp eax,memojl yesdely:sub eax,memosbb edx,00add ebx,1adc space,0jmp oopyes: mov dword ptr ostt,eaxmov dx,word ptr osttor dl,30h; перевести в символьный видmov [si],dl; сохранить символьный вид 10-ой цифры в строкеinc si; перейти к следующей позицииinc cxcmp dword ptr space,00h; проверка на наличие 10-ых знаков для выводаjne onz; продолжение выделения отдельных цифрcmp ebx,00hjne onzdec siretperevod endpdisp_c proc; Процедура вывода свободного места на дискеmov ah,9; вывести сообщение о свободном местеlea dx,prompt2int 21hokp:mov ah,2h; функция вывода символовmov dl, [si] ;int 21h; Вывод свободного местаdec siloop okpretdisp_c endpvyv_dec1 proc; Процедура анализирования и вывода количества; свободных кластеровlea si,sitxor cx,cxmov al,0ahcbwmov bx,axmov ax,free_clustermov chast,axmmm:xor dx,dxmov ax,chastdiv bxmov chast,ax; octatok - in dxor dl,30hmov [si],dlinc siinc cxcmp chast,00hjne mmmdec sim1:mov dl, [si]mov ah,2hint 21hdec siloop m1retvyv_dec1 endpvyv_dec2 proc; Процедура анализирования и вывода количества; свободных кластеровlea si,sitxor cx,cxmov al,0ahcbwmov bx,axmov ax,zag_clustermov chast,axmmmqw:xor dx,dxmov ax,chastdiv bxmov chast,ax; octatok - in dxor dl,30hmov [si],dlinc siinc cxcmp chast,00hjne mmmqwdec sim1qw:mov dl, [si]mov ah,2hint 21hdec siloop m1qwretvyv_dec2 endpclust_count proc; Процедура анализирования и вывода количества; свободных кластеровmov ah,9h; функция выводаlea dx,prompt1; сообщения о своб. кластерахint 21h; вызов DOScall vyv_dec1; Вызов процедуры вывода свободных кластеровmov ah,9h; функция выводаlea dx,prompt3; сообщения о своб. кластерахint 21h; вызов DOScall vyv_dec2; Вызов процедуры вывода свободных кластеровretclust_count endpget_logic_boot proc; Процедура анализирования BOOT-сектораmov dx,0mov cx,0ffffhlea bx,Buffermov dword ptr Buffer,0; с какого сектора начинать чтениеmov word ptr Buffer+4,1; количество секторов для чтенияmov word ptr Buffer+6,bx; Адрес буфера (смещение)mov ax,dsmov word ptr Buffer+8,ax; Адрес буфера (сегмент)mov al,3; функция чтенияint 25h; Чтение BOOT-сектораpop dx; восстановление стека после int 25hcld; установка направления вперед для movsbpush ds; установка es на сегмент данныхpop esmov 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,9int 21hmov si,offset Buffer [54] ; регистр si - смещение Buffer [54] -тип FATmov di,offset RFAT [16] ; регистр di - смещение RFAT [16] -тип FATmov cx,8; колич. символов в типе FATrep movsb; копирование типа FAT в переменнуюmov dx,offset RFAT; Вывод типа FATmov ah,9int 21hretget_logic_boot endpDISC PROC; Процедура анализирования и вывода информации о дискеcall get_logic_boot; Вызов процедуры анализирования BOOT-сектораcall space_count; Вызов процедуры анализирования свободного местаcall disp_c; Вызов процедуры вывода свободного местаcall clust_count; Вызов процедуры анализирования и вывода количества; свободных кластеровRETDISC ENDPQ10SCR PROC NEAR; Процедура прокрутки экрана; AX установлен при вызовеMOV BH,31; Цвет (07 для ч/б)SUB CX,CXMOV DX,184FHINT 10H; прокрутка экранаRETQ10SCR ENDPQ20CURS PROC NEAR; Процедура установки курсораMOV AH,02SUB BH,BHMOV DH,ROWMOV DL,COLINT 10H; Установка курсораRETQ20CURS ENDPMEMORY2 PROC; Процедура анализирования и вывода размера памятиMOV COL,2MOV ROW,6CALL Q20CURS; Установка курсораLEA DX,MEMMS; Вывод сообщения о памятиMOV AH,09HINT 21HMOV COL,30MOV ROW,6CALL Q20CURS; Установка курсораmov al,15h; Установка для чтения из CMOSout 70h,al; младшего байта размера памятиnopxor ax,axin al,71h; Чтение из CMOS размера памятиmov bx,axmov al,16h; Установка для чтения из CMOSout 70h,al; старшего байта размера памятиnopxor ax,axin al,71h; Чтение из CMOS размера памятиshl ax,8add bx,axmov dx,bxcall dec16out; Перевод размера памяти в строку и его выводMOV COL,2MOV ROW,7CALL Q20CURS; Установка курсораLEA DX,MEMMS1; Вывод сообщения о расширенной памятиMOV AH,09HINT 21HMOV COL,30MOV ROW,7CALL Q20CURS; Установка курсораmov al,17h; Установка для чтения из CMOSout 70h,al; младшего байта размера расширенной памятиnopxor ax,axin al,71h; Чтение из CMOS размера расширенной памятиmov bx,axmov al,18h; Установка для чтения из CMOSout 70h,al; старшего байта размера расширенной памятиnopxor ax,axin al,71h; Чтение из CMOS размера расширенной памятиshl ax,8add bx,axmov dx,bxcall dec16out; Перевод расширенного размера памяти в строку; и его выводRETMEMORY2 ENDPdec16out proc near; Процедура перевода 16-битного кода в строку; DX-число для переводаdec16out0:push ds; сохраняем используемые регистры в стекеpush dipush dxpush cxpush ax; помещение символьных цифр во временный буферmov cx,0mov di, offset cs: tbuff; адрес временного буфераdec16out1:push cx; сохранить cxmov ax,dxmov dx,0mov cx,10div cx; деление на 10xchg ax,dx; получение остаткаadd al,30h; перевод цифры в символmov cs: [di],al; поместить символ в буферinc di; переход к следующему символуpop cx; восстановить cxinc cx; увеличить количество цифрcmp dx,0; проверка частного на 0jnz dec16out1; если не равно, продолжать выделение цифрdec16out2:dec di; вывод символов буфера в обратном порядкеmov al,cs: [di]call stdout; Вызов процедуры вывода символа на экранloop dec16out2pop ax; восстанавливаем сохраненные регистры из стекаpop cxpop dxpop dipop dsretdec16out endpstdout proc near; Процедура вывода символа на экранpush dxmov dl,al;mov ah,2; функция вывода символа на экранint 21h; вывод символаpop dxrettbuff db 255 dup ('$')stdout endpCODESG ENDSEND BEGIN
Страницы: 1, 2
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|