Forum: Mikrocontroller und Digitale Elektronik High- und Low-Byte


von Andi (Gast)


Lesenswert?

Hallo,

ich soll ein High- und Low-Byte in Assembler schreiben. Hab aber keine 
Ahnung wie das funktioniert.
Wäre nett wenn ihr mir helfen könnt.

Danke schonmal in vorraus.

Andi

von Andreas (Gast)


Lesenswert?

Wir, oder vielleicht nur ich haben keine Ahnung was du meinst.
Liefere bitte mehr Info´s oder du wirst als Troll enttarnt werden.

von Hannes Lux (Gast)


Lesenswert?

> ich soll ...

Dann wäre es sinnvoll, mal den zu fragen, für den Du das sollst.

> Hab aber keine Ahnung

Dann hast Du vermutlich im Unterricht gepennt. Die Lösung findest Du 
vermutlich in Deinen Aufzeichnungen. Falls nicht, dann stehe dazu, dass 
Du es nicht kannst, sacke Deine (ehrlich verdiente) schlechte Note ein 
und mache es das nächste mal besser. Ohne Fleiß kein Preis.

...

von ... (Gast)


Lesenswert?

Ja. wir koennen ein Highbyte und ein Lowbyte schreiben, nur wird das 
wenig nuetzen, denn ausserhalb des Zusammenhanges bringt das eher wenig 
bis nichts.

von Andi (Gast)


Lesenswert?

Sorry, aber im Unterricht hatten wir das noch nicht, sonst würde ich ja 
auch nicht fragen.

von Marius W. (mw1987)


Lesenswert?

Das wird dir hier aber keiner glauben...

Warum sollte euch ein Lehrer eine Aufgabe stellen, obwohl ich im 
Unterricht noch gar nichts dazu gemacht habt? Zumindest die Grundlagen 
solltest du mitbekommen haben...

MfG
Marius

von Andi (Gast)


Lesenswert?

Wir machen ein Projekt: Anzeige von Temperatur und Uhrzeit auf 
4*7-Segment
und ich soll High-Byte und Low-Byte in Assembler schreiben. Die Aufgabe 
hat uns nicht mein Lehrer gegeben.

von dos (Gast)


Lesenswert?

Wir helfen doch gerne:
1
ORG 100h                    ; Startoffset auf 100h setzen (Startpunkt für COM-Programme)
2
 
3
mov ax, cs                  ; Wert des Codesegmentregisters in Register ax übertragen
4
mov ds, ax                  ; Datensegment auf Wert von ax setzen
5
 
6
mov ah, 09h                 ; DOS-Funktion zum Schreiben von Text
7
mov dx, Meldung             ; Adresse des Textes
8
int 21h                     ; DOS-Funktion ausführen
9
 
10
mov ax, 4C00h               ; DOS-Funktion um das Programm zu beenden
11
int 21h
12
 
13
Meldung: db "ein High- und Low-Byte"   ; Unser Text
14
         db "$"             ; Markiert das Ende der Zeichenkette

DOS-Help

von Andi (Gast)


Lesenswert?

Vielen vielen Dank!

Echt super von dir.

von Mark B. (markbrandis)


Lesenswert?

dos wrote:
> Wir helfen doch gerne:

:-)

Hier als Alternative die Lösung in C:
1
#include <stdio.h>
2
3
int main(int argc, char** argv)
4
{
5
  printf("ein High- und Low-Byte in Assembler\n");
6
  return 0;
7
}

von von der Insel (Gast)


Lesenswert?

und in Java:
1
/* ein_High_und_Low_Byte_in_Assembler.java */
2
 
3
public ein_High_und_Low_Byte_in_Assembler {
4
 
5
  public static void main(String[] args) {
6
    System.out.println("ein High- und Low-Byte in Assembler");    
7
  }
8
}

von Ahem (Gast)


Lesenswert?

"Wir sollen ein High- und ein Low-Byte schreiben". Meine Güte.

Lieber DOS, geht das auch in kariert und Dienstags mit Musik?
Ich habe so eine Ahnung, dass das ohne Musik ne schlechte Note gibt.

von Peter (Gast)


Lesenswert?

>Ich habe so eine Ahnung, dass das ohne Musik ne schlechte Note gibt.

kannst ja ein paar ASCII 7 in den Text einbauen.

von Ahem (Gast)


Lesenswert?

>kannst ja ein paar ASCII 7 in den Text einbauen.
Lieber ein Ctrl-Gong.

von Peter D. (peda)


Lesenswert?

Da Du nicht die geringste Ahnung zu haben scheinst, wozu "High- und 
Low-Byte" gut sind und in welchem Kontext man sie wie verwendet, 
beschreibe einfach mal in Worten, die Du kennst, was Du eigentlich 
machen willst.


Und Assembler gibt es über 100 verschiedene. Du mußt schon sagen, 
welchen Du meinst und für welches Target er Code generieren soll (genaue 
Chip-Bezeichnung, Hersteller oder Link darauf).


Peter

von Andi (Gast)


Lesenswert?

Assembler ist 8051win

von Andi (Gast)


Lesenswert?

Target AT89C5131

von miraculix (Gast)


Lesenswert?

Ist doch ganz einfach,
vor den Variablennamen "high" und "low" setzen,
der Assembler macht dann schon das Richtige.

High bedeutet den obern Teil des Word oder Bit 15...Bit 8
Low bedeutet den unteren Teil des Word oder Bit 7... Bit 0.

Word ist eine 16 Bit Variabel, oder 2 Byte....

Bespiel, 8051-Assembler.

public messwert ; Namensdefinition

messwert: dw 2; Speicherresevierung

start:
; irgendwelcher Code
.......
         mov  r0,high(messwert)
         mov  r1,low(messwert)
; und schon ist der 16-Bit, 1 Word, Messwert in
; ein High-Byte (in r0) und ein Low-Byte (in r1) aufgeteilt.
r0 und r1 sind Register im 8051.
Wenn man schon in Assembler programmieren will, sollte man
schon die Hardware des Zielprozessors kennen........
......
; weiter im Programm

Hoffe, ich konnte helfen.

von Karl H. (kbuchegg)


Lesenswert?

miraculix wrote:

> Hoffe, ich konnte helfen.

Ich hab so ein seltsames Gefühl :-)
Das Hauptproblem wird wohl die Ansteuerung der 7-Segment Anzeigen sein, 
die womöglich gemultiplext sind.

Im Satz "ich soll ein High- und Low-Byte in Assembler schreiben" wird 
wohl das eigentliche Problem beim Wörtchen 'schreiben' liegen.

@Andi
Und jetzt lehnst du dich mal zurück und formulierst eine ordentliche 
Frage.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.