Föreläsning 2
|
||||||||||||||||||||||||||||||||||||||
Talsystem Vi människor använder tecknen 0,1,2,3,4,5,6,7,8,9 och kombination av de (t.ex 12) när vi vill t.ex tala om ett antal av en sak. Tyvärr det stora användningsområde av ovanstående tecken i vardagslivet har gjort så att vi har svårt att kunna se de som olika tecken som skulle lika gärna inte betytt något alls för oss, exempelvis så fort vi ser tecknet 7 då utan att behöva tänka efter vet vi att det handlar om sju enheter. Det system som vi använder kallas för decimal system och systemet har basen 10. När det gäller datorer och digitala världen så använder vi oss av ett annat system som kallas för binär-system, i det binära systemet man begränsar sig med endast två tecknen 0 och1 (basen 2) d.v.s. tecknen 2,3,4,5,6,7,8,9 existerar inte i detta system. Anledningen till att man är tvungen att använda binära-talsystemet är att transistorers natur kräver detta, man kan se det som en ledningen antingen leder (1) ström i ett visst ögonblick eller inte allas (0). finns ett samband med talet Sedan har vi andra system som oktal och hexa-decimal som underlättar beräkning av olika beräkning av binära tal, dessutompotens av talet 2. (23 = 8(oktal) och 24 = 16(hexa-decimal) ) tabell över Existerande Decimal
Generella algoritmer för konvertering mellan olika system Konvertera från decimal till system med bas B(B kan vara 2, 8 eller 16): 1. Dividera decimaltalet med B och anteckna resten och produkten. 2. Gör punkt 1 fast den här gången produkten från tidigare divition ska divideras med B. 3. Gör punkt 2 tills man får 0 i produkt. 4. Lägg alla rest från varje divition efter varandra, observera rest från sista divition ska komma först. ![]() Konvertera från tal med bas B (B kan vara 2, 8 eller 16) till decimal: 1. Numrera talet med bas B från 0 uppåt från höger till vänster. 2. Multiplicera varje siffra i talet med B upphöjd till det nummer som siffran fick i punkt 1. 3. Addera alla produkt av multiplikationen. ![]() mer exempel finns i utdelade föreläsningspapper. Operativsystem Ett operativ system är ett program som startas automatiskt då man slår på strömmen till en dator, förutsatt att datorn har en installerat operativsystem. Arbetsuppgift till ett operativsystem är svårtatt definera, men alla operativ system har till uppgift att hantera olika delar av hårdvaran så att de olika delar kan arbeta tillsammans, och detta innebär att fördela minnet rättvisst, fördlea CPU:n mellan olika program osv... En dator utan operativsytem kn inte göra något, där finns endast BIOS (Basic Input Output System) som är ett program i hårdvaran, vilket bl.a. bestämmer från vilken enhet operativsystemet sa hämtas ifrån, ett operativ system kan hämtas från en hårddisk, ett nätverk(annan dator), en CD-läsare, DVD-läsare, från en diskett eller från något annat typ av minne. Operativsystemet ser till att andra program som sk köras får tillgång till CPU:n framför allt och kanske andra delar av datorn som t.ex ljudkortet om det är så att programmet ska spela upp filer av typen wave, mp3, mpeg, etc. Program Ett program kod kan skrivas i olika hög nivå språk som Java, C, C++, Smaltalk, Prolog, Lisp, Python eller lågnivå språk som Assembler. Skillnaden mellan högnivå och lågnivå språk är att när man programmerar i lågnivå så måste ha exakta information om olika delar av hårdvaran som programmet är täknt att komma ikontakt med, men i högnivå språk programmeraren behöver inte tänka på hårdvaran så mycket som i lågnivåspråk. Här nedan har vi ett exempelkod i Java som vill beräkna fakultet av talet 5; int X = 1; int W =6; while( W != 0 ){ X = X * W; W = W-1; } Motsvarande kod i assembler (det finns olika assembley instruktioner) kommer ungefär se ut som nedan:
Följande är beskrivning till de assembly
instruktioner vi har använt i ovanstående program
:
|
Instruktion |
Betydelse |
Data
flöde |
|
LOD X (or #<n>) | Hämta från minnet plats X(eller talet <n>) till accumulatorn |
STO Y | Lagra innehållet av accumulatorn i minnet plats Y |
Kontrollflöde |
|
JMP P | Gå till instruktion nummer P |
JMZ P | Om Acc har värdet 0 gå till instruktion
nummer P annars go till nästa instruktion. |
HLT | Avsluta exekveringen och gör inget mer |
Aritmetisk-operation |
|
SUB X (or #<n>) | minska innehållet Subtract contents of memory location X (or #<n>) to Acc. |
MUL X (or #<n>) | Multiply Acc. by contents of memory location X (or #<n>) |