Forum: Mikrocontroller und Digitale Elektronik Frage zu AVR ASM bytex(y)


von Jochen (Gast)


Lesenswert?

Hallo,
kann es sein, dass ein Konstrukt wie das hier:
1
subi r27, byte1(100000000000)
2
sbci r28, byte2(100000000000)
3
sbci r29, byte3(100000000000)
4
sbci r30, byte4(100000000000)
5
sbci r31, byte5(100000000000)
nicht funktiobiert weil der Assembler mir maximal 32bit Zahlen zerlegt?
Ich kriege immer einen Fehler:
Error  1  syntax error, unexpected '('

von spess53 (Gast)


Lesenswert?

Hi

>nicht funktiobiert weil der Assembler mir maximal 32bit Zahlen zerlegt?

Ja.

MfG Spess

von Jochen (Gast)


Lesenswert?

Hrmpf, und nun?

von Hannes L. (hannes)


Lesenswert?

Jochen schrieb:
> Hrmpf, und nun?

Die Zahl von Hand in Bytes aufdröseln? Z.B. über Hex-Schreibweise?

...

von Jochen (Gast)


Lesenswert?

Ok, also sowas hier
dazu gleich noch eine Frage: wenn ich mit negativen Binärzahlen arbeite, 
kann ich das dann so schreiben?


subi r27, -0b00000000
sbci r28, -0b11100100
sbci r29, -0b00001011
sbci r30, -0b01010100
sbci r31, -0b00000010

von Hannes L. (hannes)


Lesenswert?

Warum binär? Mit negativen Binärzahlen hatte ich noch nicht zu tun.

Ich meinte, dass man die negative Zahl, die man subtrahieren will, der 
Einfachheit halber in Hex umwandeln kann und dann für jede Etappe die 
für das gewünschte Byte erforderlichen beiden Hex-Ziffern notiert.

Ist natürlich nur eine Krücke, vermutlich gibt es elegantere Lösungen. 
Ich habe da aber noch nicht drüber nachgedacht, da mir bisher immer 
Zahlen unterhalb 32 Bit gereicht haben.

...

von spess53 (Gast)


Lesenswert?

Hi

> wenn ich mit negativen Binärzahlen arbeite,
>kann ich das dann so schreiben?

Nein. Weil

 100000000000 = $174876E800
-100000000000 = $E8B7891800

MfG Spess

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.