Nabend alle zusammen, sitze hier gerade übereinen Arm-Programm, und weiß nicht was der Befehl BIC hier macht.Könnte mir das evt. einer in binär schreibweise aufschreiben, damit ich das verstehe: R0 = 0x81 BIC R0,R0,#0x7F Vielen Dank im Voraus. dabudai
Hi, also BIC steht für Bit Clear und macht: BIC r0,r1,r2 -> r0 = r1 and not r2 Das heißt das alle Bits die "1" sind im zweiten opperand (r2) setzten die entsprechenden Bits im Operand r1 aus "0". Gerne zum Maskieren von Bitmustern genutzt. R0 = 0x81 BIC R0,R0,#0x7F R0= 10000001 and not 1111111 = 10000000 gruß Jan
Wie Jan schon schreibt, steht BIC für "Bit Clear", was eigentlich nur eine AND-NOT-Operation ist. Das Gegenteil ist BIS (Bit Set), das bei den meisten anderen Prozessoren als OR bezeichnet wird. Die Mnemonics BIS und BIC müßten die Entwickler bei Acorn damals meiner Ansicht nach von der VAX übernommen haben.
Angesichts der Art wie ARM seine Konstanten im Befehl codiert liegt dieser Befehl allerdings nahe. Wobei er nicht erst auf der VAX sondern auch auf allerlei älteren Maschinen bereits existierte, beispielsweise PDP11:BIC und TI990:SZC.
Korrektur meinerseits: ARM hat nur BIC. Das BIS heißt dort ORR, was wahrscheinlich wie viele andere Mnemonics an die des 6502 angelehnt sind (in dem Fall dann ORA). Ich hätte beinahe PDP-11 geschrieben, war mir aber nicht mehr ganz sicher. BIC/BIS scheint eine typische DEC-Nomenklatur zu sein, weswegen sich das dann auch noch in der Alpha findet. Ich hatte vor einigen Jahren mal einen Artikel für die German Archimedes Group geschrieben, in dem ich Hypothesen aufgestellt habe, welche Prozessoren wahrscheinlich für die ARM-Architektur Pate gestanden haben. War eine sehr bunte Mischung. Kurzfassung (so aus dem Kopf, deswegen fehlt bestimmt etwas): 6502: Die typischen Mnemonics mit unbedingt drei Buchstaben (siehe vor allem ORR) SPARC: Das RISC-Grundkonzept und das Optionale Setzen von Conditionflags S/360 & 68K: LDM/STM, namentlich von der 360er, aber Registermaske eher vom MOVEM des 68K 6800/68K: Die vielen Konditionen für die Prädikation
Nur setzt diese moderne Abstammungslehre ja voraus, dass seitens ARM niemand eigene Ideen gehabt hat, aber der Entwickler des 6800 sehr wohl. Bischen unfair finde ich. Für die Registermaske muss man nicht unbedingt 68000 studiert haben, da kann man notfalls auch selber drauf kommen. Die ARM Architektur ist übrigens ein paar Jahre älter als SPARC, also wenn schon dann hat Sun sich das bei ARM abgeguckt. ;-)
Dummerweise ist bekannt, daß Acorn damals mehrere Prozessoren als möglichen Nachfolger für den 6502 ausgewertet hat. Der 68000er war auch dabei und wurde wegen der schlechten Latenzen verworfen. Sicherlich ist es möglich, daß die Registermaske eine eigene Idee war, nur ist es mindestens ebenso wahrscheinlich, daß die Implementierung der MOVEM-Instruktion des 68000er eine Inspiration war. Wie gesagt, es war eine rein hypothetische Angelegenheit und im Artikel habe ich ARM als Architektur im Vergleich zu anderen Prozessoren dargestellt. ARM als kommerzieller Prozessor ist älter als SPARC, das ist korrekt (genau genommen ist ARM der älteste kommerzielle RISC). Allerdings basiert SPARC auf dem Berkeley-RISC-Projekt (vielleicht hätte ich diesen Namen verwenden sollen, aber kaum jemand kennt das Projekt heutzutage und so riesig ist der Unterschied zu SPARC nicht) und das wurde von den Acorn-Entwicklern nicht nur als Inspiration, sondern als eigentlicher Anstoß genommen, eine eigene Prozessorarchitektur zu entwickeln. Läßt sicher sehr gut in den Büchern von Steven Furber nachlesen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.