Download presentation
Presentation is loading. Please wait.
Published byJenő Veres Modified over 6 years ago
1
Kapitulli 10. Setet e instruksionit Karakteristikat dhe funksionet
Karakteristikat e instruksioneve të makinës Tipet e operandëve Tipet e të dhënave te Pentiumi dhe PowerPC Tipet e operacioneve Gjuha asembler
2
Elementet e instruksionit të makinës
Kodi operacional (Opcode) Elementi esencial i një instruksioni të kompjuterit, që specifikon operacionin që duhet kryer (p.sh. ADD, I/O); burimin dhe destinacionin e referencës së operandit Opcode-i specifikon operacionet në një nga kategoritë: aritmetike ose logjike; zhvendosjen e të dhënave në mes dy regjistrave, regjistrit dhe memories; H/D; si dhe kontrolli. 3
3
Referenca në operandin burimor
Specifikon një regjistër ose lokacion memorik të operandit të të dhënave. Tipi mund të jetë: adresa, numra, karaktere ose të dhëna logjike Referenca e operandit të rezultatit Karakteristika e zakonshme e procesorit është shfrytëzimi i stekut (mund të shihet ose jo prej programerit) Referenca në instruksionin e ardhshëm I tregon procesorit ku të marrë instruksionin e ardhshëm 3
4
Arkitektura dhe programimi
Shumë prej elementeve të arkitekturës nuk shihen nga ana e programerit, kur ai programon në gjuhë të larta programuese (C, C++, C#,Pascal,…) Kufiri i ‘takimit’ në mes të dizajnerit dhe programerit: gjuha e makinës. Të dy e shohin të njejtën makinë. Këndvështrimi i dizajnerit: seti i instruksionit ofron kërkesat funksionale të procesorit. Programeri që programon në gjuhën e makinës (assembler) sheh strukturën e memories dhe regjistrat.
5
Një kategorizim i procesorëve
Në bazë të stilit të ruajtjes së vlerave numerike shumëbajtëshe: Big-endian Bajtat më të rëndësishëm ruhen në adresat numerike më të ulta. Little-endian Bajtat më të rëndësishëm ruhen në adresat më të larta. Bi-endian Mund t’i përkrahë të dy stilet.
6
Karakteristikat e instruksionit të makinës
Operacioni i procesorit përcaktohet nga instruksionet që e ekzekutojnë, që i referohemi si instruksionet e makinës (kompjuterit). Koleksioni i instruksioneve të ndryshme që mund të ekzekutojë procesori, njihet si seti i instruksionit të procesorit. Secili instruksion duhet të përmbajë informacionet që kërkohen nga procesori për ekzekutim.
7
Elementet e një instruksioni të makinës
Kodi i operacionit: specifikon operacionin që duhet të kryhet (p.sh. ADD, I/O). Operacioni paraqitet me një kod binar, i njohur si opcode. Burimi i operandit: operacioni mund të përfshijë një apo më tepër operande dhe duhet ditur se cilët janë operandet hyrës. Rezultati i operandit: operacioni mund të prodhojë një rezultat. Instruksioni i ardhshëm: i tregon procesorit ku të marrë instruksionin e ardhshëm, pasi të jetë kompletuar instruksioni aktual.
8
Diagrami i gjendjeve të ciklit të instruksionit
9
Operandi burimor dhe i rezultatit gjendet:
Në memorien kryesore ose virtuale Në regjistrat e procesorit Në paisjet H/D
10
Paraqitja e instruksioneve
Në kodin e makinës çdo instruksion ka varg të ndryshëm bitash Programerët përdorin prezentimin simbolik p.sh. ADD, SUB, LOAD, MPY, DIV, STOR Operandet mund të paraqiten edhe në këtë mënyrë: P.sh. ADD A,B Që do të thotë: vlerën në lokacionin B shtoja përmbajtjes së regjistrit A. B i referohet adresës së lokacionit në memorie A i referohet një regjistri të pjesërishëm Operacioni kryehet në përmbajtjen e lokacioneve 5
11
Formati i thjeshtë i instruksioneve
12
Tipet e instruksioneve
Shembull: X=X+Y (në gjuhë të lartë programuese) Ky operacion kryhet me tri instruksione: Ngarko (load) regjistrin me përmbajtjen e lokacionit memorik 513l Shto (add) përmbajtjen e lokacionit memorik 514 në regjistër; Ruaje (store) përmbajtjen e regjistrit në lokacionin memorik 513. Lidhja në mes gjuhëve të larta dhe gjuhës së makinës: Pra, një operacion i thjeshtë mund të kërkojë disa instruksione.
13
Tipet e instruksioneve
Procesimi i të dhënave: instruksionet aritmetike dhe logjike Ruajtja e të dhënave instruksionet e memories Zhvendosja e të dhënave instruksionet H/D Kontrolli i rrjedhës së programit testimi dhe degëzimi i programit. 6
14
Numri i adresave (a) 3 adresa Operandi 1, Operandi 2, Rezultati
a = b + c; Mund të jetë edhe e katërta – instruksioni i ardhshëm (zakonisht implicit) Nuk është i përhapur Kërkon fjalë të gjatë të instruksionit për të përmbledhur të gjitha. 7
15
Numri i adresave (b) 2 adresa
Një adresë shërben si adresë e operandit dhe rezulatit të procesimit a = a + b Shkurton gjatësinë e instruksionit Ka nevojë për punë shtesë dhe hapësirë për ruajtjen e përkohshme të rezultatit. 8
16
Numri i adresave (c) 1 adresë Adresa e dytë është implicite
Zakonisht regjistër (accumulator) E zakonshme te procesorët e hershëm. 9
17
Numri i adresave (d) 0 (zero) adresa Të gjitha adresat janë implicite
Përdoren në një organizim special të memories, të njohur si stek (stack) Stack: një set i lokacioneve ‘last-in-first-out’ p.sh. push a push b add pop c c = a + b 10
18
(c) Instruksionet tri-adresëshe
19
Sa adresa? Më shumë: Më pak: Instruksione më komplekese
Më shumë regjistra Operacione me operand në regjistër janë më të shpejta Më pak instruksione për program Më pak: Instruksione më të thjeshta Më shumë instruksione për program Marrja / ekzekutimi më i shpejtë i instruksioneve. 11
20
Dizajni i repertorit të instruksionit
Dizajni i setit: kompleks, sepse afekton në shumë aspekte të sistemit kompjuterik. Definon: shumë funksione që kryen procesori. Repertori i operacioneve Sa dhe cilat operacione i ofron? Çka mund të bëjnë? Sa janë komplekse? Tipet e të dhënave Llojet e ndryshme të të dhënave ndaj të cilave mund të kryhen operacione. 12
21
Reduced Instruction Set Computer Complex Instruction Set Computer
Formatet e instruksioneve Gjatësia e fushës së kodit operacional Numri i adresave Gjatësia e fushave të ndryshme Regjistrat Numri i regjistrave të CPU-së Cilat operacione mund të kryhen në cilët regjistra? Adresimi Modi (modet) sipas të cilit është specifikuar adresa e një operandi RISC CISC Reduced Instruction Set Computer Complex Instruction Set Computer 13
22
Instruksionet e makinës operojnë në të dhëna.
Tipet e operandëve Instruksionet e makinës operojnë në të dhëna. Kategoritë më të rëndësishme të të dhënave: Adresat Numrat Integer (fixed point); floating point; decimal (BCD) Karakteret ASCII, EBCDIC, etj. Të dhëna logjike Bitat ose flag-at (flags) 14
23
Tipet e të dhënave të Pentiumit
Pentiumi mund të kuptojë të dhënat: 8 bit (byte) 16 bit (word) 32 bit (doubleword) 64 bit (quadword) Adresimi është sipas njësisë 8 bitëshe Fjala e dyfishtë 32 bitëshe lexohet në adresa të pjesëtueshme me 4. Për fleksibilitet dhe shfrytëzim më të mirë, nuk lejohen adresat me numër tek të bitave. Stili (si te të gjithë 80x86) little-endian: bitat më pak të rëndësishëm ruhen në adresat më të ulëta. 15
24
Tipet specifike të të dhënave (Pentium)
Gjeneral – përmbajtja arbitrare binare Integer – vlerë binare duke shfrytëzuar 2 komplementin Ordinal – integer pa parashenjë Unpacked BCD – Një numër për byte Packed BCD - 2 BCD numra për një byte Near Pointer – zhvendosja 32 bitëshe brenda segmentit Bit fushe Byte String Floating Point 16
25
Formatet e të dhënave numerike të Pentiumit
17
26
Shndërrime (Conversion) H/D Kontroll i sistemit (System Control)
Tipet e operacioneve Transferi i të dhënave Aritmetike Logjike Shndërrime (Conversion) H/D Kontroll i sistemit (System Control) Transferi i kontrollit. 18
27
Mund të jenë instruksione të ndryshme për lëvizje të ndryshme
Transferi i të dhënave Specifiko Burimin Destinacionin Sasinë e të dhënave Mund të jenë instruksione të ndryshme për lëvizje të ndryshme p.sh. IBM 370 Ose një instruksion dhe adresa të ndryshme p.sh. VAX. 19
28
Mbledhja, zbritja, shumëzimi, pjesëtimi Signed Integer Floating point
Aritmetike Mbledhja, zbritja, shumëzimi, pjesëtimi Signed Integer Floating point Mund të përfshijë Inkrementimi (a++) Dekrementimi (a--) Negacioni (-a) Vlera absolute. 20
29
Operacionet Shift dhe Rotate
30
Logjike Operacione mbi bita AND OR NOT XOR Test Compare Shift Rotate
21
31
Shndërrimet (Conversions)
Instruksionet e shndërrimit: ato që ndërrojnë formatin ose operimin në format. p.sh. Binar në Decimal Instruksioni TR (translate) te S/390: mund të përdoret për të shndërruar të dhënat prej kodit 8-bitësh në një kod tjetër: TR R1, R2, L 22
32
Mund të jenë instruksione specifike
Instruksionet H/D Mund të jenë instruksione specifike Mund të kryhen duke përdorur instruksionet për zhvendosjen e të dhënave (H/D e mapuar në memorie) Mund të ekzekutohen nga kontrolleri i veçantë (DMA). 23
33
Të rezervuara për përdorim nga sistemi operativ
Kontrolli i sistemit Instruksionet e kontrollit të sistemit: ato që mund të ekzekutohen vetëm deri sa procesori është në një gjendje të privilegjuar ose është duke ekzekutuar një program në një zonë të privilegjuar të memories (Instruksione të privilegjuara). Ring 0 në Kernel mode Të rezervuara për përdorim nga sistemi operativ 24
34
Thirrja e subrutinave (procedurave)
Transferi kontrollit Degëzimi p.sh. kalo në x nëse rezultati është zero Kapërcimi (skip) p.sh. inkremento dhe kapërce nëse rezultati është zero ISZ Register1 Branch (BRP X; BRN X; BRZ X; BRO X; BRE R1,R2,X) ADD A Thirrja e subrutinave (procedurave) Programi më i ekonomizuar Modulariteti. 25
35
Instrusioni i degëzimit
36
Thirrja e procedurave
37
Përdorimi i stekut
38
Rritja e stekut gjatë përdorimit të procedurave shembull P dhe Q
39
Me çfarë radhe i lexojmë numrat të cilët zënë më shumë se një byte
Rendi i byte-ve Me çfarë radhe i lexojmë numrat të cilët zënë më shumë se një byte p.sh. numrat heksadecimal që të mund t’i lexojmë më lehtë mund të ruhet në 4 lokacione 8 bitëshe në këto mënyra: 27
40
Rendi i byte-ve (shembull)
Adresa Vlera (1) Vlera (2) p.sh. lexo nga lartë poshtë apo nga poshtë lartë? 28
41
Emrat e rendeve të byte-ve
Problemi quhet Endian Big-endian: Sistemi në të majtë e ka byte-in me peshë më të vogël në adresë më të madhe (78 në adresën 187) Little-endian: Sistemi në të djathtë e ka byte-in me peshë më të vogël në adresën më të vogël (78 në adresën 184) 29
42
Shembulli vendosjes së një C struct
43
Këndvështrim alternativ i memories
44
Pentium (80x86), VAX janë little-endian
Standard ? Pentium (80x86), VAX janë little-endian IBM 370, Motorola 680x0 (Mac) dhe shumica e RISC janë big-endian Interneti është big-endian 30
45
Instruksionet janë numra të thjeshtë binarë të ruajtur në kompjuter.
Gjuha asembler Një procesor mund të kuptojë dhe të ekzekutojë instruksionet e makinës. Instruksionet janë numra të thjeshtë binarë të ruajtur në kompjuter. Nëse programeri dëshiron të programojë direkt në gjuhë të makinës, duhet të futë programin në formën binare. Nivelet: gjuha e makinës (binare) gjuha simbolike gjuha asembler gjuhët e larta (kompajleri)
46
Shembull: llogaritja e formulës N = I + J + K
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.