Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdGeert Bosman Laatst gewijzigd meer dan 10 jaar geleden
1
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
2
1/1/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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 onverwachtte (maar bruikbare) instructies –Kennis bruikbaar tijdens practicum en ook bij latere projecten met practicumprocessor
4
1/1/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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”
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.