BRGE-Befehl unklar

OP #2924815
Lesenswert?
• ▲
▼
Moin Moin,

ich hab mal wieder ein kleines Problem mit meinem Mega32...

Es geht um den BRGE-Befehl.
1
freqschleife:
2

3
      out   portc,wf
4
      inc    wf
5
      cpi    freq,1
6
      brge  freqcount
7
      rjmp  freqschleife
8

9
      freqcount:
10

11
        mov    a1,freq
12

13
        fc:
14

15
        dec    a1
16
        brne  fc
17
        rjmp  freqschleife

Wenn freq 0 ist, soll er sich die freqcount-schleife sparen... das 
klappt aber nur, solang freq nicht größer als 0x7F wird, bei 0x80 
verzweigt er nicht mehr... Also nach meinen Mathematikverständniss ist 
0xFF auch größer als 0x01... Für erklärende Antworten wäre ich sehr 
dankbar. =)

MfG, des Chaoskind
Gast #2924826
Lesenswert?
• ▲
▼
jendrik t. schrieb:

> [...] solang freq nicht größer als 0x7F wird, bei 0x80
> verzweigt er nicht mehr... Also nach meinen Mathematikverständniss ist
> 0xFF auch größer als 0x01... Für erklärende Antworten wäre ich sehr
> dankbar. =)

Ich habe von Assembler keine Ahnung, aber das sieht aus als wäre die 
Variable ein signed 8-bit Integer.

In dem Fall gibt das erste Bit das Vorzeichen an.

Bis 0x7F ist es eine 0 und damit positiv, ab 0x80 ist es eine 1 und 
damit negativ.

Somit ist die Dezimalzahl kleiner.
Gast #2924833
Lesenswert?
• ▲
▼
signed und unsigned bitte unterscheiden. Wenn bit 7 1 ist, dann ist die 
Zahl negativ. 0x80 ist also -128. Zweierkomplement.
In der Instructionset Tabelle von Atmel stehen die Flags die beachtet 
werden
 und welche Operation ausgeführt wird. Bei einen cpi wird auch nur 
subtrahiert und die Flags ausgewertet ohne ein ergebnis ins Zielregister 
zu schreiben.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.