· Text 696 · w8 · inlagg
68K har 23 pinnar för adressbussen vilket innebär att den direkt kan
adressera 16M istället för det vanliga 64K.
Den 24:e pinnen har man sparat därför att den alltid skulle sända ut
en nolla - ojämna bytes adresseras inte.
De ord som kan genereras är 8/16 eller 32 bitar långa.
Databussen och de använda minnena bygger på 16 bitar "word", 32 bitars
ord "långa ord" sänds ut i två omgångar.
16 register + PC och SP innehåller 32 bitar, statusregistret har normala
16. De här längre orden medför att operationskoderna kunnat göras längre,
mer och komplexare (kraftfullare) instruktioner samt möjligheten att
medföra en del data i själva instruktionen är följden.
Det är inte enbart positivt, den enklare instr.uppsättningen i Z80 och
8085 tex är mer överskådlig, och knappt någon programmerare och ännu
mindre kompillator förmår använda uppsättningen fullt ut.
Det försvårar också arbetet att ständigt hålla reda på bytes, words och
långa ord - detta anges med prefixen .b resp .W (default) och .l.
Gör man fel här så är risken stor att det hela spårar ur, om man tex
ska jämföra ett värde som anges i instruktionen med ett värde lagrat
någonstans i minnet så måste ordlängden förstås stämma exakt.
Det man annars mest uppskattar vid övergång från normal 8 -bitarsmygga
är detta att man inte är stenhårt bunden till "ackumulatorn" som i 8085.
Har man i den senare ett sånt där jämförvärde igen eller något som ska
skickas ut på en utgång så måste man alltid först skyffla över värdet
till ackumulatorn. Det behövs inte med 68K.
När man adresserar minnet med 8-bitars proc. så vill jag minnas att man
måste ange alla fyra hexsiffrorna, men med 68K så gäller vid lägre adresser
4 hexsiffror ("absolut kort") och högre adresser 8 st ("abs. lång").
I övrigt betr. adresseringssätt ber jag att få återkomma i avvaktan på
tillrättavisningar och frågor.