Смекни!
smekni.com

Ассемблер и программирование (стр. 2 из 2)

line(x+60, y+120, x+80, y+100);

line(x-60, y+110, x-50, y+100);

line(x+20, y+110, x+30, y+100);

circle(x+110,y+95,3);

circle(x+100,y+95,2);

circle(x+90,y+95,2);

///////////////sistemnik//////////////

i=0;

setcolor(i);

rectangle(x-130, y+120, x-200, y-100);

line(x-200, y-100, x-110, y-190);

line(x-130, y-100, x-40, y-190);

line(x-110, y-190, x-40, y-190);

line(x-130, y+120, x-110, y+100);

line(x-40, y-190, x-40, y-110);

rectangle(x-190, y-90, x-140, y-80);

rectangle(x-190, y-70, x-140, y-60);

rectangle(x-190, y-50, x-140, y-40);

rectangle(x-190, y-30, x-140, y-20);

rectangle(x-180, y-10, x-150, y);

rectangle(x-180, y+10, x-150, y+20);

rectangle(x-190, y+100, x-140, y+110);

circle(x-165,y+80,5);

circle(x-165,y+60,4);

line(x-165,y+80,x-165,y+84);

circle(x-165,y+80,2);}

void kolonki(int x, int y, int i)

{int k;

//////////////left//////////////////

k=i;

i=15;

setfillstyle(INTERLEAVE_FILL,i);

i=k;

setcolor(i);

rectangle(x-210, y+120, x-260, y+60);

line(x-210, y+120, x-200, y+110);

line(x-210, y+60, x-200, y+50);

line(x-260, y+60, x-240, y+40);

line(x-240, y+40, x-200, y+40);

i=k;

setcolor(i);

pieslice(x-235, y+90, 0, 180, 20);

rectangle(x-255, y+90, x-215, y+110);

floodfill(x-245,y+95,i);

//////////////right/////////////////

rectangle(x+140, y+120, x+190, y+60);

line(x+190, y+120, x+210, y+100);

line(x+190, y+60, x+210, y+40);

line(x+140, y+60, x+160, y+40);

line(x+160, y+40, x+210, y+40);

line(x+210, y+100, x+210, y+40);

i=k;

setcolor(i);

pieslice(x+165, y+90, 0, 180, 20);

rectangle(x+145, y+90, x+185, y+110);

floodfill(x+155,y+95,i);

circle(x+165,y+115,4);

circle(x+155,y+115,3);

circle(x+175,y+115,3);

arc(x+165,y+40,0,150,40);

}

void main()

{int dr=DETECT,mod;

float snd[] = {659.26, 880.00, 1046.50, 987.77, 880.00, 1046.50, 880.00, 987.77, 880.00,

698.46, 783.99, 659.26, 659.26, 880.00, 1046.50, 987.77, 880.00, 1046.50, 880.00, 987.77, 880.00,

659.26, 622.25, 587.33, 587.33, 698.46, 880.00, 987.77, 587.33, 698.46,

830.61, 880.00, 440.00, 523.25, 698.46, 698.46, 659.26, 783.95, 698.46, 698.46,

659.26, 493.88, 523.25, 440.00, 987.77, 987.77, 932.33, 880.00, 987.77, 987.77,

880.00, 783.99, 698.46, 659.26, 659.26, 783.99, 659.26, 587.33, 587.33,

698.46, 587.33, 493.88} ;

int x,y,err,i,ki,key,r,h,c,x1,x2,y1,y2;

char s,str[80]={'K','U','R','S','O','V','A','Y','A',' ','R','A','B','O','T','A'};

initgraph(&dr,&mod," ");

err=graphresult();

if(err){

cout<<"error initgraph"<<grapherrormsg(err);

exit(1); }

snachala:

cleardevice();

i=7;

x=getmaxx()/2;

y=getmaxy()/2;

setfillstyle(SOLID_FILL,i);

floodfill(x,y,i);

setcolor(4);

outtextxy(400,70,"Press any key for STOP Music");

outtextxy(400,80,"Press 'P' for PLAY Music");

outtextxy(400,90,"Press 'M' for GOTO MENU");

outtextxy(400,100,"Press 'Esc' for exit");

settextstyle(0,0,3);

setcolor(2);

outtextxy(150,15,str);

settextstyle(0,0,2);

setcolor(6);

outtextxy(330,380,"KAFEDRA: EVM");

setcolor(5);

outtextxy(330,420,"SPECIALNOST: VMKSiS");

setcolor(4);

outtextxy(30,380,"VIPOLNIL:");

settextstyle(0,0,1);

setcolor(1);

outtextxy(180,380,"STUDENT FITU 1-2a");

settextstyle(0,0,1);

setcolor(0);

outtextxy(180,390,"XLINTCEV A.G.");

settextstyle(0,0,2);

setcolor(4);

outtextxy(30,420,"PROVERIL:");

settextstyle(0,0,1);

setcolor(1);

outtextxy(180,420,"KOLOMEICEVA T.G.");

settextstyle(0,0,1);

setcolor(0);

outtextxy(180,430,"BELIKOV I.Yu.");

komp(x,y); m1:

for(r=0;r<62;r++)

{

if (kbhit()) break;

i=15;

pomehi(x,y,i);

delay(100);

i=7;

kolonki(x,y,i);

i=0;

kolonki(x,y-10, i);

i=0;

pomehi(x,y,i);

delay(100);

sound(snd[r]/1.5);

if (r==11 ^ r==23 ^ r==27 ^ r==31 ^ r==43) { delay (1500); nosound (); delay (600); }

else if (r==53 ^ r==57 ^ r==61) { delay (300); nosound(); delay (1400); }

else if (r==47) { delay (500); nosound (); delay (700); }

else delay(50);

i=7;

kolonki(x,y-10,i);

i=0;

kolonki(x,y,i);

}

nosound();

setcolor(RED);

m:

s=getch();

if (s==27) exit(1);

if (s=='p') {setfillstyle(SOLID_FILL,0); floodfill(getmaxx()/2,getmaxy()/2,8); goto m1;}

if (s!='m') goto m;

cleardevice();

i=15;

setcolor(i);

setfillstyle(SOLID_FILL,i);

floodfill(x,y,i);

settextstyle(0,0,2);

setcolor(RED);

outtextxy(150,30,"MENU");

settextstyle(0,0,1);

setcolor(2);

outtextxy(20,100,"Zadanie po assembleru #1");

setcolor(3);

outtextxy(20,135,"Zadanie po assembleru #2");

setcolor(4);

outtextxy(20,170,"Zadanie po assembleru #3");

setcolor(5);

outtextxy(20,205,"Zadanie po assembleru #4");

setcolor(6);

outtextxy(20,240,"Zadanie po assembleru #5");

setcolor(0);

outtextxy(20,275,"Zadanie po assembleru #6");

setcolor(8);

outtextxy(20,310,"Zadanie po programmirovaniu");

setcolor(9);

outtextxy(20,345,"Back to previos display");

setcolor(12);

outtextxy(20,380,"Exit");

ki=1; x1=14; y1=95; x2=250; y2=115;

rectangle(x1,y1,x2,y2);

sled:

key=bioskey(0);

switch(key)

{

case 18432:{setcolor(15);

rectangle(x1,y1,x2,y2);

if (y1==95) {y1=375;y2=395; ki=9;}

else {y1=y1-35; y2=y2-35; ki--;}

setcolor(RED);

rectangle(x1,y1,x2,y2);

break; }

case 20480:

{setcolor(15);

rectangle(x1,y1,x2,y2);

if (y1==375) {y1=95;y2=115; ki=1;}

else {y1=y1+35; y2=y2+35; ki++;}

setcolor(RED);

rectangle(x1,y1,x2,y2);

break; }

case 7181: switch(ki)

{ case 1: spawnl(P_WAIT, "1.EXE", NULL); break;

case 2: spawnl(P_WAIT, "2.EXE", NULL); break;

case 3: spawnl(P_WAIT, "3.EXE", NULL); break;

case 4: spawnl(P_WAIT, "4.EXE", NULL); break;

case 5: spawnl(P_WAIT, "5.EXE", NULL); break;

case 6: spawnl(P_WAIT, "6.EXE", NULL); break;

case 7: spawnl(P_WAIT, "CPP.EXE", NULL); break;

case 8: goto snachala;

case 9: closegraph(); exit(1); }

}

goto sled;

}

14. Руководство пользователя

Для запуска курсовой работы воспользуйтесь файлом KOMP.EXE.В случае возникновения ошибки «Error initialization» убедитесь, что в папке с приложением также есть файл графического драйвера egavga.bgi и его путь в программе указан правильно.

Для нормального функционирования курсовой работы необходимо наличие в папке следующих файлов:

KOMP.EXE

1.EXE

2.EXE

3.EXE

4.EXE

5.EXE

6.EXE

EGAVGA.BGI

TRIP.CHR

SANS.CHR

LITT.CHR

INPUT.ASM

Любой файл размером < 1 мегабайта (потребуется для индивидуального задания)

При запуске приложения отображается графическая заставка, сопровождаемая мелодией и анимацией, а также содержащая информацию об авторе.

Нажмите “M” для отображения меню курсовой работы. Выход производится с помощью клавиши Esc. При нажатии любой другой клавиши останавливается мелодия и анимация.

Для запуска задания, наведите курсор на задание которое вам нужно и нажмите Enter. Запускается программа из курсовой работы, после выхода из неё, программа автоматически перейдёт в меню

В индивидуальном задании потребуется ввести имя файла, после чего нажать ENTER.

Курсовая работа тестировалась на операционных системах MS DOS и Microsoft Windows 95/2000/XP, для запуска на операционных системах Windows более высокой версии потребуется специальное программное обеспечение.


Список литературы

1. Калашников О. «Ассемблер? Это просто!»

2. Питер Абель. Ассемблер и программирование для IBM PC

3. Курс лекций по предмету «Информатика»

4. Методические указания к выполнению лабораторных работ по предмету «Информатика»

5. Крупник А. - Ассемблер Самоучитель

6. Крупник А. - Изучаем ассемблер

7. Митницкий В. - Архитектура IBM PC и язык Ассемблера

8. Голубь Н. - Искусство программирования на Ассемблере