PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DB (pseudo Befehl) Wie verwenden?



dennse159
07.06.2007, 10:11
Moin
habe da ein problem bei der Ausgabe von Texten....
habe bei Sprut eine so genannten DB befehl gefunden der aus einem buchstaben (zeichen) ein 8 bit Binärzahl macht nun habe ich damit schon einbisl rumprobiert habe aber kein brauchbares ergebnis Erziehlt...
kann mir jemand sagen wie ich denn verwende und wo er die gewandelten Binärzaglen speichert?
bin für jede hilfe dankbar
mfg Dennse

wanderer
07.06.2007, 12:05
*variable* = DB(zeichen)
so wuerdei ch das jetzt denken.. also das DB einen wert zurueckliefert welchen du in einer variable speichern kannst.

Edit: Ich denke die "Binaerzahl" ist der ASCII-Code von dem zeichen.

MartinITM
08.06.2007, 00:22
Hi,

was ist denn "Sprut"?
Wenn du z.B. aus einer 7 (00000111) die Bits haben willst dann kannst du das in einer Schleife machen.


unsigned char Bit[8];
unsigned char sieben = 7;
for(i=0;i<8;i--)
{
Bit[i] = (sieben & ( 0x01U << i))+48;
}

Somit hast du in dem Array "Bit" die Binärdarstellung der Zahl "sieben" als ASCII-Zeichen und könntest sie dann in einer Schleife mit printf oder so anzeigen lassen.
Glaube das Problem bei DB ist, dass du der Funktion, falls es eine ist, ein Array per Referenz übergeben musst, damit diese bei einem unsigned char die 8 ASCII-Zeichen für ein Zahl zwischen 0 und 255 als ASCII in das Array schreiben kann. Welche Programmiersprache soll das denn überhaupt sein?

LG
Martin

PicNick
08.06.2007, 07:06
DB wird (sehr verbreitet bei Assemblern) dazu verwendet, Programm-speicher zu definieren . Ist sowas wie "DATA" beim Basic.

LABEL:
DB 'A'

belegt ein byte /Wort uns schreibt 'A' rein (= d'65' = 0x41)

DAS IST KEINE FUNKTION zur RUNTIME !

Benedikt.Seidl
08.06.2007, 09:38
@martin: sprut hat ne homepage (sprut.de) und da sind ganz viele praktische sachen rund um den pic und die assembler sprache.

d.h. DB ist das gleiche wie DE? wo liegt dann der unterschied?



org H'2100' ; Adresse des EEPROM für den Brenner
de b'00000000'
de b'00000000'
de b'00000000'
de b'00000000'


SEIDL.

MartinITM
08.06.2007, 09:55
Assembler :) naja, bei 2 Buchstaben und auch noch groß geschrieben hätte ich da auch selber drauf kommen können :)

PICture
08.06.2007, 10:58
Hallo!

Sowohl "DB" als auch "DE" sind MPASM Direktiven. Der unterschied liegt daran, dass sich "DB" auf Programmspeicher und "DE" auf EEPROM bezieht. Beide definieren ein Byte im entsprechenden Speicher als Data.

MfG :)