Forum: Mikrocontroller und Digitale Elektronik Kleiner Indianer / Little Endian


von Peter X. (vielfrass)


Lesenswert?

bin bei meinem Programm erstmal ein bischen über den kleinen Indianer 
gestolpert. Wie sage ich denn dem Assembler, das ich doch lieber einen 
grossen Indianer für die DW-Direktive hätte?
1
; Ein Ausschnitt aus einem kleinen AVR-Programm (ATTINY15)
2
  lpm
3
  mov  buff_low,r0      ;little Endian => erst das low Byte
4
  subi  ZL,low(-1)
5
  sbci  ZH,high(-1)  ;Z++;
6
  lpm
7
  mov  buff_high,r0      ;little Endian => dann das high Byte
8
  subi  ZL,low(-1)
9
  sbci  ZH,high(-1)  ;Z++;
10
11
12
Meine_Tabelle:
13
.DW  10000
14
.DW  1000
15
.DW  100
16
.DW  10
17
.DW  1

von Esquilax (Gast)


Lesenswert?

Ich tipp mal auf garnicht, da das hardwareseitig so festgelegt ist?!?

alternative: schreib in C ;-)

von Peter D. (peda)


Lesenswert?

1
  .db   high(10000), low(10000)
2
  .db   high(1000),  low(1000)
3
  .db   high(100),   low(100)
4
  .db   high(10),    low(10)

Du mußt dann aber auch Deinen Code abändern.
So wie oben, stimmt er ja zu den DW-Anweisungen.


Peter

von Hannes L. (hannes)


Lesenswert?

Davon mal abgesehen, für


  subi  ZL,low(-1)
  sbci  ZH,high(-1)  ;Z++;

gibt es

  adiw zh:zl,1       ;Z++

...

von Peter X. (vielfrass)


Lesenswert?

Hannes Lux wrote:
> Davon mal abgesehen, für
>
>
>   subi  ZL,low(-1)
>   sbci  ZH,high(-1)  ;Z++;
>
> gibt es
>
>   adiw zh:zl,1       ;Z++
>
> ...

Danke für den Tip,
aber der Befehl adiw wird leider vom ATTINY15 nicht unterstützt.

von Hannes L. (hannes)


Lesenswert?

Peter X. wrote:
> Hannes Lux wrote:
>> Davon mal abgesehen, für
>>
>>
>>   subi  ZL,low(-1)
>>   sbci  ZH,high(-1)  ;Z++;
>>
>> gibt es
>>
>>   adiw zh:zl,1       ;Z++
>>
>> ...
>
> Danke für den Tip,
> aber der Befehl adiw wird leider vom ATTINY15 nicht unterstützt.

Ohhh sorry, daran hatte ich jetzt nicht gedacht... - schäm...
Zu lange nix mehr mit dem Tiny15 gemacht.

...

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.