Kristoffer Eriksson
<5357>
· Text 2629 · w8 · kommentar
1986-02-07 19:33
Ärende: Nya instruktioner.
Var det inget annat! Enkelt: CALL 27 som kallas STRCOMP. Har du Bit för
bit? Dessutom finns CALL 29 där B ska ange typ av inparameter: 0=Flyttal,
1=Heltal, 2=Sträng. En av dessa rutiner ska du använda till syntax-
kontrollen (=kompileringen).
Vid exekveringen av instruktionen gör du som vanligt RST 32 (EVALU) och
får då tre värden på stacken: Stackåtgång, Textpekare och Längd. Längden
är det man får upp sist med POP. Vid beräkningen av stränguttrycket kan
det gå åt en hel del stack, som måste återlämnas av din instruktion.
Jag har för mig att man gör det genom att addera ovan nämnda Stackåtgång
(som brukar POPas till IX) till stackpekaren (SP), men gör det inte
förrän EFTER att du använt strängen, annars kan stacken skada strängen.
Ett annat sätt är att spara undan SP i någon minnescell (inte stacken)
före RST 32 och sedan återställa SP före RET från instruktionen.
Klargörande?