Аппараттық үзілістер




М а з м ұ н ы
Кіріспе ……………………………………………………………
3
Қысқартылған сөздер ................................................................. 4
1. Микропроцессорлар ……....................................................... 5
1.1. Микропроцоссордың келіп шығу тарихы ................................... 5
1.2. Микропроцессордың түрлері ....................................................... 6
2. Үзілістер .................................................................................. 8
2.1. DOS үзілістері ……………………………………..…………….. 8
2.2. BIOS үзілістері …………………………………………………. 9
Қорытынды ……………………………………………………
Пайдаланылған әдебиеттер …………………………………..
Қосымшалар ...............................................................................
15
16
17
КІРІСПЕ
Кез келген есепті шешу алдында бағдарлама жазу үшін
Жоғарғы деңгейлі тілдерде есептеу жөне мәтіндермен жұмыс істейтін
Есептеу машинасын керекті бағытта жұмыс істететін -машиналық тіл.
Қазіргі заманғы программалау технологияларын пайдалана отырып, бірде-бір код
Компьютердің барлық мүмкіншіліктерін тиімді пайдалану үшін машиналық тілдің
Ассемблер тілі - машиналық тілдің рәміздік сипаты. Ассемблер
Ассемблер тілінде жазылған бағдарламаларында үзілістер кеңінен қолданылады. Үзіліссіз
Курстық жұмыста үзілістер және олардың түрлері жайлы баяндалған
Қысқартылған сөздер:
ЭЕМ – электрондық есептеу машинасы;
ДК - дербес компьютер;
АЛҚ – арифметикалық және логикалық құрылғы
АЖ - ақпараттық жүйелер;
МҚ – мәліметтер қоры;
МҚБЖ - мәліметтер қорын басқару жүйелері;
БТ – бағарламалау тілі;
БҚ – бағдарламалық қамтамасыздандыру;
БҚҚТ – бағдарламалық қамтамасыздандыру құру технологиясы;
ЖИ – жасанды интеллект;
ЖИЖ - жасанды интеллект жүйелері;
ЖДБТ – жоғарғы бағдарламалау тілі;
ТДБТ – төменгі бағдарламалау тілі;
МП – микропроцессор.
1. МИКРОПРОЦЕССОРЛАР
1.1. Микропроцоссордың келіп шығу тарихы
ДК ұғымын INTEL фирмасы жаратқан МП негізінде құрылған
Компьютер (computer) ағылшын сөзі болып, оны қазақ тіліне
Арифмометрдің кемшіліктері: есептеу жылдамдығы жай, құрылғының көлемі үлкен
XIX ғасырдың бірінші жартысында ағлшын математигі Чарьз Бэббидж
Берілгендер перфокарта көмегімен енгізілді. Бэббидж аналитикалық машинасын соңына
1943 жылдан бастап Джон Мочли және Прескере Экерт
орталық процессор
Сурет 1. Джон фон Нейман принципі
АЛҚ - арифметикалық және логикалық амалдарды орындаушы құрылғы.
СҚ – Ақпаратты енгізу – шығаруларды құрылғысы.
1.2. Микропроцессордың түрлері
Микропроцессор – компьютердің негізгі элементі болып есептелінеді. Бұл
IBM PC компьютерлерінде Intel фирмасының микропроцессоры және соған
Егер компьютерлерде математикалық есептеулер орындау қажет болса, негізгі
Жедел жад – компьютердің екінші негізгі элементі есептелінеді.
Микропроцессорлардың сипаттамалары:
МП модел түрі Intel, AMO, Cyzix, IBM.
Тактикалық жиілік МГУ, ГПУ
Бірінші МП 1971 жылы құрылды. Ол 4
1971 жылы IBM компаниясы МП 8080
1976 жылы Apple комапаниясы өзінің бірінші микропроцссорын құрды.
1978 жылы IBM компанясы 16 разрядты МП
1979 жылы Intel фирмасы микропроцессор МП 8088 құрды.
1983 жылдары МП 80186 қолданылмады, өйткені
1984 жылы IBM компаниясы МП 80286 негізінде IBM
1987 ж i386
32 разрядты көп есепті режимде істеді.
1990 ж i486
1993 ж Pentium 64 разрядты.
1987 жылы IBM фирмасы IBM PC AT дербес
1993 жылы Intel фирмасы 64 разрядты Pentium
2. ҮЗІЛІСТЕР
2.1. DOS үзілістері
Үзіліс дегенде алдын ала дайынған стандартты процедураларға айтамыз.
Жалпы үзілісті үш топқа бөлінеді:
Аппараттық үзілістер;
Бағдарламалық үзілістер;
Логикалық үзілістер.
Ассемблерде бағдарламалық үзілістер қолданылады.
Ассемблер бағдарламаларында мәліметтерді клавиатурадан енгiзуде немесе дискке сақтауда
DOS үзілістері;
2. BIOS үзілістері.
DOS үзілістері жазылу форматы:
Mov AH,
INT ,
мұндағы
AH – 1 байттық AX регистрінің үлкен бөлігі;
INT – Interput ағылышын сөзінің бірінші үш әріптері
- үзіліс нөмірі;
- үзіліс функциясының нөмірі.
Үзіліс нөмірі 21h болған функцияларды қарастырайық.
mov ah,1
int 21h
Клавиатурадан бір символды енгізеді. Енгізілген символ AL
mov ah,2
int 21h
Экранға бір символды шығарады. Шығару DL регстрінен орындалады.
mov ah,9
int 21h
Жолдар қатарын DX регистрден экранға шығарады. Шығарылатын жолдар
mov dx, offset ,
мұндағы - жол жазылған айнымалы аты.
mov ah,4ch
int 21h
Бұл функция бағдарламаның жұмысын аяқтайды.
DOS үзілісіне ассемблер бағдарламалық мысалдар Қосымша 1
Жалпы DOS үзілістер арифметикалық және логикалық есептеулерде, енгізу
2.2. BIOS үзілістері
DOS үзілістерінен ерекше BIOS үзілістері негізінен графикалық режимде
Экран, клавиатура және графикамен жұмыс істеуде BIOS-тың
0000 – жоғарғы сол бұрыш
80, 79 – жоғарғы оң бұрыш
12 39/40 – экран ортасы
24, 00 – төменгі сол бұрыш
24,79 – төменгі оң бұрыш
MOV AH, Ø2; 45 позицияға жылжытуға сұраныс
MOV BH, 00; 00 экран
MOV DX, Ø5; Ø5 қатар
MOV DL,12; 12 бағана
INT 10H
Экранды тазалау
MOV AX, Ø6 Ø Ø ØH ;
; AL Ø Ø (толық экран)
MOV BH, Ø7; атрибут
MOV CX, 000; жоғарғы сол позиция
MOV DX, 184 FH ; төменгі оң позиция
MOV AH, Ø9
LEA DX, NAM
INT 21H
CMP C, Ø8H
IB D3 Ø
CMP C,DH
IBE D4 Ø
MOV AH, 40H; шығаруға сұраныс
MOV BX, 01
MOV CX, 20
LEA DX, NAM
INT 21H
Күрделiрек амалдарды жоғары деңгейлi DOS үзіліс INT 21H
DOS үзілістері нақты әсерге арналған BIOS үзілістерге басқаруды
BIOS үзілістері жиi кезедесетін енгiзулер немесе қорытындылаулар амалдарын
- стектiң көрсеткішін екіге азайтады және
- TF флагтық регистрді
- стектiң көрсеткішін екіге азайтады және стекке CS
- стектiң көрсеткішін екіге азайтады
- қажеттi амалдардың орындалуын қамтамасыз
- регистрдiң мәнiн стек қалпына келтiредi және командаға
Бұл процесс автоматты түрде толық орындалады. Тек қана
BIOS үзілістің INT 10H және DOS үзілістің INT
Экранды екі өлшемді кеңістік көрінісінде сипаттауға болады. Мысалы,
Координаталар (бағана жол) болып енгізіледі.
00000000 - шi жоғарғы сол бұрыш
007900 - шi жоғарғы оң бұрыш
1239/400027/28-шi экранның орталығы
24001800-шi төменгi сол бұрыш
2479184F-шi төменгi оң бұрыш
Курсорды қажетті орынға қоюда, командаға BIOS үзілісінің
MOV AH, 02 ;курсорды
MOV BHд, 00 ;0 -
MOV DH, 05 ;05-шi жол
MOV DL, 12 ;12-шi бағана
INT 10H ;BIOS
AH регистрiндегi 02 мән BIOS үзілісін INT 10H
MOV DX, 050CH ;5-шi жол, 12-шi бағана
Экран тазалау
"Скролинг" сұранысы және командалары экран бетін айналдыруды
MOV AX, 0600H ;(айналдыру ) AH 06
;(барлық эуран ) AL 00
MOV BH, 07 ;(қара/ақ )
MOV CX, 0000 ;Жоғарғы сол позиция
MOV DX, 184FH ;Төменгi оң позиция
INT 10H ;BIOS
06 AHның регистрiндегi мән экранды тазалау амалын INT
BIOS үзілістерінің сервистері
Үзіліс сервистері деп, BIOS немес операциялық жүйе
INT инструкциясын алып болған соң, процессор стекке флагтар
(IVT) үзіліс нөмірін анықтаймыз. Бұл амалдардың орындалуы процессор
Видео режимдер:
Int5 – PrintScreen клавишасы: экрандағы мәліметтерді принтер буферіне
Int10-00 - Видеорежимді орнатады. Аргументтер: ah=00,
Int10-01 – Курсор өлшемін орнатады. Аргументтер: ah=01, ch=бастапқы
Int10-02 – Курсор позициясын орнатады. Аргументтер: ah=02, bh=
Int10-03 – Курсор орнын және өлшемін есептейді. Аргументтер:
Int10-05 - Активті видео бетті таңдау. Аргументтер: ah=05,
Int10-06 – Экранды жоғары айналдыру. Аргументтер: ah=06, al=айналатын
Int10-07 – Экранды төменге айналдыру. Аргументтер: ah=07, al=айналатын
Int10-09 – Таңба және оның аттрибуттарын жазу. Аргументтер:
Int10-0A – Таңбаны жазу. Аргументтер: ah=0A, al= таңба
Int10-0C – Нүктені сақтау (1 пиксел). Аргументтер: ah=0C,
Int10-0D - Нүктені оқу (1 пиксел). Аргументтер:
Int10-0E – Арнайы символды шығару. Аргументтер: ah=0E, al=
Int10-0F - Информация о видеорежиме. Аргументы: ah=0F. Выход:
Int10-13 – Жолды жазу. Аргументтер: ah=13, al=видеорежим, bh=видео
Жүйелік:
Int11 – Құрылғы статусы. Шығу: ax=статус, биттік құрылым.
Int12 – Жад өлшемі.Шығу: ax=1 кБ жад блоктары.
Int18 - Жүктелу процесс қателігі.Шақыру ROM Basic,
Int19 – Компьютерді қайта қосу.
Int1B - Control-Break көрсеткіші. Ctrl-Brk клавишасын басумен шақырылады.
Дисктік:
Int13-00 - Дисктік контроллерді тастау. Кіру: ah=00, dl=дисковода
Int13-01 – Иілгіш жиск статусы. Кіріс: ah=01, dl=
Int13-02 – Секторларды оқу. Кіріс: ah=02, al=секторлар саны,
Ввод/Вывод:
Int21-01 – Эхомен символды енгізу. Кіру: ah=1. Шығу:
Int21-02 –Символды шығару. Кіру: ah=2, dl=символ.
Int21-03 – Сыртқы кіру. Кіру: ah=3. Шығу: al=символ.
ҚОРЫТЫНДЫ
Ассемблер тілінің басқа жоғары деңгейлі тілден айырмашылықтары:
ассемблер тілінің жеткізілуі мен машиналық командалардың арасындағы бірмәнді
машиналардағы барлық объектілер мен командаларға қатынау;
бір тектес компьютерлердегі жұмыс.
Ассемблер тілін қолданудың екі негізгі ерекшеліктері бар: жоғары
Кейбір процедураларға ассемблер жасай алатындай аппараттық қамтамасыз етуге
Ассемблер тілінде оператор құрылымы машиналық командаға сәйкес құрылымды
Ассемблер тілінің жеткізілуі төртке бөлінеді. Олар: белгі, операция,
Егер жекізу машиналық командаың символикалық репрезентациясы, не бұл
Операндтардың алаңдары машиналық командалар үшін операндтар болып табылатын
Комментарий алаңында программа әрекетінің түсіндірмесі келтіріледі. Бұл комментарийлерсіз
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР
Абель П. Язык Ассемблера для ІBM PC и
Бек Л. Введение в системное программное обеспечение.- М.:
Брэдли Л. Программирование на языке Ассемблера для персональных
Крейслер С Проектирование операционных систем для малых ЭВМ
Нортон П. ПК фирмы ІBM и OS MS-DOS.
Пильщиков В.Н. Программирование на языке ассемблера IBM PC.
-с.286.
Питс Д. Red Hat Lmux Энциклопедия пользователя.-Киев ДиаСофт,
Скэнлон Л. ПЭВМ ІBM PC и XT. Программирование
Спесивцев А.В. и др. Защита информации в персональных
Хаузер Д., Хирт Дж. Операционная система MS DOS.-М.:
ҚОСЫМШАЛАР
Қосымша 1. Ассемблер кодындағы бағдарламалар
;мәтінді экранға шығару
data segvent
x db “MKTU$”
assume ds:data,cs:data
begin:
mov ax,data
mov ds,ax
mov ah,9
mov dx,offset x
int 21h
mov ah,4ch
int 21h
ends data
end begin
;клавиатурадан бір таңбалы бүтін оң санды енгізу
;және оны экраннан шығару
data segvent
a db ?
assume ds:data,cs:data
begin:
mov ah,1
int 21h
mov a,al
mov ah,2
mov dl,a
int 21h
mov ah,4ch
int 21h
ends data
end begin
Қосымша 2. Графикаға ассемблер бағдарламалары
;бірінші бағдарлама
.286
ste
db
ste
data
col db
x
y
adr
maska
data
code
assume
;***************************************************************
getadr
pusha
mov
mul
mov
mov
shr
add
mov
mov ah,80h
and
shr
mov
mov dx,03CEh
mov ah,maska
mov
out dx,ax
popa
ret
getadr
;********************** ***********************************
beg:
mov
mov
mov
int
mov
mov es,ax
mov
mov
mov
out
mov x,0
mov y,0
@cicle
mov bx,adr
mov al,0
mov ah,es:[bx]
mov ah,4
mov
mov
out dx,ax
mov al,0FFh
mov es:[bx],al
inc x
cmp x,200
jle @cicle
mov ah,0
int 16h
mov
mov
int
mov
int
code ends
end beg
;екінші бағдарлама
.286
data segment
_srav DW ?
_Horg DW ?
adr DW
cen_x DW 160
cen_y DB 110
X_Left DW ?
X_Rigth DW ?
Y_Down DB ?
Y_UP DB ?
Color DB 4
Mas DB
Red DB
Blue DB ?
Green DB ?
LineData STRUC
X1
Y1
X2
Y2
LineData Ends
LineTable LineData
LineData
LineData
LineData
LineData
LineData
LineData
LineData
LineData
LineData
;Маркер конца таблицы
DB 0FFh
data Ends
;________________________________
stak segment
dw 1024 (?)
stak ends
code segment
assume CS:code,DS:data
;________________________________
Line PROC
CMP Cl,Ch
JNC @@UpToDown
XCHG Ch,Cl
XCHG BX,DX
@@UpToDown:
SUB Cl,Ch
MOV Al,160
MUL Ch
ADD AX,AX
MOV DI,AX
ADD DI,BX
MOV Ch,0
SUB DX,BX
JC @@RightToLeft
CMP CX,DX
JC @@RightDown
MOV AX,CX
MOV BP,CX
SHR AX,1
@@DownRightCicle:
MOV Bl,Color
MOV ES:[DI],Bl
ADD DI,320
SUB AX,DX
JNC @@DownRightTest
INC DI
ADD AX,BP
@@DownRightTest:
LOOP @@DownRightCicle
RET
@@RightDown:
XCHG DX,CX
MOV AX,CX
MOV BP,CX
SHR AX,1
@@RightDownCicle:
MOV Bl,Color
MOV ES:[DI],Bl
INC DI
SUB AX,DX
JNC @@RightDownTest
ADD DI,320
ADD AX,BP
@@RightDownTest:
LOOP @@RightDownCicle
RET
;Справа налево
@@RightToLeft:
NEG DX
CMP CX,DX
JC @@LeftDown
MOV AX,CX
MOV BP,CX
SHR AX,1
@@DownLeftCicle:
MOV Bl,Color
MOV ES:[DI],Bl
ADD DI,320
SUB AX,DX
JNC @@DownLeftTest
DEC DI
ADD AX,BP
@@DownLeftTest:
LOOP @@DownLeftCicle
RET
@@LeftDown:
XCHG DX,CX
MOV AX,CX
MOV BP,CX
SHR AX,1
@@LeftDownCicle:
MOV Bl,Color
MOV ES:[DI],Bl
DEC DI
SUB AX,DX
JNC @@LeftDownTest
ADD DI,320
ADD AX,BP
@@LeftDownTest:
LOOP @@LeftDownCicle
RET
Line ENDP
;________________________________
Get_Ads PROC
MOV CH,cen_y
MOV AL,160
MUL CH
ADD AX,AX
ADD AX,cen_x
MOV DI,AX
Get_Ads EndP
;________________________________
_Left PROC
PUSH DI
@@LD:
MOV AL,ES:[DI]
CMP AL,Color
JE @@LD_Cicle
DEC DI
JMP @@LD
@@LD_Cicle:
INC DI
;
;
MOV X_Left,DI
POP DI
RET
_Left EndP
;________________________________
_Rigth PROC
PUSH DI
@@RD:
MOV AL,ES:[DI]
CMP AL,Color
JE @@RD_Cicle
INC DI
JMP @@RD
@@RD_Cicle:
DEC DI
;
;
MOV X_Rigth,DI
POP DI
RET
_Rigth EndP
;________________________________
Cen_Zac PROC
MOV DI,X_Left
@@Cen_Zac:
MOV AL,ES:[DI]
CMP AL,Color
JE @@Cen_IN
MOV BL,Color
MOV ES:[DI],BL
INC DI
JMP @@Cen_Zac
@@Cen_IN:
;
;
RET
Cen_Zac EndP
;__________________________
;Закрас фигуры
Up_Zac PROC
CALL _Left
CALL _Rigth
;
;
CALL Cen_Zac
MOV DI,X_Left
@@CnU_Zac:
MOV AL,ES:[DI-320]
CMP AL,Color
JNE @@QU_wait
INC DI
CMP DI,X_Rigth
JG @@CnU_IN
JMP @@CnU_Zac
@@QU_wait:
SUB DI,320
CALL Up_Zac
@@CnU_IN:
RET
Up_Zac EndP
;_______________________
Down_Zac PROC
CALL _Left
CALL _Rigth
;
;
CALL Cen_Zac
MOV DI,X_Left
@@CnD_Zac:
MOV AL,ES:[DI+320]
CMP AL,Color
JNE @@QD_wait
INC DI
CMP DI,X_Rigth
JG @@CnD_IN
JMP @@CnD_Zac
@@QD_wait:
ADD DI,320
CALL Down_Zac
@@CnD_IN:
RET
Down_Zac EndP
;___________________________
DAC PROC
CLI
mov dx,3C8h
mov al,Color
out dx,al
mov dx,3C9h
mov al,Blue
out dx,al
mov al,Green
out dx,al
mov al,Red
out dx,al
STI
RET
DAC EndP
;________________________________
;Начало програмы
Start:
MOV AX,data
MOV DS,AX
MOV AX,0A000h
MOV ES,AX
MOV AX,13h
INT 010h
MOV SI,OFFSET LineTable
@@LineCicle:
MOV BX,DS:[SI]+[LineData.X1]
MOV Ch,DS:[SI]+[LineData.Y1]
MOV DX,DS:[SI]+[LineData.X2]
MOV Cl,DS:[SI]+[LineData.Y2]
MOV AL,Color
Call Line
ADD SI,SIZE LineData
MOV AX,DS:[SI]
CMP AX,250
JC @@LineCicle
MOV AH,00h
INT 16h
;____________________________________
MOV DX,03CEh
MOV al,2
MOV AH,Color
OUT dx,ax
;____________________________________
CALL Get_Ads
CALL Up_Zac
CALL Get_Ads
;
CALL Down_Zac
MOV CX,63
MOV AH,63
Dc:
SUB AH,CL
MOV Red,AH
MOV Green,CL
MOV Blue,CL
CALL DAC
MOV AH,00h
INT 16h
LOOP Dc
MOV AH,03h
INT 10h
; Выход из программы в DOS
MOV AX,04C00h
INT 21h
code Ends
End Start
End
Ф-ОБ-001/035
26
Ф-ОБ-001/035
Жедел жад
Арифметикалық және логикалық құрылғы
Басқару құылғысы
Сыртқы құрылғы



Ұқсас жұмыстар

Үзулердің сыныптарға ерекшеленуі
Ақпараттарды өңдеудің техникалық құралдары
МИКРОПРОЦЕССОРЛАРДЫҢ ЖІКТЕЛУІ
Микропроцессорлар және үзілулер
Операциялық жүйе (ОЖ)
Микропроцессорлық жүйенің желілері
Ассемблер тілінде программалау жайлы ақпарат
Локальді есептеу желілерін құрастыру
Ассемблер тілінің синтаксисі, алфавиті
Ассемблерде бағдарламаны өңдеу этаптары