Zuweisung unter Assembler

Gast
hey horst,
zuweisungen sehen wie folgt aus a = 1 a wird also der wert 1 zugeordnet.
Mir stellt sich im übrigen auch die Frage wie das in einem Programm 
aussehen soll.
Gast
ja ich weis

aber wie sieht es den jetzt anders aus nach deiner ausführlichen 
Erklärung stellt sich mir die frage was sind Timer  und was sind 
Interruptus ???
Horst-Martin schrieb:

> Nätürlich ist mir allgemein klar was damit gemeint ist aber gibt es noch
> irgendwelche Besonderheiten im Assembler Bereihc ????

Ja.
Im Assembler gibts keine Zuweisungen.
Auf Assemblerebene gibt es Register und Speicher.
Und es gibt es gibt Load bzw Store Operationen (die manchmal auch Move 
heißen) mit denen man einen Wert (der auch von einem anderen Register 
stammen kann, oder aus dem Speicher) in ein Register bugsieren kann 
(bzw. beim Store in die andere Richtung).

Aber Zuweisungen gibt es nicht.
Gast
Hallo!
Natürlich gibt es auch in Assembler Zuweisungen.
Man kann Registern Werte zuweisen (Store, Load, Move...), Marken 
Adressen zuweisen (EQU, ORG...), Speichersegmente zuweisen (CSEG, 
DSEG..), reservierte Speicherbereiche zuweisen (DEFS...) usw.
Alles hängt natürlich vom Prozessor und vom Assembler ab.
Route_66 schrieb:

> Alles hängt natürlich vom Prozessor und vom Assembler ab.


Es gab schon Assembler, bei denen man einen Load mittels einer Zuweisung 
schreiben konnte. Ich glaube es war ein Osborn Z80 Assembler, bei dem 
man schreiben konnte

     BC = 256
     D = H

und der Assembler machte daraus

     LDI  BC, 256
     LD   D, H


Aber das ist von dem was man in einer Programmiersprache eine 
"Zuweisung" nennt, meilenweit entfernt.

Man kann eine Bierkiste auch als "Sessel" bezeichnen. Kann man, man kann 
sie ja umdrehen und darauf sitzen. Aber im Allgemeinen versteht man 
unter einem Sessel alles mögliche, aber sicher keine Bierkiste.
Gast
Hallo,

der Begriff Zuweisung ist schon deshalb abwegig, weil es in Assembler ja 
keine Variablen gibt, sondern Register und Adressen - eine Zahl ins 
Register R4 oder B zu laden ist nur verständlich in dem Kontext, wofür 
dieses Register gerade verwendet wird. Das ist eine ms später was ganz 
anderes, eine der Fehlermöglichkeiten in Assembler, die man in einer 
Hochsprache so nicht hat. Ein Register KANN eine Variable (im Sinn eines 
bestimmten Speicherplatzes) enthalten, wenn man die vorher von ihrer 
Speicheradresse ins Register geladen hat, und/oder wenn man vorhat, sie 
nachher dorthin zu speichern. Als Zwischenspeicher für eine logische 
oder Rechenoperation entspricht ein Register keiner Variablen. Abgesehen 
davon gibt es eh nur Bytes oder 16, 32 und 64 Bit-Worte je nach 
Prozessor, mit einer String-Variablen wie z.B. einer Telefonnummer muss 
man selbst alles byteweise organisieren.

Gruss Reinhard
Thomas Eckmann schrieb:
> Karl Heinz Buchegger schrieb:
>> BC = 256
>> D = H
> Aber das sind doch Makros.

Ich weiß nicht wie das genau realisiert wurde.
Makros glaub ich ehrlich gesagt nicht. Denn diese "Zuweisung" löste alle 
Adressierungsmodi richtig auf.

Aber nagle mich da jetzt nicht fest. Das ist 25 Jahre her. Mir ist es 
nur aufgefallen, weil das komplett anders aussah als die Zilog Assembler 
Notation.
Persönliche Seite
Auch heute noch gib es Assembler wo etwa ein UND geschrieben wird als

 R1 = R2 & R3

und der Assembler dies nativ unterstützt. Entsprechend sieht eine 
Zuweisung so aus — oder eben ein Load wenn man Zuweisung nicht mag:

 R1 = R2

Beispiel: Blackfin wie zu sehen hier:

http://gcc.gnu.org/viewcvs/trunk/gcc/config/bfin/bfin.md?content-type=text%2Fplain&view=co
http://docs.blackfin.uclinux.org/doku.php?id=toolchain:inline_assembly

Der Compiler (hier bfin-gcc) gibt das tatsächlich aus nud es ist die 
Schnittstelle zum Assembler.
Gast
Bei ASM wird ja fast immer irgentwas irgentwie transportiert. Ob man das 
nun Zuweisung nennt oder nicht ist doch reine Geschmackssache.
-------------------------
Die von Blackfin wollten es mit Ihrem ASM (dem man "in 
Hochsprachensyntax" schreiben kann) besser machen als Andere. ...Was 
aber nicht gelungen ist,  denn den meisten Leuten missfällt diese Syntax 
total. Aussendem sehen viele Befehle davon echt bescheuert aus! Die 
haben weder Ähnlichkeit mit herkömmlichem ASM noch mit herkömmlicher 
Hochsprache!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.