[CS] PEP /7

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
racekakje
WOZ
Posts: 740

[CS] PEP /7

Post#1 » Tue Jan 22, 2008 1:44 pm

ALs je in PEP /7 volgende instructies uitvoert, wat gebeurd er dan? Ben ik hier juist of fout.

NOTA (van het woord dat in A zit wordt elke 1 een 0 en omgekeerd)
ANDA d#0005,d (er gebeurt nen AND tss de woorden in A en op de plaats d#5 in het geheugen)
ORA d#0005, d (er gebeurt nen OR tss de woorden in A en op de plaats d#5 in het geheugen)
ASLA (alle bits in het woord in A worden naar links verplaatst)
ASRA (alle bits in het woord in A worden naar rechts verplaatst)

Wat gebeurd er met de uiterste bits bij ASLA en ASRA?
wordt de eerste de laatste en omgekeerd? Of valt er ene weg en komt er een 0 bij?

Pieter Belmans
Posts: 593
Contact:

Post#2 » Tue Jan 22, 2008 1:48 pm

Moeten we het zo uitgebreid kennen? Voor zover ik weet hebben we maar 1 oefening gemaakt waarbij bitbewerkingen voorkwamen, en dat was dat met negatieve getallen.

Maar, ik meen ooit gelezen te hebben dat in de meeste toepassingen een bitshift naar links inhoudt dat er een 0 wordt toegevoegd rechts. En bij 'n bitshift naar de andere kant een 0 langs de linkerkant. Maar op zich maakt dat niks uit denk ik, je verliest in beide gevallen evenveel nauwkeurigheid denk ik.

User avatar
racekakje
WOZ
Posts: 740

Post#3 » Tue Jan 22, 2008 1:58 pm

Ik zag het staan en vroeg me af wat er gebeurde..

kan iemand een lijstje geven met alle BR's (die jump dinges)
want ik ben da blad kwijt :(

User avatar
PieterK
Posts: 118

Post#4 » Tue Jan 22, 2008 2:14 pm

racekakje wrote:kan iemand een lijstje geven met alle BR's (die jump dinges)
want ik ben da blad kwijt :(
U vraagt wij draaien! :P

Code: Select all

BRLE Branch when <= 0
BRLT Branch when < 0
BREQ Branch when = 0
BRNE Branch when # 0
BRGE Branch when >= 0
BRGT Branch when > 0
Maar die PEP7 commando's moeten wij nie vanbuiten kennen hé. We krijgen die op het examen :)

User avatar
Yannick
Posts: 97

Post#5 » Tue Jan 22, 2008 2:54 pm

die ASLA en ASRA zijn nie meer als shiftfuncties op u meegegeven woord
Stel bv u A = 000101
dan zal ASLA 001010 geven dacht'k en ASRA 100010
wij hebben dat 1 keer gebruik dacht ik bij een oefening, dunno meer met wat :')
What did you learn in school today?
-Revenge.

User avatar
Tom
Posts: 602

Post#6 » Wed Jan 23, 2008 2:07 pm

Yannick wrote:die ASLA en ASRA zijn nie meer als shiftfuncties op u meegegeven woord
Stel bv u A = 000101
dan zal ASLA 001010 geven dacht'k en ASRA 100010
wij hebben dat 1 keer gebruik dacht ik bij een oefening, dunno meer met wat :')
Nee, die vallen weg.

Een bitshift is eigenlijk gewoon een snellere manier om een vermenigvuldiging of een deling met 2 te doen. (Dubbele shift 4, Driedubbele shift 8, ...)

Als je in C++ (of andere hogere programmeertalen) dus veel werkt met het verdubbelen of het halveren van (gehele) getallen dan is het efficienter (sneller) om bitshifts te gebruiken. (De taal voorziet hier gewoon operators voor, je moet dus niet inline assembly* gebruiken)

Meer informatie:

http://en.wikipedia.org/wiki/Bitwise_operation

* Inline Assembly: Binnen een hoge programmeertaal (ook mogelijk in Oberon) assembly commando's invoegen om code efficienter te maken en te optimaliseren, of om specifieke Hardware Interrupts te gebruiken (hoever dat dat mogelijk is). Let wel op, te vroeg optimaliseren is meestal ten nadele. Beter een werkend programma dan een snel programma dat crasht.

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 61 guests