6502Autorytet
1piorunówMamy tu jakiegoś eksperta od assemblera Z80? Chodzi mi o wstawki assemblerowe w sdcc. Funkcja, która ma skoczyć bezwarunkowo pod adres:
>void run(char* address){
>__asm
>pop HL
>jp (HL)
>__endasm;
>}
Kompiluje się prawidłowo, ale nie działa. Ktoś może mi wytłumaczyć dlaczego? Ja to rozumiem w następujący sposób:
-argument przy wywołaniu funkcji jest wrzucany na stos
-instrukcja "pop HL" ściąga argument ze stosu do rejestru HL
-"jp (HL)" skacze bezwarunkowo pod adres przechowywany w rejestrze HL.
program zachowuje się tak, jakby nic się nie wykonało.
#programowanie #naukaprogramowania #retrocomputing
Nie jesteście normalni, wracajcie do piwnicy ;)
@6502 pod debugerem sprawdź co tam się faktycznie dzieje
@inskpektor Nie ma debuggera 😉

















