ACALL ruft ohne Bedingung eine Subroutine auf, die sich an der angegebenen Adresse addr11 befindet.
Der Befehl inkrementiert (erhöht) den Programmzähler zweimal, so dass die Adresse des nächsten Befehls erreicht wird. Danach bringt er das 16bit-Ergebnis in den Stack (das niederwertige Byte zuerst) und inkrementiert den Stack pointer (SP) zweimal. Die Zieladresse ergibt sich aus einer Verknüpfung der fünf unveränderten höchstwertigen Bits des inkrementierten Programmzählers mit den Bits 7 bis 5 des Operationscodes und dem zweiten Befehlsbyte. Die aufgerufene Subroutine muss daher im selben 2kByte-Block des Programmspeichers starten wie das erste Byte des ACALL folgenden Befehls.
Kennzeichnungsbits werden nicht beeinflußt.
|