Hello,
I’m reading the examples of RISC assembler and list handling.
On the web page (http://www.ulisp.com/show?30ZU), I think there’s a typo because the CAR/CDR example uses ARM mnemonic, not the RISC ones.
So I suppose that part should read,
This loads the CAR of the list in A1
CAR : ($ld 'a1 0 'a0)
This loads the CDR of the list in A1
CDR: ($ld 'a1 8 'a0)
Looking at the “product” example, is it possible to have some clarifications?
In the first part of the code,
[…]
($ld 'a1 0 '(a0))
this copies the CAR of the list in a1, correct?
($ld 'a1 8 '(a1))
if my first assumption is correct, this I cannot understand. it’s CDR of CAR (?!?!)
($mul 'a2 'a1 'a2)
this performs the multiplication a1 by a2 (a2 initially is 1).
($ld 'a0 8 '(a0))
this load the CDR of the list in a0
Please, can you clarify this for me?
Thanks a lot,
Fausto