Wie in Assembler Zahlen vergleichen

Gast #219461
Lesenswert?

Das kapier ich nicht ganz

MOVLW 4500  ; Der Wert 4500 wird in das Arbeitsregister geschrieben
SUBLW Hi    ; 4500 vom Drehzahlwert abziehen

und dann weiter? Wie kann ich das Zero Bit überprüfen? Wenn ich in den
Minus bereich komme, ist das Zerobit ja auch nicht gesetzt, oder??

Könnte jemand bitte einen ganzen Code posten. Bitte.
Gast #219464
Lesenswert?

Habe jetzt einmal das Programm angefügt.

Die Ausgangsdefinitionen usw (befinden sich inder I2C Sub) sind in
dieser Version nicht enthalten.

Das Programm zum Vergleichen soll in der Main.asm Datei eingefügt
werden.

Habe mir einmal einen Quellcode einfallen lassen, der aber nicht
funktioniert. :-((


Labelnot0:
call Valtostr      ; converteer de LO HI naar T5..T1
call Pruf

PRUF:
CLRDC        ;DC Flag rücksetzten weil vieleicht von was anderem noch
gesetzt
MOVLW "4500" ; 4500 nach W kopieren
SUBLW "HI"   ; -> 4500 - RPM Wert
SKPC        ; Ergebnis negativ ? dann springe drüber
GOTO  LEDEIN
bsf PORTA, 4     ;LED einschalten
goto eeend

Ledein:
bcs PORTA, 4     ; LED ausschalten
goto eeend

eeend:
return           ;zurück in Programmabarbeitung

bcf PORTA,MRQ    ; RPMXXXXX!!!
  call W1ms
      bsf PORTA,MRQ
  call W1ms
  call Starti2c


  movlw H'94'
  call Sendi2c     ; ("&h94")

      bcf PORTA,MRQ


Das Programm ist leider sehr schlampig geschrieben (nicht mein
eigenes). Habe den nicht funktionierenden Code beigefügt, damit nicht
solche Meldungen wie "machs dir nicht so leicht",usw kommen.

Wäre für eure Hilfe sehr dankbar
Angehängte Dateien:

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