Der Befehlsaufruf Rn,sub ist ein Zwei-Wort-Befehl. Unter der Annahme, dass PC während des Abrufzyklus des ersten Wortes des Befehls inkrementiert wird, ist dies seine Registerübertragungsoperation
Rn<=PC+1;
PC<=M[PC];
Jemand hilft mir bitte, die minimalen Taktzyklen zu berechnen, die während des Ausführungszyklus der Anweisung benötigt werden. Ich bin Student der Informatik und nicht sehr gut in Mikroprozessoren, bitte erklären Sie, wie man minimale Taktzyklen zählt.
Sollte es in 8085 nicht 5 sein.
Bitte lassen Sie mich wissen, wo ich falsch liege? Bitte.
Um eine solche Frage zu beantworten, muss viel mehr Kontext angegeben und Annahmen explizit gemacht werden. Nur ein paar Probleme:
1) Die hier beschriebene Aufrufmethode ist typisch für ARM/Cortex und einige weniger bekannte Architekturen. Ein 8085 verwendet die gebräuchlichere Stack-basierte Methode.
2) Die meisten Architekturen haben dedizierte Hardware- und Datenpfade zum Inkrementieren des PCs, so dass die ALU nicht beteiligt sein muss und parallel zu einer anderen Operation durchgeführt werden kann.
3) Ein 8085 ist eine 8-Bit-Architektur mit einer 16-Bit-Adresse, daher beinhaltet das Erhalten einer Adresse aus dem Speicher zwei Speicherzugriffe (mit begleitenden PC-Inkrementen).
4) Sie scheinen anzunehmen, dass ein Speicherzugriff 2 interne Zyklen Zeit benötigt. IIRC war 1 für einen 8085 (aber ich könnte mich irren), und es ist oft viel viel mehr für moderne Prozessoren.
5) In Schritt 3) erwähnen Sie einen Akkumulator, Sie meinen wahrscheinlich das ALU-Ergebnisregister, das auf den meisten registerbasierten Architekturen kein vom Programmierer sichtbares Register ist.
6) Wenn das Speichern des Ergebnisses in Rn einen Zyklus dauert, erscheint es vernünftig anzunehmen, dass das Speichern der Zieladresse im PC auch einen Zyklus benötigt.
PeterJ
Benutzer1766481
Connor Wolf