Przeczytałem wpis pana Chena o procesorach, które nie miały skoku do subrutyny i stosu: https://devblogs.microsoft.com/oldnewthing/20240401-00/?p=109599
Potem przeczytałem komentarz o kimś kto miał podobne przygody, ponieważ stworzył układ multipleksera portów szeregowych na Z80 i nie chciał używać RAM: https://news.ycombinator.com/item?id=39921674
Oczywiście źle go zrozumiałem. Myślałem, że w Z80 można przetransferować wartość z PC do jakiejś pary rejestrów. Siedziałem rano i szukałem instrukcji takiego transferu w spisie.
Kiedy okazało się, że to niemożliwe, pomyślałem że coś źle zrozumiałem. Może podłączył Z80 SIO do magistrali pamięci i jakieś jego 2 rejestry używał jako stosu skoków.
Oczywiście potem ponownie przeczytałem ten komentarz i zrozumiałem, że podczas kodowania wpisywał przed skokiem do par rejestrów adres powrotu (pewnie adres :etykiety za skokiem). Po zakończeniu subrutyny robił skok na adres w parze tych rejestrów (prawdopodobnie JP (HL)).
Jak dobrze, że RISC-V zapisuje adres powrotu w rejestrze. Można go używać bez RAMu :_>
Na pewno każdy współczesny Intel tak ma.