rezolvare1

Upload: cornel-loredan-todor

Post on 08-Mar-2016

13 views

Category:

Documents


0 download

TRANSCRIPT

1. Prima problema se refera la procesoare mai vechi desi se poate aplica unor micro-cipuri cu registre de 16 biti.

Ideea este ca pentru a accesa o anumita locatie de memorie de 1 MB de memorie (care este de fapt 2 la puterea 20) ar fi nevoie de doua informatii: adresa segmentului de memorie plus off set (off set = adica de la aceea adresa cat sa te mai deplasezi).

Adresa segmenului este neaparat multiplu de 16. Este ca si cum un bloc ar avea un numar de etaje (segmente) si fiecare segment un offset (nr. apt.). Si fiecare etaj ar avea 16 apartamente minim sau multiplu de 16. Aceeasi problema exista daca am lucra in baza 10 si primele zece ap. ar fi la parter, dupa aia urmatoarele la etaj, dar se lucra in baza 16 pentru a putea codifica mai usor in binary.

Ce se da? O adresa compusa din doua parti offsetul, adica ce nr. de apartament pentru etajul respecti, sau a cata usadar pe etaj.Ce se cere? Valoarea exacta a adresei fizice (nu doar a cata usa de la lift ci exact. Nr. apt.)

Rezolvare: se inmulteste cu 16 si se adauga valoarea de offset numai ca totul se face in baza 16.

Este un alt mod de a zice daca stai la etajul 9CF8 (in baza 16) si la usa nr. B7E7 de la lift, care e exact nr. apt?

RECAPITULARE BAZA 16:

In baza 16 se vor nota cu ABCDEF numerele de la 10 la 15 si 16 este chiar 10.

Observam ca 100.1000,etc. sunt puteri a lui 16Baza 1010111213141516171819202122232564096

Baza 16ABCDEF10111213141516171001000

ABC scris in baza 16 si tranformat in baza zece se calculeaza astfel: A * 162+B*161+C, Doar ca A,B,C vor fi in baza zece: A=10,B=11, C=12.

Adica ABC=10*256+11*16+12 = 2748Daca in loc de ABC avem numere inmultim acele numere cu puteri ale lui 16, in acelasi mod. Similar daca se da numarul in baza zece incercam sa il scriem cu ajutorul puterilor lui 16. Dezi 1000=256*3+232 Dar 232 = 16*14 + 8 . Deci 1000= 3E8. pentru ca 14 este E.