Hallo, ich habe eine recht einfache Frage, auf die ich allerdings keine Antwort finde. Worin besteht der Unterschied in einem Assembler Programm zwischen CALL und RCALL. Ich weiß, dass der Unterprogrammaufruf absolut und direkt ist. Aber was macht das jetzt für einen Unterschied bei der Programmierung? Muss ich das Unterprogramm, dass ich mit RCALL aufrufe mit RET beenden und bei CALL nicht? Oder was ist der Unterschied? Danke schon mal :)
:
Bearbeitet durch Admin
>Muss ich das Unterprogramm, dass ich mit RCALL aufrufe >mit RET beenden und bei CALL nicht? Das musst du bei beiden. CALL kann durch den gesamten Speicherbereich springen, RCALL nur einen kleinen Bereich. Ich meine +-2kB. Kann mich aber auch irren. Also Assembler Referenz lesen.
RCALL: Relative 12-Bit (signed) Word-Adresse. 1-Word Befehl. CALL: Absolute 22-Bit Word-Adresse. 2-Word Befehl.
:
Bearbeitet durch User
Schon mal in Assembler Manual geschaut? RCALL kann nur +/- 4096 Worte realtiv vom akuellen PC weit springen, CALL 64k bzw. 4M absolut weit.
CALL oder Long Call oder absolute Call ist ein Sprung zu der unmittelbar angegebenen Addresse RCALL - relativew Call ist ein Sprung vom aktuellen Programmcounterwert + Sprungweite + 1