mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Befehl BIC ARM


Autor: dabudai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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. ;-)

Autor: Michael König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.