210 likes | 507 Views
Kursa darbi. Datoru arhitektūra. Assembler. Orgjaut ājumi. Jaungada bonuss līdz 5.01.2004 1 2 :00 jāiegūst ieraksts Nav iespējams eksāmens Statuss++ Tiem, kam arī tad nesanāk nekas rakstāms -> 4 J.Plūmem iepriekš jāpiesakās pa e-mail. Komandu izpilde jeb ko dara procesors.
E N D
Kursa darbi Juris Strods
Datoru arhitektūra Assembler Juris Strods
Orgjautājumi • Jaungada bonuss • līdz 5.01.2004 12:00 jāiegūst ieraksts • Nav iespējams eksāmens • Statuss++ • Tiem, kam arī tad nesanāk nekas rakstāms -> 4 • J.Plūmem iepriekš jāpiesakās pa e-mail Juris Strods
Komandu izpilde jeb ko dara procesors • procesors neizpilda programmu • procesors atbilstoši savam stāvoklim (komandas adrese, pazīmes, …) izpilda komandu • komandas adrese CS:IP -> komanda no atmiņas. Parasti arī IP pabīdīšana. • komandas izpilde (tai skaitā CS vai IP maiņa) • Ko darīt, ja procesors nevar izpildīt norādīto komandu (piemēram, nepareiza komanda)? Juris Strods
Pārtraukums (interrupt) • Pārtraukums notiek, ja procesors ārēja vai iekšēja iemesla dēļ nevar turpināt darbu parastajā kārtībā (CS:IP) • Pārtraukums: • pabeidz (varbūt, slikti) komandu • saglabā atmiņā procesora (veco) stāvokli • no fiksētas vietas atmiņā ielādē procesora (jauno) stāvokli Juris Strods
Pārtraukums IBM PC • pārtraukuma vektors • jaunais IP + jaunais CS • atrodas atmiņā ar absolūto adresi 0 atbilstoši pārtraukumu numuriem (sākot ar 0) • secība • pabeidz (varbūt, slikti) komandu • stekā saglabā Flags, CS, IP • no vektora ielādē CS, IP; TF=0;IF=0 Juris Strods
Programmas pārtraukumu veidi • dalīšana ar nulli • nepareiza komanda • neeksistējošas atmiņas pieeja • pieeja svešai atmiņai • priviliģēta komanda • pārpildīšanās • kārtas izzušana • … Juris Strods
Skaitļotāja struktūra Juris Strods
procesorsievada/izvada iekārtas • ievads/izvads procesora vadībā (busy waiting) • procesors cikliski pārbauda IO situāciju un veic datu apmaiņu • pārtraukumi - baitam/zonai • DMA (Direct Memory Access) • IO aparatūra veic pati komunikāciju ar atmiņu • sinhronizācija ar procesoru caur pārtraukumiem Juris Strods
Skaitļotāja struktūra SIO pārtrau- kumi Juris Strods
Pārtraukumu veidi (turpinājums) • ievada/izvada • Ārējie • Pārtraukuma poga • Taimeris • Pulkstenis • … • Mašīnas kļūdu kontrole • Supervizora jeb monitora izsaukums Juris Strods
Supervizora jeb monitora izsaukums • Mehānisms drošam darbam ar resursiem • pārtraukuma komanda (INTx) • Citās mašīnās SVC, MC Juris Strods
Skaņotājs • Speciāls pārtraukums pēc komandas izpildes • Pasūta ar TF (trap flag) Juris Strods
Pārtraukuma apstrāde • pārtraukumu maskēšana • nemaskējami pārtraukumi • atgriešanās no pārtraukuma apstrādes IRET Juris Strods
Pārtraukumu numuri • 0 dalīšanas kļūda • 1 soļa režīms (TF) • 2 nemaskējams pārtraukums (NMI) • 3 INT (vienbaitīga) • 4 zīmes pārpildīšanās (INTO) • 6 nepareiza komanda • …. Juris Strods
RESET • Flags=0002; CS=F000; IP=FFF0 • CS=0000; DS=0000; ES=0000; SS=0000 • tātad F0000+FFF0=FFFF0 BIOS Juris Strods
Makrovaloda Entpt proc far iniexe .... iniexe MACRO push ds sub ax,ax push ax mov ax,Dseg move ds,ax ENDM Juris Strods
Translatora darbība • mašīnkomandas MOV, INC, ADD, ... • assambler komandas • listinga utt. vadība TITLE, PAGE, ... • atmiņas rezervēšana DB, DW, DD, ORG • tehniskas komandas LABEL, ASSUME • starpprogrammu sakari EXTRN, GROUP, ... • īsrakstīšanas MACRO, INCLUDE, ... Juris Strods
Segments • neatkarīgi adresējama telpa - saistās ar atbilstošo segmenta reģistru seg_vārds segment [izlīdz] [kombinēt] [klase] .... seg_vārds ends Juris Strods
Assume • assume seg_reg:iezīme [, ...] • solījums par vērtību Juris Strods
Programmas sagatave Dseg segment para public ‘DATA’ Dseg ends Cseg segment para public ‘CODE’ assume cs:Cseg,ds:Dseg,es:Dseg,ss:Stack entpt proc far push ds xor ax,ax push ax mov ax,Dseg mov ds,ax Juris Strods