Tiny 4/5/9/10 und ICALL

Gast #4469646
Lesenswert?
• ▲
▼
Hallo,

was hat die Frage mit einem attiny13 zu tun?

ICALLer schrieb:
> weiß jemand von euch, welchen Sinn es macht, bei den "ganz kleinen
> Tiny´s" (4-5-9-10) ICALL zu haben?
> Der Tiny 13A hat auf jeden Fall KEIN ICALL ! Wozu sollte das bei den
> ganz kleinen gut sein?

Ein attiny10 hat die Befehle man im Datenblatt findet und mit denen kann 
ich dann arbeiten, resp. sie benutzen.

Geht es Dir um die Funktion von ICALL, die Beschreibung findet man u.a. 
im Datenblatt des attiny10 ab S198f.

ICALL Indirect Call to (Z) PC(15:0) ← Z, PC(21:16) ← 0 None 3/4

Es ist eine indirekter Funktionsaufruf über das Register Z.

Mit einer Hochsprache programmiert würde man Call - Backfunktion dazu 
sagen.

Einem 16 Bit Pointer wird eine Funktionsadresse zu gewiesen.

Alles klar ?
#4469674
Lesenswert?
• ▲
▼
ICALLer schrieb:
> weiß jemand von euch, welchen Sinn es macht, bei den "ganz kleinen
> Tiny´s" (4-5-9-10) ICALL zu haben?

Ich verstehe den Sinn der Frage nicht. Die Funktion des ICALL Opcodes 
scheint dir ja klar zu sein. Ansonsten hat ein Maschinenbefehl 
natürlich keinen "Sinn" (und machen tut er erst recht keinen) sondern 
er hat einen mehr oder weniger großen Nutzen.

> Der Tiny 13A hat auf jeden Fall KEIN ICALL ! Wozu sollte das bei den
> ganz kleinen gut sein?

Was hat der Nutzen eines bestimmten Maschinenbefehls mit der "Größe" 
(woran auch immer du die festmachst) eines µC zu tun?
Gast #4469753
Lesenswert?
• ▲
▼
-> Die Frage bezog sich auf die Sinnhaftigkeit dieses Opcodes beim 
kleinsten Tiny, obwohl der 2.-Kleinste Tiny (13A) diesen eben NICHT hat.

Die Frage war, ob jemand versteht, wieso ICALL beim Tiny10 vorhanden, 
jedoch beim 13A eben NICHT vorhanden ist !
Gast #4469884
Lesenswert?
• ▲
▼
Johann L. schrieb:
> Zumindest IJMP ist Verschwendung von Silizium.  Als IJMP-Ersatz ginge
> nämlich PUSH+PUSH+RET.  So hätten bestimmt noch ein man µm² gesparen
> werden können...

Hast du chon mal überlegt, wie die Schaltung im uC aussieht, also der 
Befehlsdekodierer und das zugehörige Steuerwerk?

Wenn es icall, push, ret usw. gibt, ist der zusätzliche Aufwand für ijmp 
nur noch sehr gering, also ist auch die Ersparnis sehr gering, wenn man 
es weglassen würde. Möglicherweise gibt es nicht mal eine Ersparnis.

Bevor du hier meckerst, solltest du einfach mal selber einen Prozessor 
entwerfen. Da wird dir auffallen, dass sich viele Teile der Strukturen 
für mehr als einen speziellen Fall nutzen lassen, weil sie sehr ähnlich 
sind. Das ist eine Frage der Optimierung.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.