Mikrocontroller - Assembler

Gast #2434045
Lesenswert?

Wenn das ein einfacher Assembler für Intel-Mikros (8051 o.ä.) ist, dann 
wird mit diesem Befehl der dezimale Wert 10 in das Port-Register p1 (das 
ist in diesem Fall halt ein vordefinierter Name) geschrieben. Beim 8051 
wären dann die Portleitungen P1.1 und P1.3 auf High gesetzt. Bei anderen 
Mikrocontrollern kann das ganz anders sein, ebenso wenn p1 vorher anders 
definiert wurde. Dann wird eben der Wert 10 an die Speicherstelle 
geladen, die im Assembler den Namen p1 erhalten hat.
Gast #2434068
Lesenswert?

Danke für die Antworten.

Es müsste ein Kontroller aus der Intel 8051 Familie sein.
Im Simulator habe ich das Problem:

mov r0, #10

So läuft er genau 10mal eine folgende Schleife durch.

mov r0, 10

Hier fängt er bei ff = 255 an.

Kann es sein das hier die 10 eine Programmadresse ist?
Gast #2434329
Lesenswert?

> Der 8051 hat nur 8 Register.
um ganz korrekt zu sein 4 Registerbänke a 8 Register

> mov p1, 10

könnte also auch R2 aus der Registerbank1 an den Port1 senden ;-)

wobei Ich mir allerdings nicht vorstellen kann, dass der TO schon
die Registerbänke umschalten kann.

Thomas
#2434375
Lesenswert?

Peter Steiner schrieb:
> #10 wäre ja 10 Hexadezimal. Aber für was steht nur die 10?
Autsch!
Das "#" heisst "Immediate" und bedeutet "Schreibe die folgende Zahl in 
das Register".
Wenn da nur eine Zahl steht, ist das eine Dezimalzahl.
Also nach "mov p1, #10" steht der Wert 10 in p1, also liegt am Ausgang 
an, wenn es ein Port ist.
Eine Hexadezimalzahl kann man je nach Assembler 0x0A, $0A oder 0Ah 
scheiben. Meistens werden alle drei Schreibweisen akzeptiert.
Also "mov p1, #$0A" schreibt auch eine "10" auf den Port.
"mov p1, 10" oder auch "mov p1, 0x0A" ist direkte Adressierung und 
schreibt den Inhalt der Adresse 10 auf den Port.

Tröste dich. Dieser Fehler ist Anfängers Liebling.

mfg.

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