Ассемблер тілінде толық экранды меню бағдарламасын құру және файлдар, директориялар, дискілер мен түстік графикалық параметрлерді басқару

ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Қаныш Сатпаев атындағы қазақ ұлттық техникалық университеті
Есептеу техника кафедрасы
КУРСТЫҚ ЖОБА
Тақырыбы: Меню
жетекші:
аға оқытушы
Мустафина Б. М.
нормоконтролер:
оқытушы
Азембаева Г. Т.
Тапсырған күні:
“___” 2003 г.
қолы:
студент: Бектасова Г.
тобы: ЗБИ-00-1
мамандығы: 3704
Алматы 2003
Қазақстан Республикасының Білім және Ғылым Министірлігі
Қ. И. Сәтпаев атындағы Қазақ Ұлттық Техникалық Университеті
Ақпараттану және Ақпараттық Технологиялар Институты
Есептеуіш техникасы кафедрасы
Мамандығы ЗБИ-00-1қ
Курстық жұмысты орындауға тапсырма
Студент Бектасова Г. А.
Жұмыстың тақырыбы ”Меню“программасын құру. Оны толық экранда көру, директорияларды ауыстыру, ағымдағы дискіні ауыстыру.
Аяқталған жұмысты тапсыру уақыты: 19. 05. 03.
Тапсырманың берілген уақыты: 15. 03. 03.
Жұмыстың жетекшісі Мұстафина Б. М.
Мазмұны
Кіріспе
1. Есеп қойылымы және шешудің алгоритімі . . . 5
- Ассемблер тілінде программалау . . . 5
- Ассемблер командасының пішімі . . . 6
- Программаның жазылуы . . . 6
- Есепті шешудің алгоритімі . . . 7
- Программаның жолдық көрсетілуі . . . 8
2. Программадағы инструкция . . . 9
2. 1 Прогрммистке (жүйелік) басқару . . . 9
2. 2 Операторлық босқару . . . 9
3. Программада қолданылған функциялар мен командалар . . . 10
Қортынды . . . 14
Қолданылған әдебиеттер
Қосымша А
Кіріспе
Бұл курстық жобада маған қойылған тапсырма “Меню” программасын құру, ол таңдап алынған белгілі бір файлмен қандайда бір операцияны орындау керек. Курстық жобаны орындау үшін видеобуфер және файлдармен жұмыс істей білу керек. Курстық жобаны орындау барысында аасемблер тілінің видеобуфер, файлдарға арналған тарауларын пайдаланамыз.
Берілген курстық жұмыс программасы меню вариантын ұсынады. Программаны іске қосқанда негізгі меню шығады. Ол төрт пунктен тұрады: ”файл”, ”цвет”, ”графика”, ”выход”. ”Файл” пункті бес пункттан тұрады “*. ЕХЕ”, ”*. TXT”, ”Ch. DIR”, ”Ch. DISC”, ”See Dir”. ”Цвет” пункті төрт пункттан тұрады, ”красный”, ”желтый”, ”зеленый”, ”синий”.
- Есеп қойылымы және шешудің алгоритіміАссемблар тілінде программалау
Ассемблер тілінде программа жазу кезінде қолданылатын кейбір қажетті ұғымдарды атап өтейік.
Оператор- бұл белгілі бір әрекет жасау үшін машинаға берілетін нұсқау, әрбір операторға машиналық команда сәйкес келеді. Оперант- әрекет істелінетін деректердің мекенін көрсетеді. Жалғаноператор - ассемблерге деректер және командалармен не істеу керектігін анықтайтын нұсқау береді. Бірақ орындалатын EXE дерекжиынында бұл жалған операторларға сәйкес машиналық шартбелгі болмайды.
Макрокоманда - бастапқы программадағы бірнеше машинелік командалардың орнына жүктелетін символдық аталым.
Ассемблер тілінде тұрақты шамалардың бірнеше түрі қолданылады.
- Екілік тұрақты шама (0 және 1) . Бұл символдар міндетті түрде D әрпімен бітуі керек. Мысалы:11101011001 D
- Оналтылық тұрақты шамалар (0 - 9, A, B, C, D, E, F) . Міндетті түрде бұлар H әрпімен бітеді. Егер әріптен басталатын болса, онда алдына 0 қойылады. Мысалы: 0AB127H, 4AH.
- Ондық тұрақты шамалар (0-9) . Соңына D әрпін қоюғада, қоймауға да болады.
- Символдық тұрақты шамалар. Тырнақшаға алынған кез-келген символдар немесе цифрлар жиынтығы.
1 . 2 Ассемблер командасының пішімі
[таңба:] шартбелгі [1-операнд], [ 2-операнд] [; түсініктеме] . Тікжақшаға алынған команданың бөліктері ассемблер командасының түріне байланысты оның құрамында болуы да болмауыда мүмкін.
Таңба
Таңба символдардан тұрады. Бұл символдар жинағы қос нүктемен (:) аяқталады. Таңбаның аталымы A-Z, a-z латын әріптерінен, 0- 9 сандарынан және ?, (. ), $, &, _, @ символдарынан тұрады. Ескертулер:
- таңба аталымының арасында бос аралық болмау керек;
- таңба аталымы ішінде (. ) пайдаланылатын болса, ол бірінші болып тұруы керек;
- регистлердің аттарын таңба ретінде алуға болмайды;
- таңбаның аталымы үшін белгілі бір мағананы білдіретін сөздер алған ыңғайлы;
- көп қайталанатын бірдей әріптерді пайдаланбаған дұрыс (мысалы: ) .
Операцияның шартбелгісі.
Шартбелгі- команданың мнемоникалық шартбелгілерінен құралады. Таңбадан және басқа операндтардан бос аралық арқылы бөлінеді. Команданың құрамында шартбелгі міндетті түрде болуы керек.
Операндтар.
Операндта деректер, деректердің мекені және регистрлердің аттары сақталады. Екі операндты командаларда бірінші операнд қабылдағыш, екінші операнд таратқыш міндетін атқарады. Командаға сәйкес орындалған операцияның нәтижесі бірінші операндқа жазылып отырады.
Түсініктеме.
Белгісі- нүктелі үтір (; ) . Алдындағы команданың бөліктерінен кемінде бір бос аралық арқылы бөлінеді.
1. 3 Программаның жазылуы
“Меню” программасы ассемблер тілінде жазылған.
Бұл программаны орындау үшін осы ассемблер тілінің трансляторы TASM. EXE, TLINK. EXE және операциялық жүйе DOS немесе WINDOWS қажет.
Жүйелік талап: компъютер IBM PC және операциялық жүйе DOS.
Бұл программа Intel Pentium 166, MMX, VGA. 28 электронды есептеуіш машинасында теріліп өңделген.
Программаны орындауға шақыру командалық жолдағы Nazym. exe файлын шақыру арқылы орындалады.
Бұл программа “UP”, ”DOWN”, ”ENTER” және ”ESC” пернелерімен жұмыс істейді.
Графикалық режимде экранға енгізілетін ақпарат: негізгі меню.
Тапсырма шешімінің алгоритімі 1, 4 пункте берілген.
1. 4 Есептi шешудiң алгоритмi
- Программа бойынша инструкция
2. 1. Программистке (жүйелік) басқару.
Программаның қолданылуы - текстік файлды қарау. IBM PC типтес машиналарда программа қараушы (просморщик) ретінде қолданылады. Программа MS DOS операциялық жүйесінің басқаруы арқылы жүзеге асады. Оның жұмыс істеуі үшін операциялық жадының 512 КБайттайы бос орын болуы керек және 80386 процессоры.
Программа GULNARA. EXE файлын жүктеу арқылы іске асады.
Кіріс мәліметтер - командалық жолда файл аты.
Шығыс мәліметтер - дисплейде текстік ақпарат.
2. 2. Операторлық басқару (пользователь)
Программаны іске қосу KURS каталогындағы GULNARA. EXE файлын жүтеу арқылы іске асады. Бұл іске қосылғаннан кейін меню шығады, ол <ESC> пернесін бассақ программа аяқталады, Ал <DOWN>, <UP>, <RIGHT>, <LEFT> пернелерін басатын болсақ онда программа орындалуға жіберіледі.
Бұл программаны іске қоспас бұрын кез-келген кеңейтілуі . TXT (readme. txt), . ЕХЕ (gul. exe) файлдарын буферге жүктеу керек. Олар менюдің бірінші пунктіндегі “*. ЕХЕ” ”пунктін және <ENTER> пернесін басу арқылы іске асады. Олардан кейін терезе тазартылып gul. exe файлы ашылады. “*. ТХТ” пунктін және <ENTER> пернесін басқаннан кейін терезе тазартылып readme. txt файлдың ішіндегі мәлімет шығарылады.
”Ch. DIR” пунктін және <ENTER> пернесін басқаннан кейін ауыстырғыңыз келген директорияны жазғаннан кейін жазған директорияңызға ауысады. Егер директориядағы файлдарды көргіңіз келсе, басты менюдің бесінші пунктіндегі”See Dir” пернесін басыңыз. ”Ch. DISC” пунктін және <ENTER> пернесін басқаннан кейін дискілер түрі шықаннан кейін ашқыңыз келген дискіні таңдайсыз. Егер дискідегі файлдарды көргіңіз келсе, басты менюдің бесінші пунктіндегі ”See Dir” пернесін басыңыз. Басты менюдің ”Цвет” пунктінің бірінші пункті ”красный” пунктін және <ENTER> пернесін басқаннан кейін басты менюдің фоны қызыл түске ауысады. Екінші пункті ”желтый” пунктін және <ENTER> пернесін басқаннан кейін басты менюдің фоны сары түске ауысады. Үшінші пункті ”зеленый” пунктін және <ENTER> пернесін басқаннан кейін басты менюдің фоны жасыл түске ауысады. Төртінші пункті ”синий” пунктін және <ENTER> пернесін басқаннан кейін басты менюдің фоны көк түске ауысады. Басты менюдің ”Графика” пунктін басқаннан кейін терезе тазарып, жасыл түске боялады. Басты менюдің ”Выход” пункті программадан шығуды іске асырады.
3. ПРОГРАММАДА ҚОЛДАНЫЛҒАН ФУНКЦИЯЛАР МЕН КОМАНДАЛАР
Мен бұл курстық жұмысты орындау барысында Ассемблер машиналық тілінің стандартты функцияларымен командаларын қолдандым. Өз курстық жұмысымда ақпаратты пернетақтадан енгізу, дисплейге шығару, математикалық операциялар орындау және тағы да басқа функцияларды қолдандым.
Енді жоғарыда айтылған функцияларды сипаттап өтейік:
DOS (21h) үзуінің функциясы:
09h - дисплейге символдар қатарын шығаруды жүзеге асырады .
Символдық жолды стандартты шығу құрылғысына шығарады. Жол $ символымен бітуі қажет. Нәтижені қайта бағыттандыру мүмкіндігі бар. Кеңейтілген ASCII кодын оқу үшін функцияның қайта орындалуы қажет. Егер кіріс қайта бағыттандырылған болмаса, онда <CTRL>/C өңдеуді бастайды. BREAK режимі қосулы барысында егер кіріс қайта бағыттандырылған болса, онда <CTRL>/C өңдеуді бастайды.
Шақыруда:
DS:DX - $ -белгісімен бітетін символдар қатарының адресі.
01h - пернетақтадан символды енгізуді жүзеге асырады.
Стандартты енгізу құрылғысынан қатарды шығарады да оны стандартты шығару құрылғысынада көрсетеді. Символ болмаған жағдайда оның енгізілуін күтеді. Нәтижені қайта бағыттандыру мүмкіндігі бар. Кеңейтілген ASCII кодын оқу үшін функцияның қайта орындалуы қажет. Егер кіріс қайта бағыттандырылған болмаса, онда <CTRL>/C өңдеуді бастайды. BREAK режимі қосулы барысында егер кіріс қайта бағыттандырылған болса, онда <CTRL>/C өңдеуді бастайды. Символды енгізгеннен кейін AL- де символдық ASCII кодасы болады.
3Fh - деректерді құрылғыдан енгізуді жүзеге асырады.
Деректерді файлдан қолданушының буферіне жібереді де көрсеткішті модифициялайды. Символдық құрылғыдан оқу барысында ASCII режимінде қатардың көрсетілген ұзындығы оқылады немесе каретканың оралуына дейін, егер ол бұрын кездессе.
Шақыруда:
BX - файлды сипаттаушы
DS:DX -деректерді оқу үшін буфер адресі
CX - оқылатын байт саны
Қайта келу кезінде:
AX - қате коды, егер CF орнатылған болса. Егер AX=0, файлдың соңы.
AL -оқылған байттардың нақты саны
40h - Файлды жазуды немесе құрылғыға шығаруды жүзеге асырады.
Деректерді файлдан қолданушының буферіне жібереді де көрсеткішті модифициялайды. Егер шақыру кезінде CX=0, файлдың ұзындығын көрсеткіштің ағымдағы орнымен сәйкестендіріп орнатады. Егер шығарудың алдында пернетақтадан <CTRL>/C терілсе және BREAK режимі қосылған болса, <CTRL>/C өңделуі басталады.
Шақыруда:
BX - файлдың немесе құрылғының логикалық номері. Дисплейдің 0 мен 1 логикалық номері бар.
CX - шығарылатын символдар саны
DS:DX - буфер адресі
Қайта келу кезінде:
AL - нақты саналған байт саны
Егер CF=0, онда AX-ке фактілі жазылған байттар саны енгізіледі. Егер CF=1, онда AX-ке қайтарудың (қате коды) коды енгізіледі.
4Ah -Жадының белгіленген блогының өлшемін өзгертуін жүзеге асырады.
Жадының белгіленген блогының өлшемін кішірейтеді немесе кеңейтеді.
Шақыруда:
BX - блоктың қажет өлшемі
ES - модифицияланған блоктың сегменттік адресі
Қайта келу кезінде:
AX - қате коды
BX -жады блогының ең үлкен өлшемі
10h үзуінің функциясы - видио сервис:
01h - Курсордың конфигурациялық орнатылуын жүзеге асырады.
Текстілік видиорежимде ашылатын аппараттық курсордың бастапқы және соңғы қатарларға орнатады.
Шақыруда:
CH-тің 0…4 биттері - бастапқы қатар
СL-тің 0…4 биттері- соңғы қатар
02h - Курсордың позициясын орнатуды жүзеге асыру.
Көрсетіген бетте экранға текстілік координатта курсордың орнатады. Курсорды текстілік режимде, графикалық режимде де орнатуға болады, бірақ графикалық режимде курсор көрінбейді.
Шақыруду:
BH - видио беттің номері, 0- бірінші бет
DH, DL - қатар, бағана
06h - Терезені жоғары айналдыру (немесе тазалау) .
Терезені берілген координаттармен, берілген атрибуттармен ASCII-ің пробелдерімен немесе терезені берілген қатар санына төменге айналдыру. Тек активті терезеге қатысты. Айналдыру кезінде жоғарыда пайда болатын қатарлар берілген атрибуттармен ASCII-ің пробелдерімен толықтырылады.
Функцияны экранды немесе экранның кез-келген тікбұрышты ауданын тез тазарту үшін қолданылады.
Шақыруда:
CH, CL - терезенің жоғарғы сол бұрыш қатары, бағанасы
DH, DL - терезенің төмнегіоң бұрыш қатары, бағанасы
AL - бос қатар саны, төменнен жоғары жылжыту(0 = терезені толық тазарту)
BH - бос қатарлар үшін қолданылатын видио атрибут
08h - Курсордың позициясында қатарды және атрибутты оқуды жүзеге асырады.
Берілген бетте ASCII символын және оның атрибутын курсордың позициясына қайтару.
Шақыруда:
BH - бет
Қайта келу кезінде:
AL - символ
AH - атрибут.
09h - Символды атрибутымен курсордың ағымдағы позициясына шығаруды жүзеге асырады.
Ағымдағы курсор позициясына қатарды және оның атрибуттарын графикалық режимде, текстілік режимде де жазады. Графикалық режимде символдар келесі қатарға шықпауы қажет. AL-де барлық кодтар белгілер сияқты қарастырылады және курсордың жағдайымен басқармайды.
Шақырылу:
ВL - атрибут (текстілік режим) немесе түс (графикалық режим) .
ВH - бет
AL - символ
СХ - қайталану коэффициенті
0Сh - Пиксельдерді жазу.
Берілген графикалық позицияда берілген түсті нүктені видиобуферге жазады.
Шақыруда:
АL - түс (түсті регистрдің номері)
ВH - бет
DX - графикалық қатар
СХ - графикалық бағана
BIOS (16h) үзуінің функциясы:
00h - пернетақтадан символды оқуды жүзеге асырады.
Перне басылғаннан кейін (егер ASCII кодасы бар символды перне басылған болса) AL регистріне перненің ASCII кодасы немесе (егер функциялық перне басылған болса) 0 жазылады, ал AH регистріне перненің скан-кодасы жазылады. AL регистрінің мәніне қарай символды немесе функциялық перненің басылғандығын анықтауға болады.
Қорытынды
Курстық жобамен жұмыс істеу уақытында ASSЕMBLER тіліндегі объективті бағытталған программасының кейбір аспектілері қарауда. Курстық жобаны
Дайындау барысында программалық документация., программалық ASSЕMBLER, MICROSOFT WORD, MICROSOFT EXEL, PAINT тілдерінде жұмыс істеу туралы тәжірибе алдық.
Қолданылған әдебиеттер
1. Тұрым А. ЭВМ кешендер, жүйелер және тораптардың жүйелік қамтамасы. Алматы 1995 ҚазҰТУ
2. Куцый А. П, Мұстафина Б. М, Ахметова М. А MS-DOS-тың жүйелік функциялары (1, 2-бөлім) . Алматы 2001 ҚазҰТУ
3. Финогенов К. Г Самаучитель по системным функциям MS-DOS.
Москва 1993.
sseg segment
db 512 dup(?)
sseg ends
dseg segment
paramblk dw 7 dup(0)
exname db '2. exe', 0
fname db 'readme. txt', 0
bufin db 80 dup(' ')
handle dw 0
left = 8
top = 1
wids = 10
height = 5
StrNum db ?
StbNum db ?
atr db ?
ramka2 db ' Файл Цвет Гpафика Выход ', '$'
ramka1 db 218, 9 dup (196), 191, 10, 13
db left dup(0), 179, ' Кpасный ', 179, 10, 13
db left dup(0), 179, ' Желтый ', 179, 10, 13
db left dup(0), 179, ' Зеленый ', 179, 10, 13
db left dup(0), 179, ' Синий ', 179, 10, 13
db left dup(0), 192, 9 dup (196), 217, 10, 13, '$'
ramka3 db 218, 7 dup (196), 191, 10, 13
db 179, ' *. EXE ', 179, 10, 13
db 179, ' *. TXT ', 179, 10, 13
db 179, 'Ch. DIR', 179, 10, 13
db 179, 'Ch. DISC', 179, 10, 13
db 179, 'See DIR', 179, 10, 13
db 192, 7 dup (196), 217, 10, 13, '$'
DirPr dw DP1, DP2, DP3 path1 db 66, 0, 64 dup (0)
errdir db 'Error!!! Directory does not exist . . . ', '$' mes1 db 'The Directory is now current', '$' diskpath db 64 dup(0)
disks db 26 dup(0)
diskkol db 0
files db 0
filefind db '*. *', 0
newDTA db 128 dup (0)
dseg ends
cseg segment
assume ds:dseg, ss:sseg, cs:cseg
; clear screen
Proc cls
mov cx, 0
mov dx, 184fh
mov al, 0
mov ah, 06h
mov bh, 8
int 10h
ret
cls endp
; LineHOR
proc lineHOR
mov cx, 7
mov dh, 0
mov ah, 2
int 10h
lnhor: push cx
mov cx, 1
mov ah, 8
int 10h
mov ah, 9
int 10h
inc dl
mov ah, 2
int 10h
pop cx
loop lnhor
ret
lineHOR endp
; Line3
proc line3
mov cx, 8
mov dl, 0
mov ah, 1
int 10h
ln3: push cx
mov cx, 1
mov ah, 8
Int 10h
mov ah, 9
int 10h
inc dl
mov ah, 2
int 10h
pop cx
loop ln3
ret
line3 endp
; Line
proc line
mov cx, wids-1
mov dl, left+1
mov ah, 2
int 10h
ln: push cx
mov cx, 1
mov ah, 8
int 10h
mov ah, 9
int 10h
inc dl
mov ah, 2
int 10h
pop cx
loop ln
ret
line endp
; Draw HOR ramka
proc HorDrawRamka
mov ah, 02h ; Draw HOR Ramka
mov dh, 0
mov dl, 0
mov bx, 0
int 10h
mov ah, 09h
lea dx, ramka2
int 21h
ret
HorDrawRamka endp
; Draw ramka3
proc DrawRamka3
mov ah, 02h ; DrawRamka
mov dh, 1
mov dl, 0
mov bx, 0
int 10h
mov ah, 09h
lea dx, ramka3
int 21h
ret
DrawRamka3 endp
; Draw ramka
proc DrawRamka
mov ah, 02h ; DrawRamka
mov dh, top
mov dl, left
mov bx, 0
int 10h
mov ah, 09h
lea dx, ramka1
int 21h
ret
DrawRamka endp
; Draw HOR background
proc HorBackground
mov ah, 06h
mov al, 0
mov bh, atr
mov ch, 0
mov cl, 0
mov dh, 0
mov dl, 79
int 10h
ret
HorBackground endp
; Draw background3
proc Background3
mov ah, 06h
mov al, 0
mov bh, atr
mov ch, 1
mov cl, 0
mov dh, 7
mov dl, 8
int 10h
ret
Background3 endp
; Draw background
proc Background
mov ah, 06h
mov al, 0
mov bh, atr
mov ch, top
mov cl, left
mov dh, top+height
mov dl, left+wids
int 10h
ret
Background endp
;
DP1: ; Процедура установки директория
mov ah, 2 ; Установить
mov bx, 0 ; курсор
mov dh, 4 ; в позицию
mov dl, 10 ; 4х10
int 10h
mov ah, 0Ah ; Ввод
lea dx, path1 ; строки символов в пересенную path1
int 21h
xor bx, bx
mov bl, path1[1] ; Записать в BL количество введенных символов
mov path1[bx+2], 0 ; Дописать в конец строки 0 (ASCIZ)
mov ah, 3Bh ; Установить
lea dx, path1[2] ; текущий директорий
int 21h
jc errchdir ; Если ошибка - перейти на errchdir
call cls ; Обновить
call HorBackGround ; экран
call HorDrawRamka ;
mov ah, 02 ; Установить
xor bx, bx ; курсор
mov dh, 20 ; в позицию
mov dl, 0 ; 20x0
int 10h
mov ah, 09h ; Вывести
lea dx, mes1 ; сообщение mes1
int 21h
ret
errchdir:
call cls ; Обновить
call HorBackGround ; экран
call HorDrawRamka
mov ah, 02 ; Установить
xor bx, bx ; курсор
mov dh, 20 ; в позицию
mov dl, 0 ; 20x0
int 10h
mov ah, 9 ; Вывести
lea dx, errdir ; сообщение errdir
int 21h
ret
;
DP2: ; Процедура переключения текущего диска
mov disks[0], 'A' ; Записать в таблицу имен дисков "A"
mov diskkol, 0 ; Сбросить количество обнаруженных дисков
xor dx, dx ; В DX будет логический номер диска
mov bx, 1
mov cx, 24 ; кол-во проверяемых дисков
mov dl, 03h ; Начать проверку с жестких дисков (C, D . . . )
lea si, diskpath ; строка, куда будет возвращаться путь на диске
checkdisks:
test cx, cx ; если CX=0
jz chngdisk ; то перейти на chngdisk
mov ah, 47h ; определить текущий директорий на
int 21h ; проверяемом диске
jc nodisk ; идти на nodisk, если ошибка определения пути
mov disks[bx], dl ; иначе записать в таблицу имен дисков номер
add disks[bx], 40h ; и преобразовать его в латинскую букву
inc bx ; перейти к следующему имени диска в таблице
inc dl ; следующий логический номер диска
dec cx ; уменьшить счетчик
jmp checkdisks ; вернуться на проверку
nodisk: ; если диск не определился
inc dl ; проверить следующий логический номер диска
dec cx ; уменьшить счетчик
jnz checkdisks ; если счетчик не = 0, вернуться на проверку
chngdisk:
mov diskkol, bl ; в DISKKOL - количество найденных дисков
call cls ; Обновить
call HorBackGround ; экран
call HorDrawRamka
mov ah, 02h ; Установить
mov bh, 0 ; курсор
mov dh, 20 ; в позицию
mov dl, 0 ; 20x0
int 10h
xor cx, cx ; Обнулить счетчик
mov cl, diskkol ; записать в счетчик количество дисков
xor bx, bx
diskout: ; Вывод имен найденных дисков
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz