013
14.06.2019, 18:58 Uhr
holm
|
Zitat: | Mario Blunk schrieb
[..] Danke. Problem ist aber, daß HL in der Routine nicht geänder werden darf. Bei komplexen Routinen kann das keiner gewährleisten.
|
Unfug. Neimand hindert Dich HL zwischenzeitlich wieder auf den Stack zu schaffen wenn Du HL benötigst, Du mußt es halt nur vor dem Rücksprung zurück holen.
Zitat: | Der Rücksprung mit jp (hl) ohne ret ist etwas unüblich. In der Bilanz ist der Stack nach call rout_1 wieder korrekt. |
Auch Quatsch, jmp (HL) ist alles Andere als selten. Wenn Dir das nicht gefällt dann mach halt push HL, ret, ist exakt das Selbe. Natürlich kannst Du auch ein push HL, pop IX und Anderes verwenden oder die Rückkehradresse gleich nach IX oder IY vom Stack holen, Du mußt nur einen Plan haben was Du machen willst.
Gruß,
Holm -- float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v; {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+ (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&& (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;} Dieser Beitrag wurde am 14.06.2019 um 18:58 Uhr von holm editiert. |