Professional Documents
Culture Documents
GLAVA 2
PCI kontroler
PCI magistrala (33/66 MHz, 32/64 bita) ROM sistema SCSI kontroler USB kontroler
ISA magistrala (8 MHz, 8/16 bita) Sat realnog vremena Kontroler prekida Kontroler tastature DMA Serijski port(ovi) Paralelni port(ovi) Slotovi na ISA magistrali
Kapaciteti od 64kB do 8MB Vrijeme pristupa: 100ns - 200ns Kod PC ROM se koristi na sistemskoj ploi za uvanje BIOS programa i podataka Sadraj ROM-a obino se, zbog smanjenja vremena pristupa, kopira u RAM ROM koriste i neke periferne kartice (video kartica, disk kontroler, ...), u njihovom ROM-u nalaze se dodatne rutine i podaci koji omoguavaju komunikaciju s periferalom, i ovaj ROM se mapira u RAM memoriju
Statiki RAM (SRAM) Skup registara (najee 8-bitni) sa zajednikim ulazima i izlazima Svaki bit memorie se pomou zasebnog flip-flopa Izbor registra (u koji se upisuje ili iz kojeg se ita podatak) vri se pomou adresnog dekodera integrisanog u ipu zajedno sa registrima Upis ili itanje izvodi se dovoenjem odgovarajueg upravljakog signala (R/W*, OE*) Upisani sadraj ostaje memorisan sve dok se ne promijeni na isti nain ili ne iskljui napajanje, nije potrebno osvjeavanje pa se zato zove statiki Slui za realizaciju eksterne ke memorije PC-a Kapaciteti: od 256kB do 1MB Vrijeme pristupa: od 10ns do 25ns
Visoka memorija Sistemski ROM BIOS ROM BIOS na karticama Gornji memorijski blok Specifikacija proirene memorije Video RAM (kolor) Video RAM (monohromatski) Video RAM (grafiki nain rada) DOS i korisniki programi
I/O podsistem personalnog raunara moe se grubo podijeliti na: ureaje masovne memorije (hard diskovi, flopi diskovi, kompakt diskovi, strimeri, ...) spoljanji I/O ureaje (tastatura, mi, tampa, skener, zvuna kartica, ...) interne I/O ureaje (tajmeri, brojai, razni kontroleri, ...)
FFFFF
I/O
Adresnog prostora u rezervisanoj oblasti osnovne memorije (memorija se fiziki nalazi na interfejsu ureaja, ali joj se pristupa kao da je rije o RAM memoriji fiziki smjetenoj na matinoj ploi). Pri tome se koriste iste instrukcije i za pristup portu i za pristup memoriji, pa govorimo o memorijski mapiranom I/O prenosu.
I/O
00000
Postoje tri osnovne tehnike komunikacije s I/O ureajima: programirani I/O prenos, prekidna tehnika, DMA prenos.
procesor alje I/O ureaju po unaprijed isprogramiranom redoslijedu i dinamici MOV DX,304h podatke, pri emu se ne vodi rauna da li je periferal ispravno prihvatio i obradio MOV AL,POCETAK podatke Primjer: Napisati asemblerski program koji na I/O port 304h alje testnu ASCII sekvencu "ABCDE..VWXYZ" bez sinhronizacije (hendejkinga)
PETLJA: OUT DX,AL INC AL CMP AL,KRAJ JNZ PETLJA MOV AH,4Ch INT 21h PROGRAM ENDS END START
PODACI SEGMENT 'DATA' 2.5.5 I/O podsistem TABELA DB 3Fh, 06h , 5Bh, 4Fh, 66h, 6Dh, 7Dh, 27h, 7Fh, 6Fh PODACI ENDS PROGRAM SEGMENT 'CODE' ASSUME CS:PROGRAM,DS:PODACI START: MOV AX,PODACI MOV DS,AX MOV DX,304h MOV SI,0 MOV BX,OFFSET TABELA
Programirani I/O prenos Primjer: Napisati asemblerski program koji na I/O port 304h alje testnu sekvencu 0, 1, 2 ... 9 pripremljenu za ispis na sedmosegmentnom displeju (na port slati 7-segmentni kod) bez hendejkinga.
PETLJA: MOV AL,SI XLAT OUT DX,AL INC SI CMP SI,10 JNZ PETLJA
MOV AH,4Ch INT 21h PROGRAM ENDS END START
PODACI SEGMENT 'DATA' TABELA DB 3Fh, 06h, 5Bh, 4Fh, 66h, 6Dh, 7Dh, 27h, 7Fh, 6Fh PODACI ENDS
U ovom sluaju procesor se obraa I/O ureaju, zadaje mu komandu, alje podatak i sl. i potom od periferala oekuje povratnu informaciju PETLJA: MOV AL,SI XLAT Ovakva komunikacija gdje postoji sinhronizacija (dogovaranje) procesora i periferala MOV DX,304h naziva se hendejking (engl. handshake - rukovati se). Tipino se moe sresti kod OUT DX,AL komunikacije procesor - tampa
MOV DX,305h TEST: IN AX,DX CMP AX,2 JNZ TEST INC SI CMP SI,10 JNZ PETLJA MOV AH,4Ch INT 21h PROGRAM ENDS END START
PROGRAM SEGMENT 'CODE' ASSUME CS:PROGRAM,DS:PODACI prenos sa sinhronizacijom START: MOV AX,PODACI MOV DS,AX Procesor vodi rauna o stanju i mogunostima I/O ureaja, tako da nijedan od MOV SI,0 podataka koji se prenosi ne smije biti "preskoen" MOV BX,OFFSET TABELA
Primjer: Napisati asemblerski program koji na I/O port 304h alje testnu sekvencu 0, 1, 2 ... 9 u sedmosegmentnom kodu, koristei hendejking - naredni podatak slati tek nakon to periferal potvrdi da je spreman (tada je na portu 305h podatak 0002h).
Po zavretku procesiranja prekidne rutine rezultat se takoe vraa u odgovarajuem registru ili registrima.
Fn. 01h
Parametri AH=01h
Napomena ita znak sa tastature (znak se prilikom kucanja ispie na ekranu) i smjeta ga u AL registar Ispisuje znak iz DL registra na ekran Ispisuje string na ekran (string mora zavriti znakom $)
02h
09h
PODACI SEGMENT 'DATA' PORUKA DB 13,10, 'UNESITE STRING', 13,10,'$' JESTE DB 13,10, 'TO JE PALINDROM', 13,'$' NIJE DB 13,10, 'TO NIJE PALINDROM, 13,'$' STRING DB 100 DUP (?) Primjer: PODACI ENDS
POREDI: Napisati asemblerski program koji uitava string (niz znakova) sa tastature sve dok se ne STEK SEGMENT STACK SI,OFFSET STRING pritisne ENTER, a zatim provjerava da li je uitani MOV string palindrom (palindrom je rije koja DW 100 DUP (?) se isto ita i od poetka prema kraju i od kraja prema poetku, npr. ANA).
PROGRAM SEGMENT 'CODE' ASSUME CS:PROGRAM, DS:PODACI, SS:STEK START: MOV AX,PODACI MOV DS,AX MOV AX,STEK MOV SS,AX MOV SP, OFFSET TOS MOV AH,09h MOV DX,OFFSET PORUKA INT 21h MOV SI,OFFSET STRING MOV AH,01h CITAJ: INT 21h MOV [SI],AL
NASTAVI: MOV AL,[SI] CMP AL,13 JZ JESTEP POP BX CMP AL,BL JNZ NIJEP INC SI JMP NASTAVI JESTEP: MOV DX,OFFSET JESTE JMP ISPIS NIJEP: MOV DX,OFFSET NIJE ISPIS: MOV AH,09h INT 21h MOV AH,4Ch INT 21h PROGRAM ENDS END START