De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)

Verwante presentaties


Presentatie over: "1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)"— Transcript van de presentatie:

1 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)

2 1/1/ eindhoven university of technology / faculty of Computer Science 2 Instructietypen: “standaard” indeling  Wij hanteren vandaag die van het boek  Verplaatsen van gegevens  “Dyadische” operaties (twee source operanden)  “Monadische” operaties (een source operand)  Vergelijkingen en (voorwaardelijke) sprongen  Aanroep van procedures (subroutines/methods)  Lusbesturing (herhalingen in een programma)  Invoer en uitvoer  Vele andere indelingen mogelijk !

3 1/1/ eindhoven university of technology / faculty of Computer Science 3 Focus op practicumprocessor  Precies kennen van een bepaalde instructie-set is geen doel van dit vak !  Wel in assembleertaal kunnen programmeren…  Practicumprocessor heeft van alle typen instructies goede voorbeelden  Heeft ook onverwachte (maar bruikbare) instructies  Kennis bruikbaar tijdens practicum en ook bij latere projecten met practicumprocessor

4 1/1/ eindhoven university of technology / faculty of Computer Science 4 Verplaatsen (“move”) van gegevens  Verkeerde term: je maakt een kopie want de oorspronkelijke waarde verdwijnt niet  Op gegevens worden geen bewerkingen gedaan  Kopie dezelfde waarde als origineel  Meeste processoren veranderen geen statusvlaggen  Practicumprocessor: P-vlag gekoppeld aan A register  Hoeveelheid verplaatste gegevens varieert  Soms maar één keuze (byte, woord), meestal meer  Soms variabel (extreem: 1 bit..volledig geheugen)

5 1/1/ eindhoven university of technology / faculty of Computer Science 5 Verplaatsen: classificaties en namen  Classificatie van/naar geheugen/register  Van register naar register:“MOVE”  Van geheugen naar register:“LOAD”  Van register naar geheugen:“STORE”  Van geheugen naar geheugen ook mogelijk !  In “load/store” machines zijn deze operaties bijzonder en hebben ze een aparte naam  Meeste machines gooien alles op een hoop...

6 1/1/ eindhoven university of technology / faculty of Computer Science 6 Practicumprocessor byte MOVe’s Programma @A+DPTR Programma @A+PC Extern @R0/R1 Extern @DPTR A Immediate Stack PUSH POP Intern @R0/R1 Direct Register R0..R7 127: SFR (incl. ACC) Waarde 0: “CLR A” Niet gebruiken ! In intern geheugen ! MOVC MOVX

7 1/1/ eindhoven university of technology / faculty of Computer Science 7 Practicumprocessor andere MOVe’s C(arry) Direct bit Immediate: “CLR”  0 “SETB”  1 127:SFR’s met adres deelbaar door 8 (incl. ACC, B en PSW) DPTR Immediate 16 bits CLR C ; Carry <- 0b SETB ACC.6 ; bit 6 van A ; <- 1b

8 1/1/ eindhoven university of technology / faculty of Computer Science 8 Iets speciaals: de “exchange”  Twee MOVe’s in een: verwisseling van plaats !  Normaal 3 stappen en extra geheugen nodig  1:hulp  “A”  2:“A”  “B”  3:“B”  hulp (nu “A” verwisseld met “B”)  De practicumprocessor kan dit…  Met complete bytes: “XCH”  Met 4 bits tegelijk: “XCHD” en “SWAP”

9 1/1/ eindhoven university of technology / faculty of Computer Science 9 Dyadische rekenkundige operaties  Dyadisch = met TWEE source operanden  Optellen en aftrekken: “ADD” en “SUB”  Met “onthouden” / “lenen”: “ADDC” en “SUBB”  Zonder teken en two’s complement: geen verschil ! …verschil zit ‘m in testen van Carry / oVerflow  Practicumprocessor kent geen “SUB”  Eerst Carry op 0 (“CLR C”), dan “SUBB” gebruiken  Kan A  A + (immediate / R0..R7 / direct / @R0/1)

10 1/1/ eindhoven university of technology / faculty of Computer Science 10 Vermenigvuldigen en delen (MUL /DIV)  Niet altijd beschikbaar !  Groot verschil zonder teken en 2’s complement  Problemen met resultaten bij gehele getallen  MUL: resultaat breder (in bits) dan sources resultaat breedte = som van source breedten  DIV: er zijn TWEE resultaten - deling en rest  Nog meer problemen bij delen  Sources niet even breed voor grootste bereik ?  Wat te doen bij deling door nul of overflow ?

11 1/1/ eindhoven university of technology / faculty of Computer Science 11 Bij practicumprocessor  Geen “zero” en “negatief” (teken) vlaggen !  “A = 0” direct testbaar, “ACC.7” test teken-bit van A  DIV en MUL met 8 bits positieve getallen  MUL vermenigvuldigt A met B  Resultaat bits 0..7 komen in A, bits 8..15 komen in B  Overflow wordt “resultaat B  0”, Carry altijd 0  DIV deelt A door B  Deelresultaat komt in A, rest van deling komt in B  Overflow  “oorspronkelijke B = 0”, Carry  0

12 1/1/ eindhoven university of technology / faculty of Computer Science 12 Dyadische logische operaties  16 verschillende twee-operand Boole operaties ! bevatten ook NOT: geen twee-operand operatie  Vrijwel altijd twee aanwezig: AND, OR  Meestal ook XOR (eXclusive OR)  Soms NAND, NOR, XNOR, AND-NOT, OR-NOT laatste twee: “X AND (NOT Y)”, “X OR (NOT Y)”  Meestal op hele woorden / bytes tegelijk  Gelijke operaties op parallel genummerde bits

13 1/1/ eindhoven university of technology / faculty of Computer Science 13 Maskeren en combineren (verpakken) 011011011 A 111110000 B (“masker”) 011010000 A AND B Deze bits komen uit A 010010101 C 000001111 D (“masker”) 000000101 C AND D Deze bits komen uit C 011010101 (A AND B) OR (C AND D) Uit AUit C 011010000 000000101 ANDOR

14 1/1/ eindhoven university of technology / faculty of Computer Science 14 Practicumprocessor: ANL, ORL en XRL  “ANd Logical”, “OR Logical” en “XoR Logical”  Naar A, met immediate, direct, R0..R7, @R0/R1  Ook naar direct, met A of immediate !  Met één bit tegelijk: bijzonder…  Gebruikt C(arry) als source en resultaat  Andere source is direct geadresseerd bit  AND, OR, AND-NOT en OR-NOT operaties ANL C,bit ORL C,bit ANL C,/bit ORL C,/bit

15 1/1/ eindhoven university of technology / faculty of Computer Science 15 Monadische (één source) operaties  Rekenkundig: NEG (0-A), INC (A+1), DEC (A-1)  Met bits schuiven is delen / vermenigvuldigen  Altijd met factor 2 N (en afrondingsfouten !)  Delen zonder teken: naar rechts schuiven met nullen 1101 (13)  0110 (6)  Delen in 2’s complement: met ‘tekenuitbreiding’ schuift kopieën van meest linkse bit naar binnen 0110 (+6)  0011 (+3) 1100 (-4)  1110 (-2)  Aantal bits soms variabel: niet echt monadisch

16 1/1/ eindhoven university of technology / faculty of Computer Science 16 Nog meer monadische operaties  “Roteren” = schuiven waarbij uitgeschoven bits terugkomen aan de andere kant van het woord  Hierbij gaan geen bits verloren !  Handig om bits één voor één te testen  Bij roteren en schuiven soms Carry vlag gebruikt en/of veranderd  Logische operatie: NOT  Practicum processor noemt deze “ComPLement”


Download ppt "1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)"

Verwante presentaties


Ads door Google