У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент





1, то виводимо строку “SOPROCESSOR 8087” і переводимо курсор на нову строку .

Перевіряємо значення бітів 2 і 3 регістру АХ. Якщо вони дорівнюють 0, то переходимо на перевірку наступних бітів. Якщо біт 3=0 і біт 2=1 виводимо строку “MEMORY:Kb16”; якщо біт 3=1 і біт 2=0 виводимо строку “MEMORY:Kb32”; Якщо біт 3=1 і біт 2=1 виводимо строку “MEMORY:Kb64” і переводимо курсор на нову строку.

Якщо біт 8 регістру АХ дорівнює 1, виводимо строку “DMA Present” і переводимо курсор на нову строку.

Перевіряємо значення бітів 14 і 15 регістру АХ. Якщо вони дорівнюють 0, то переходимо на кінець програми, інакше виводимо строку “LPT:”. Якщо біт 15=0 і біт 14=1 виводимо число 1; якщо біт 15=1 і біт 14=0 виводимо число 2; якщо біт 15=1 і біт 14=1 виводимо число 3.

Висновки

В результаті виконання курсового проектування було написано програму системного загрузчика який здійснює ревізію конфігурації комп’ютера та виводить отриману інформацію на екран, та програму запису системного загрузчика, програми-калькулятора в загрузочну область. Наведено блок-схему програми системного загрузчика ревізії конфігурації комп’ютера, подано її опис функціонування. Текст програми системного загрузчика написано на мові Assembler; текст програми запису програми-калькулятора в загрузочну область написано на мові С.

Перелік використаних літературних джерел

Зубков С.В. Assembler для DOS, Windows и UNIX –3-e изд., стер. – М.:ДМК Пресс; СПб.:Питер, 2004.–608с.

Системное программное обеспечение. Учебник для вузов/ А. Ю. Молчанов.– СПб.:Питер, 2003.–396с.

Велихов А.В. Макроассемблер: Создание и отладка программ.– М.:Майор, 2001.–192с.

Додатки

Додаток А

прогама запису системного загрузчика, програми-калькулятора в загрузочну область

#include <stdio.h>

#include <dos.h>

#include <conio.h>

#include <ctype.h>

int main (void)

{

union REGS reg;

struct SREGS segreg;

char b[512],*q;

FILE *in;

int i;

q=&b[0];

clrscr();

reg.x.ax=0x00;

reg.x.bx=FP_OFF(q);

segreg.ds=FP_SEG(q);

reg.x.cx=1;

reg.x.dx=0;

int86x(0x25,&reg,&reg,&segreg);

if(reg.x.cflag)

{

printf("ERROR READ");

printf("%x",reg.x.flags);

}

printf("\nnomer - %d",b[36]);

printf("\n)? - %c",b[38]);

printf("\n%c%c%c%c%c%c%c%c%c%c%c",b[42],b[43],b[44],b[45],b[46],b[47],b[48],b[49],b[50],b[51],b[52]);

if ((in = fopen("f11.com", "rt"))== NULL)

{

fprintf(stderr, "Cannot open input file.\n");

return 1;

}

i=62;

while (!feof(in))

{

b[i]=fgetc(in);

i++;

}

reg.x.ax=0x00;

reg.x.bx=FP_OFF(q);

segreg.ds=FP_SEG(q);

reg.x.cx=1;

reg.x.dx=0;

int86x(0x26,&reg,&reg,&segreg);

if(reg.x.cflag)

{

printf("ERROR WRITE");

printf("%x",reg.x.flags);

}

else

{

printf("OK");

}

getchar();

return 0;

}


Сторінки: 1 2