Forum: PC-Programmierung Assembler Code


von tim94 (Gast)


Lesenswert?

Hallo,

ich habe eine Frage zu einem Assembler Code und hoffe jemand kann mir 
bitte helfen.

FOO: MOVE.L  A,D1
     SUB.L   B,D1
     ASR     D1
     MOVE.L  ergebnis,D1
A:   DC.L    9
B:   DC.L    6

Mein Problem ist der dritte Befehl asr.
9-6= 3-->11

Wie wird jetzt geshiftet, in welche Richtung bzw. was bedeutet das 
Ganze?

von Oliver S. (oliverso)


Lesenswert?

A rithmetic S hift R ight

Oliver

von (prx) A. K. (prx)


Lesenswert?

tim94 schrieb:
> was bedeutet das Ganze?

Nix, weil falsch. Oder Verarsche. So jedenfalls ist es völlig egal, was 
ASR macht, solange er den Prozessor nicht anzündet.

von tim94 (Gast)


Lesenswert?

Danke erstmal, die Bedeutung right ist mir klar aber was wie geschiftet 
wird nicht.
11-->01?

von (prx) A. K. (prx)


Lesenswert?

Wie herum arbeitet der MOVE Befehl denn? Von links nach rechts, von 
rechts nach links, oder oben dies unten jenes?

NB: Es dürfte mindestens als unhöflich gelten, mitten in einer 32-Bit 
Rechnung einen 16-Bit Befehl zu verwenden.

: Bearbeitet durch User
von tim94 (Gast)


Lesenswert?

Ich habe leider überhaupt keine Ahnung, dass war grad ein 
Einstiegsbeispiel in das Thema :/

von (prx) A. K. (prx)


Lesenswert?

Woher weisst du denn, dass nach ASR in D1 der Wert 11 drin steht?

von tim94 (Gast)


Lesenswert?

Achso nein, ich habe nur den zweiten Schritte aufgeschrieben. Der 
Schritt vor asr.
3 in binär ist 11, das wollte ich damit sagen

von Detlef K. (adenin)


Lesenswert?


von (prx) A. K. (prx)


Lesenswert?

Dann fang nochmal von vorne an und beschreib dein Problem. Bislang sehe 
ich zwar 4 wenig zusammenhängende Befehle, aber keine Frage, denn trotz

tim94 schrieb:
> in welche Richtung

hast du auf

Oliver S. schrieb:
> A rithmetic S hift R ight

mit

tim94 schrieb:
> die Bedeutung right ist mir klar

geantwortet.

: Bearbeitet durch User
von tim94 (Gast)


Lesenswert?

Damit war eig nur gemeint, dass mir klar ist wofür die Buchstaben stehen 
sorry.

von tim94 (Gast)


Lesenswert?

Neuer Versuch:
0011--> 0001

von (prx) A. K. (prx)


Lesenswert?

ja

von tim94 (Gast)


Lesenswert?

Danke

von ASM (Gast)


Lesenswert?

Welchen PC willst du eigentlich in ASM programmieren? Wäre auf einem PC 
eine Hochsprache nicht besser aufgehoben oder willst du ein sehr 
performantes Betriebssystem schreiben?

von (prx) A. K. (prx)


Lesenswert?

Klingt eher nach Lehre. PCs mit 68K drin sind heute selten geworden.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

tim94 schrieb:
> Neuer Versuch:
> 0011--> 0001

Aber bedenke, wenn der nur Verschieben täte hieße er logical shift 
right.
Der 'Arithmetische' schiebt keine 0 links rein, sondern dupliziert das 
höherwertigste Bit, welches für gewöhnlich dem Sign-Bit entspricht.

Bei 8 Bit wäre das ein

10000010 -> ASR -> 11000001

: Bearbeitet durch User
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.