Forum: Mikrocontroller und Digitale Elektronik 8051 MOV iram,iram (Opcode 85) geht nicht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von H-G S. (haenschen)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche gerade einen 80c32x2 zu programmieren.

Es scheint aber dass der Befehl "MOV iramaddr,iramaddr" mit dem Opcode 
85h nicht funktioniert.
In meinem Testprogramm stehen sowohl die Zieladresse (24h) als auch die 
Quelladresse (26h) im Bit-adressierbaren Scratchpad-Bereich.
Der Befehl im Maschienenformat wäre dann "85 24 26".


Kann es sein dass man auf diesen Bereich nicht mit diesem MOV-Befehl 
zugreifen kann ?

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
H-G S. schrieb:
> Der Befehl im Maschienenformat wäre dann "85 24 26".

Das ist aber:
mov 26, 24

von Stephan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
kommt darauf an. 24h ist nicht 24h. Im Bitbereich ist alles etwas 
anders.
http://derstudent5.tripod.com/GCT/Myrzik_Kap3.pdf

Seite 5

von H-G S. (haenschen)


Bewertung
0 lesenswert
nicht lesenswert
Denkt ihr es wird erst die Quelladresse angegeben im Opcode ?
Das könnte einiges erklären, vor allem warum mein 
Interrupt-Tastenabfrageprogramm immer einen Reset verursachte :-)


Es ist übrigens eine Byte-Adresse - die Sache mit den eigenen Adressen 
der Bits ist mir bekannt.

von Peter D. (peda)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
H-G S. schrieb:
> Denkt ihr es wird erst die Quelladresse angegeben im Opcode ?

Nicht denken, sondern nachlesen!

von Carl D. (jcw2)


Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> H-G S. schrieb:
>> Denkt ihr es wird erst die Quelladresse angegeben im Opcode ?
>
> Nicht denken, sondern nachlesen!

Oder bei hü-oder-hott-Problemen nicht nur einen Fall testen.

von H-G S. (haenschen)


Bewertung
0 lesenswert
nicht lesenswert
Es stimmt... es ist scheinbar der einzige MOV-Befehl bei dem der 
Quelloperand links steht.

Danke euch!

von Mr. Claudius (Gast)


Bewertung
0 lesenswert
nicht lesenswert
In diesem Dokument ist mov direct,direct falsch beschrieben:

http://www.atmel.com/images/doc0509.pdf (S. 34)

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Im alten Atmel Instruction Set 0509B-B–12/97 wars noch richtig.

Bei Keil isses auch richtig:
http://www.keil.com/support/man/docs/is51/is51_mov.htm

von H-G S. (haenschen)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Code berichtigt und es hat tatsächlich etwas gemacht!

Zwar nicht genau das was ich erwartet hatte aber immerhin ein 
Fortschritt :-)

von Carl D. (jcw2)


Bewertung
0 lesenswert
nicht lesenswert
Es gibt, falls es nicht wie gewünscht funktioniert doch eine sehr 
endlich Anzahl Alternativen, oder?

von H-G S. (haenschen)


Bewertung
0 lesenswert
nicht lesenswert
Ja, es scheint dass eine Möglichkeit zum Debuggen sehr wichtig ist.

Es sah sehr gut aus als ich den Code schrieb und in Maschinencode 
umwandelte und dann einswitchte.
Dass es nicht wie gewünscht lief war doch recht enttäuschend.
Bei der Kontrolle fand ich einen Fehler beim Umwandeln in Maschienencode 
und auch einen Fehler beim Einswitchen.
Es lief aber immer noch nicht, daher schrieb ich jetzt ein neues 
Testprogramm welches genau an der Stelle des MOV iram,iram nicht das tat 
was es sollte.

Doch wie es aussieht hat die Eingabeport-Serielleinschiebe-Routine einen 
Fehler - doch ich werde alles einzeln testen bzw. debuggen  :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.