BCD-Zahl in Ganzzahl (16 Bit) wandeln

baui

Level-1
Beiträge
33
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Ich soll eine Funktion programmieren, die eine BCD-Zahl (3-stellig positiv) in eine Ganzzahl 16 Bit umwandelt. Dies entspricht der Umwandlungsoperation BTI oder dem Baustein BCD_I in SIMITIC. Desweitern soll ich die Variablen deklarieren und in einer Variabeldeklarationstabelle (IN, OUT) auflisten.

Mein Problem ist:
Laut Beschreibung in der Hilfe bei Step 7 gehe ich mit dem MW10 rein und das MW 12 ist der Ausgang. Ich lese somit 16 Binär Werte ein von denen erst mal nur 12 relevant sind, weil die BCD-Zahlen nur dreistellig/positiv sein sollen. D.h. immer vier Bits sind eine Zahl. Wie die Funktion dazu aussehen soll, kann ich mir nicht vorstellen. Man müsste ja mindestens 12 Eingänge haben und die alle bearbeiten.
Die Aufgabe muss eigentlich einfach zu lösen sein, laut Professor.
 
Hallo Baui,

das ist kein Problem:
Code:
L MW 10
SLW 12 // die 12 linken Bits rausschieben
SRW 12 // und wieder zurück -> nur noch die Einerstelle im Akku
T MW 16 // merken
L MW 10
SLW 8 // die 8 linken Bits rausschieben
SRW 12 // und auch die rechten 4 Bits weg -> die Zehnerstelle ist im Akku1
L 10
*I
L MW 16
+I
T MW 16 // jetzt sind die Zehner und Einerstelle als INT im MW 16
SRW 8 // die 8 rechten Bits rausschieben -> Hunderterstelle im AKKU 1
L 100
*I
L MW 16
+I
T MW 16 // fertig
Grüße
Gebs
 
Zurück
Oben