1 / 22

Alokacja pamięci struct Test { char c; int n; double x; } st1;

st1. 1 4 8. c n x. Alokacja pamięci struct Test { char c; int n; double x; } st1;. st1. 1 4 8. c n x. Alokacja pamięci struct Test { char c; int n; double x; } st1;. st1. 8 8. c n x. PAMIĘĆ OPERACYJNA. PROCESOR. URZĄDZENIA

adelle
Télécharger la présentation

Alokacja pamięci struct Test { char c; int n; double x; } st1;

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. st1 1 4 8 c n x Alokacja pamięci struct Test { char c; int n; double x; } st1;

  2. st1 1 4 8 c n x Alokacja pamięci struct Test { char c; int n; double x; } st1; st1 8 8 c n x

  3. PAMIĘĆ OPERACYJNA PROCESOR URZĄDZENIA ZEWNĘTRZNE PROSTY PROCESOR ·budowa komputera

  4. PAMIĘĆ OPERACYJNA (PAO) ·bezpośrednio dostępna dla procesora ·zestaw ponumerowanych komórek do przechowywania ciągów binarnych m 0 . . . . 0 1 n . . . . . . . .

  5. PROCESOR ·procesor : układ, który samoczynnie realizuje program ·program : ciąg poleceń, które może wykonywać procesor ·polecenie → rozkaz, zapisany jako ciąg binarny ·program → sekwencja (ciąg) rozkazów ·lista rozkazów ( charakteryzuje procesor ) ·lokalizacja programu : PAO ( von Neumann 1946 )

  6. ·podstawowy cykl pracy procesora POBIERZ ROZKAZ Z PAMIĘCI OPERACYJNEJ WYKONAJ ROZKAZ

  7. ·wskazanie rozkazu do wykonania : licznik rozkazów, wskaźnik rozkazu ( rejestr ) POBIERZ ROZKAZ Z PAMIĘCI OPERACYJNEJ WSKAZANY PRZEZ LICZNIK ROZKAZÓW ZMIEŃ ZAWARTOŚĆ LICZNIKA ROZKAZÓW WYKONAJ ROZKAZ ·LR ← LR + 1 LR ← LR + N

  8. KodOp KodOp Arg KodOp Arg1 Arg2 · budowa rozkazu bezargumentowy 1 - argumentowy 2 - argumentowy ·Arg : liczba, adres PAO, ozn. rejestru procesora

  9. Rejestr A Rejestr B Licznik Rozkazów ·architektura prostego procesora Rejestr Rozkazu RR RA RB LR KodOp R Arg ARYTMOMETR + - STEROWANIE

  10. pole R : wskazuje RA ( 0 ) albo RB ( 1 ) • pole Arg : liczba NN albo • adres komórki pamięci AP • Lista rozkazów, mnemoniczne kody rozkazów • rozkazy przesyłania danych • SET R, NN • MOV R, AP • MOV AP, R

  11. rozkazy arytmetyczne ADD R, AP SUB R, AP INC R DEC R rozkazy skoków JMP AP JLE R, AP rozkazy wprowadzania-wyprowadzania danych IN R, NN OUT NN, R

  12. SET R NN 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 RR ·rozkaz SET RA, 45H 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. RA ← RR.Arg

  13. ·rozkaz ADD RB, 5AEH ADD R AP 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 RR 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. RT ← PAO ( RR.Arg ) 5. Arytmometr ← RB, RT, PLUS 6. RB ← Arytmometr

  14. zmiana sekwencji rozkazów ·skok bezwarunkowy JMP +1 85 86 250 251 252 370 371 . . . LR +1 +1 JMP 370 +1 JMP 85

  15. ·rozkazskoku bezwarunkowego JMP 370 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. LR ← RR.Arg ·skok warunkowy JLE RA, 3223 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. jeżeli RA < 0 to LR ← RR.Arg

  16. ·prosty program S = Σ ai 1 ≤ i ≤ n n, a1, a2, ... , an 100 : SET RA, 0 ; zeruj sumę S 101 : MOV 200, RA ; zapamiętaj S 102 : IN RB, 1 ; czytaj n 103 : DEC RB ; n - 1 104 : IN RA, 1 ; czytaj a 105 : ADD RA, 200 ; a + S 106 : MOV 200, RA ; zapamiętaj S 107 : DEC RB ; n – 1 108 : JLE RB, 110 ; skocz gdy n < 0 109 : JMP 104 ; skocz gdy n  0 110 : OUT 2, RA ; wyprowadź wynik

  17. ·zerowanie obszaru pamięci o długości2038 bajtów począwszy od adresu 1033 5000 : SET RA, 0 ; zeruj RA 5001 : MOV 1033, RA 5002 : MOV 1034, RA 5003 : MOV 1035, RA ................... 7038 : MOV 3070, RA 2038 rozkazów

  18. ·modyfikacja argumentu rozkazu • adresowanie bezwzględne : • adres PAO = argument • adresowanie względne : • adres PAO = argument + zawartość rejestru • dodatkowe pole w rozkazie KodOP R M Arg RA RB bez modyfikacji modyfikacja przez RA 0 1 0 1

  19. RA Adres efektywny 0 500 1 501 2 502 150 650 151 651 3265 3765 MOV RB, 500[RA]

  20. 300 : SET RB, 2037 ;długość 301 : MOV 150, RB ;pamiętaj 302 : MOV RA, 0 ;modyfikator 303 : MOV RB, 0 ;wartość 0 304 : MOV 1033[RA], RB ;zeruj 305 : INC RA ;modyfikator+1 306 : MOV RB, 150 ;odczytaj długość 307 : DEC RB ;długość-1 308 : MOV 150, RB ;pamiętaj 309 : JLE RB, 311 ;gdy koniec 310 : JMP 303 ;powrót 311 : ;koniec

  21. ·stos – zapis / odczyt 0 1 wzrost stosu skracanie stosu WS szczyt stosu WS N D D szczyt stosu • PUSH R POP R • ↓ ↓ • PAO ( WS ) ← R WS ← WS + 1 • WS ← WS – 1 R ← PAO ( WS ) • istnieją inne realizacje

  22. ·stos – wywoływanie podprogramów CALL Y X X+1 Y CALL Y RET ↓ ↓ PAO ( WS ) ← LR WS ← WS + 1 WS ← WS – 1 LR ← PAO ( WS ) LR ← Y . . . RET WS WS X + 1 X + 1

More Related