Assembler Code

Gast #4020046
Hey,

habe wieder eine Verständnisfrage zum Assembler. Ich kann die Lösung 
nicht verstehen.

START: MOVE.W A,D1
       ADD.W B,D1
       MULS.W C,D1
       ASL D1 , 2
       MOVE.W D1 , ausgabe
A: DC.W 6
B: DC.W −9
C: DC.W 4
D: DC.W 3
ausgabe : DC.W 1
Lösung: -48

--> ((6-9)*4)=-12 und jetzt muss zweimal nach links (arithmetisch 
geshiftet werden. Meine Frage ist nun wie ich die -12 in binär angebe (W 
steht für 16Bit), erst das Komplement bilden dann shiften oder wie?
#4020776
tim94 schrieb:
> Hey,
>
> habe wieder eine Verständnisfrage zum Assembler. Ich kann die Lösung
> nicht verstehen.
>
> START: MOVE.W A,D1
>        ADD.W B,D1
>        MULS.W C,D1
>        ASL D1 , 2

Siehe oben, den Befehl gibt's im 68k-Assembler nicht
asl #2, d1 müsste das sein

>        MOVE.W D1 , ausgabe
> A: DC.W 6
> B: DC.W −9
> C: DC.W 4
> D: DC.W 3
> ausgabe : DC.W 1
> Lösung: -48
>
> --> ((6-9)*4)=-12 und jetzt muss zweimal nach links (arithmetisch
> geshiftet werden. Meine Frage ist nun wie ich die -12 in binär angebe (W
> steht für 16Bit), erst das Komplement bilden dann shiften oder wie?
1
-12 = 0xfff4 (1111 1111 1111 0010)
2
 12 = 0x000c (0000 0000 0000 1100)
3
Einerkomplement von 12 (not.w) wäre
4
      0xfff3 (1111 1111 1111 0011) oder -13
5
der 68k kennt aber auch neg.w...
Gast #4024845
tim94 schrieb:
> Meine Frage ist nun wie ich die -12 in binär angebe (W
> steht für 16Bit), erst das Komplement bilden dann shiften oder wie?

-12 == 0xFFF4 == 0b1111 1111 1111 0100

Jetzt shiften (<<2):

0x1111 1111 1101 0000 == 0xFFD0 == -48

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 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.