32Bit Variable in Assembler

Gast #2596995
Lesenswert?

Hallo,

leider bin ich mit dem Assembler wenig vertraut. Daher die Frage, wie 
incrementiert man eine 32Bit Variable um 1 mit anschließender Auswertung 
ob ein bestimmter Stand erreicht ist?

Oder macht es Sinn den Code vom Compiler zu nutzen (Also erst in C 
schreiben, dann den Code kopieren und in das Assemblerprojekt einfügen)?

So sähe wohl der C Code aus:
1
32bitvariable++;
2
if(32bitvariable == xyz)
3
{
4
   mach dies oder das...
5
}

Also in C n Klacks, aber Assembler???


Ingo
Gast #2597014
Lesenswert?

Hi

>addi R16, 1
>addwi R17, 0
>addwi R18, 0
>addwi R19, 0

Wenn das für AVR sein soll, dann nicht so. Sondern

  clr r15          ; Null
  sbci r16,-1
  adc r17,r15
  adc r18,r15
  adc,r18,r15

Vergleich:

  ldi r20,Byte4(Konstante)
  cp r16,r20
  ldi r20,Byte3(Konstante)
  cpc r17,r20
  ldi r20,Byte2(Konstante)
  cpc r18,r20
  ldi r20,Byte1(Konstante)
  cpc r19,r20

MfG Spess
Gast #2597036
Lesenswert?

Ingo schrieb:
> leider bin ich mit dem Assembler wenig vertraut.

Warum willst du dann mit Assembler Programmieren wenn du nicht einmal so 
eine simple Sache wie das inkrementieren einer >16Bit-Variable 
hinkriegst.
Also das ist jetzt nicht böse oder beleidigend gemeint. Ich meine nur 
wenn du C kannst dann bleib dabei, gute Compiler kommen angeblich bis 
95% an Assembler-Geschwindigkeit ran aber wenn man sich nicht auskennt 
kann es auch gut sein das ein Assembler noch langsamer ist als ein 
entsprechendes C Programm, mal davon abgesehen das Assembler viel 
umständlicher ist.
Gast #2597134
Lesenswert?

Weil es sich um einen Tiny10 handelt. Diesen kann ja glaub ich erst mit 
AVRStudio 5 in C Programmieren. Da das Programm, winzig klein, nun etwas 
erweitert werden soll, wollte ich es auch gleich weiter in Assembler 
machen. Evtl. Setze ich es aber auch ne in C auf mal gucken, trotzdem 
danke.
#2597139
Lesenswert?

Du solltest auf Salamiproduktion umsteigen. Die beherrschst du perfekt. 
Erst vergisst du, den Prozessor zu erwähnen, was zu eher exotischen 
Antworten anregt. Dann fliegt das doch noch auf und es kommt zu 
produktiven Antworten, aber es stellt sich nach langer Zeit heraus, dass 
es sich um einen recht exotischen AVR mit stark eingedampftem 
Befehlssatz handelt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren