T3.4/T3.5/T3.6 Instruksjoner, diverse Flashcards
Hvordan representeres tekst i en datamaskin?
Bokstaver representeres som tall
Hvordan håndterer man store konstanter?
Bruker load upper immediate (lui) og skriver bits 12 - 31 av adressen til et midlertidig register
Hvordan unngår man lange hopp?
PC-relativ adressering
Hva er PC-relativ adressering?
- Angir måladressen til forgreiningsinstruksjoner relativt til den nåværende instruksjonsadressen.
- Avstanden kan være både positiv og negativ
Hva brukes PC-relativ adressering til?
Betingede forgreininger og ubetingede hopp, pga. målet deres mest sannsynlig ligger nærme forgreiningen
Adressemodus
Måten vi kan oppgi en adresse på
Hva er RISV-Vs fire adressemodi?
- Konstantbasert adressering
- Registerbasert adressering
- Grunnadressebasert addressering
- PC-relativ addressering
Hva er konstantbasert adressering?
Når operanden er en konstant i instruksjonen
Hva er registerbasert adressering?
Når operanden er et register
Hva er grunnadressebasert adressering?
Når operanden er på minnelokasjonen som har en adresse som er summen av et register og en konstant i instruksjonen
Hva er PC-relativ adressering?
Når forgreiningsadressen er summen av PC’en og en konstant i instruksjonen.
- Synkronisering
Når vi har mer enn en prosessor, må vi og til sikre at bare en prosessor gjør noe av gangen
- Kritisk seksjon
Koden som må utføres alene
- Synkroniseringsmekanismer blir mer effektive hvis de støttes av
spesialinstruksjoner
- Krysskompilering
Å kompilere for et annet instruksjonssett enn maskinen er på
Pseudoinstruksjoner
instruksjoner som assembleren forstår men som ikke eksisterer i instruksjonssettet. Byttes ut med korte sekvenser av ekte instruksjoner.
Hvilke 3 steg har linking?
- Plasser kode og data moduler symbolsk i minnet
- Finne adressene til data og instruksjonsmerkelapper
- “Patch” både interne og eksterne referanser
Hvorfor er ikke statisk linking fordelaktig?
Linkeren kopierer delte bibliotek inn i “executable”, men dette er ineffektivt fordi bibliotekene:
- Ikke kan oppdateres uavhengig av programmet
- Biblioteksfunksjonene lastes uavhengig av om de blir brukt eller ikke
Hvorfor er dynamisk linking fordelaktig?
Man har en tabell i minnet med pekere til biblioteksfunksjonene programmet kan bruke
På første aksess kalles en funksjon som
- Laster inn biblioteksfunksjonen
- Oppdaterer pekere til å peke dit biblioteksfunksjonen er
- Kaller biblioteksfunksjonen
Alle senere kall går direkte fra tabellen til biblioteksfunksjonen