Zum Inhalt springen

bpasero

Mitglieder
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

  1. help plz !
  2. Das mit dem Schieben von B nach A und umgekehrt hat schon seine Zweck. Ich muss im Programm abfragen, ob es zum ersten mal läuft, oder schon einen bzw. mehrere Durchgänge hinter sich hat. Denn für das Lauflicht muss ich ja 1 Diode initialisieren, und zwar die erste, sonst leuchtet gar nichts. Da das Programm wegen der Schalter immer wieder von vorne beginnt, würde er jedes mal nur diese erste Diode zum Leuchten bringen, aber nicht mehr. Daher "rette" ich den Inhalt des Akkus, schreibe ihn in B und überprüfe vor dem eigentlichen Lauflicht, ob das Programm schon etwas im Register B reingeschrieben hat. Fals nicht, weiss das Programm das es zum ersten mal durchläuft, fals ja, lässt er das "MVI A,001" aus und nimt den Wert des Registers B.
  3. Huch, ich dachte der Befehl "mov r1, r2" verschiebt einen Wert von Register "r2" nach "r1" und nicht umgekehrt ? oder liege ich da falsch ?
  4. kein Problem, ich poste einfach das gesamte Programm (auf das Blinklicht verzichte ich) ------------------ start: jump s0 weiter: jmp lauf jmp start end ------------------ ------------------ del: mvi a,000 out 13 s0: in 12 ani 01 jz del jmp weiter ------------------ ------------------ lauf: mov a,b inr a dcr a jz lauf0 jmp lauf1 ------------------ ------------------ lauf0: mvi a,01 out 13 call zeit rlc mov b,a jmp 0e000 ------------------ ------------------ lauf1: out 13 call zeit rlc mov b,a jmp 0e000 ------------------ ------------------ Die Zeitschleife beginnt bei E500: zeit: mvi c,008 mvi d,0ff mvi e,0ff dcr e jnz 0e506 dcr d jnz 0e504 dcr c jnz 0e502 ret ------------------ ------------------ Zuer Erläuterung: Das Programm startet wenn der Schalter S0 eingeschaltet ist und führt dann das Laudlicht aus. Das UP Zeit ist eine geschachtelte Zeitschleife für einen 600 MHz Rechner. Beim MFA würde ich die dritte Schleife weglassen.
  5. Hi, ich habe keine Ahnung ob ich hier im richtigen Forum für meine Frage poste. Es geht darum, dass wir einen MFA (8085, 1xIN, 1xOUT) so Programmieren sollen, dass man bei der Eingabebaugruppe diverse Schalter benutzen kann, um die Dioden einzuschalten, bzw. zwischen Lauf- und Blinklicht zu wechseln. Das ganze funktioniert mit diversen UND-Maskierungen zur Schalterabfrage, einer Zeitschleife und halt einmal dem Blinklicht und dem Lauflicht. Das Blinklicht funktioniert, aber ich habe Probleme mit dem Lauflicht. Hier der Code: mov a,b inr a dcr a jz lauf0 jmp lauf1 lauf0: mvi a,01 out 13 call zeit rlc mov b,a jmp 0e000 lauf1: out 13 call zeit rlc mov b,a jmp 0e000 Da sich das gesamte Programm immer wieder wiederholt muss ich den Zustand des Lauflichtes in einem Register, in diesem Fall "b", speichern. Ich habe im oberen Teil eine Abfrage, ob das Register "b" leer ist, oder ob das Lauflicht schon einen Wert gespeichert hat. Das Programm funktioniert, allerdings NICHT mit der Zeitschleife als Unterprogramm. Kann es sein, dass die Zeitschleife beim Runterzählen der Register irgendwie die übrigen Register mit beeinflusst ? Ich habe auch schon die Möglichkeit in Erwägung gebracht den Zustand des Lauflichtes nicht in einem Register, sondern im Memory zu speichern, aber ich bin mir nicht sicher, welcher Memorybereich für so etwas frei wäre Danke für die Hilfe und sry fals es das falsche Forum ist !

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...