Forum: PC-Programmierung Zuweisung unter Assembler


von Horst-Martin (Gast)


Lesenswert?

Hallo miteinander ,

ich bin schon länger auf der suche nach einer genauen Definition für die 
"Zuweisung in Assember" am besten mit Beispielen.

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

von Horst-Martin (Gast)


Lesenswert?

ps wenn ich hobel fallen sähne du gehst heut nach hause ohne deine zähne

von peter max (Gast)


Lesenswert?

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.

von Horst-Martin (Gast)


Lesenswert?

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 ???

von peter max (Gast)


Lesenswert?

hihi lieber horst,
den Spruch find ich richtig ulkig :)
die anderen gebiete sind mir leider fremd..

grüße max

von Karl H. (kbuchegg)


Lesenswert?

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.

von peter max (Gast)


Lesenswert?

dazugelernt danke :)

von Horst-Martin (Gast)


Lesenswert?

Vielen Dank

deine Antwort hat mir wirklich weitergeholfen.

von Route_66 (Gast)


Lesenswert?

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.

von Thomas E. (thomase)


Lesenswert?

Route_66 schrieb:
> Natürlich gibt es auch in Assembler Zuweisungen.
Nein. Gibt es nicht.
Das, was du bei einem Register "Zuweisung" nennst, ist die 
Adressierungsart "Immediate".

Route_66 schrieb:
> Alles hängt natürlich vom Prozessor und vom Assembler ab.
Nein.
Das hängt nur davon ab, ob jemand den Fachjargon beherrscht oder nicht.

mfg.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Reinhard Kern (Gast)


Lesenswert?

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

von Thomas E. (thomase)


Lesenswert?

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

mfg.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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.

von MCUA (Gast)


Lesenswert?

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!

von Matthias L. (matze88)


Lesenswert?

Sagt mal Leute, merkt ihr nicht das die nur rumtrollen?

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
Noch kein Account? Hier anmelden.