PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BASCOM LONG-Variablen --> Ist der Überlauf detektierbar?



NLB
21.10.2007, 13:11
Hi!
Bascom kennt den Variablen Typ Long (32 Bit, Wertebereich: - 2147483648 bis +2147483647 )
Werden 2 positive Long-Variablen addiert, so geht dies wunderbar solange der Wert +2147483647 nicht überschritten wird.

Wird er überschritten, so wird ein negatives Ergebnis ausgewiesen - obwohl der HEX-Wert OK ist.

Meines Wissens gibt es in Bascom nicht die Möglichkeit einen Überlauf (ins Negative) zu detektieren.
Theoretisch müßt das aber aus der Auswertung von "V- und S-Bit" möglich sein.

Weiß jemand, ob und wie das geht? - Evtl. mit ASM ???
oder kann man den (richtigen) HEX-Wert irgendwie auswerten (solange er nicht nach 0 überläuft ?)

Danke

PicNick
21.10.2007, 16:45
ASM geht immer, logo, Bascom tut es ja auch.

Das könnte helfen:
https://www.roboternetz.de/wissen/index.php/Assembler_Einf%C3%BChrung_f%C3%BCr_Bascom-User#Rechnen_mit_vorzeichenbehafteten_8_Bit

Mit dem Wissen kannst du dann auch 64 Bit und mehr rechnen
(für Astronomen *g*)

NLB
21.10.2007, 17:26
Danke PicNick,
da hatte ich schon geschaut, (sonst wüßte ich nichts vom S- und V-Bit); der Artikel ist wirklich gut!
Aber wie komme ich denn an diese S- und V-Bits ran ?

mfg NLB

PicNick
21.10.2007, 19:47
Is herzergreifend einfach:

BRGE Branch, if S = 0
BRGE Branch, if S = 1

S ist immer N exclusive or V

Ansonsten

SBIC / SBIS SREG, bit

bit 0 = Carry
bit 1 = zero
bit 2 = N-Bit
bit 3 = V-Bit
bit 4 = S-Bit
bit 5 = H-Bit
bit 6 = T-Bit
bit 7 = glob-interrupt enable

NLB
22.10.2007, 13:32
Für Könner herzergreifend einfach,
--> vom Nicht-Könner herzlichen Dank !!!

Ach, was wäre ich ohne Robert vom RoboterNETZ.
Werde mal rumdoktern.

Nochmals Danke NLB

PicNick
22.10.2007, 14:03
:oops: für Schusselige is es aber noch schwerer:

das heißt natürlich
BRLT Branch, if S = 1

sry

NLB
23.10.2007, 16:48
Hallo Robert
Ich habe so nett über einen Disassembler, den **PicNickHexHacker** im BASCOM InsideCode gelesen. Wo bekommt man das gute Stück denn her ???

mfg NLB

PicNick
23.10.2007, 18:56
*g* wie der Name sagt, das gibt's nur beim PickNick. Ich kann es bei besonderem Interesse aber schon persönlich zusenden, du würdest ja keine Unfug damit machen, denk ich.

NLB
30.10.2007, 15:53
Nochmals Danke, scheint aber ein Thema zu sein, das ins Eingemachte geht !!! (Vielleicht verstehe ich das nächstes Jahr!)

mfg NLB

roboterheld
30.10.2007, 19:55
musst dir mühe geben.