hallo, ich bin kompletter µC neuling und habe eine frage. Ich möchte in 20 speicherstellen (werden zuerst mit 20 byte allociert). 20 zahlen reinschreiben (von 19 -0). Ich verwende die Loop funktion und den Befehl JNZ (Jump not zero). Ich weis jz aber nicht wie ich das umsetzten soll welche werte nehm ich bei den 20 speicherstellen??. und das ganze soll indirekt adressiert werden mithilfe eines Registers.
:
Verschoben durch User
Zunächst einmal die Kristallkugel: Da JNZ auftaucht, scheint es sich um einen 8051-Kontroller zu handeln. Der Rest, eventuell ungenau, da nur aus dem Gedächtnis: Da gibt es im Befehlsvorrat des Kontrollers einen Befehl MOV @r0,A und als Gegenbefehl ein MOV A,@r0 Der lässt sichh für diesen Zweck prima verwenden. R0 mit max. Zahl (20) laden schleife: akku mit Datenwort laden MOV @ro,a djnz r0, schleife bringt 20 Zahlen in die Speicherplätze des RAM, mit Adresse 20..1 Aber Achtung, das RAM wird auch vom Stack benutzt, da kann es zur Überlappung kommen.
danke für die schnelle antwort ja der befehl MOV @R0,A ist genau der den ich brauche. Bei diesem befehl wird der inhalt des akkus ja in die Adresse geladen auf die R0 zeigt (stimmt das so)??? was mir einfach nicht eingeht is, von wo bis wo geht das Register R0? ich habe ja R0-R7 zur verfügung. wie kann ich dann bei R0 20 speicherstellen ansprechen und wie definiere ich das? Hier die angabe für klares Verständnis Verwenden Sie 20 Byte des Internen RAM des Prozessors um die folgenden Aufgaben zu losen. { Schreiben Sie in die 20 Speicherstellen (S) Zahlen absteigend von 19. Verwenden Sie die indirekte Adressierung mit Hilfe eines Registers. Legen Sie am Anfang fest welche Register und Speicherstellen verwendet werden mussen bzw. konnen. Verwenden Sie eine Schleife zum Weitergehen von Speicherstelle zu Speicherstelle. Verwenden Sie JNZ als Sprungbefehl. { Nehmen Sie an, die 20 Speicherstellen sind 8 Bit Netzwerkadressen. Verwenden Sie die 20 Speicherstellen (S) um sie mit der Subnetzmaske 0xF0 zu maskieren und wieder auf die Speicherstelle zu Schreiben. Legen Sie am Anfang fest welche Register und Speicherstellen verwendet werden mussen bzw. konnen. Verwenden Sie JNZ als Sprungbefehl. { Finden Sie mit Hilfe einer Schleife jene Speicherstelle in S an der die Adressen des Subnetzes 1 beginnen. Speichern Sie die Adresse an der Stelle S1.
Gibts keinen, der meine Hausaufgaben für mich macht? ;-) Sinn solcher Aufgaben ist doch, dass du dich mal etwas in die Grundlagen einliest und das hast du offensichtlich noch nicht gemacht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.