(→Postfix Code) |
(→Postfix Code) |
||
Line 24: | Line 24: | ||
ALIGN | ALIGN | ||
LABEL a | LABEL a | ||
− | + | SADDR _L123 ;; automatic label | |
;--- this is the main function (note that "s9" translates to RTS's "_main") | ;--- this is the main function (note that "s9" translates to RTS's "_main") | ||
Line 34: | Line 34: | ||
ADDR a | ADDR a | ||
− | + | LDINT | |
EXTRN prints | EXTRN prints | ||
CALL prints | CALL prints | ||
Line 40: | Line 40: | ||
INT 0 | INT 0 | ||
− | + | STFVAL32 | |
LEAVE | LEAVE | ||
RET | RET |
Consider the following S9 function:
<c> string a = "batata"; int s9() -> 0 {
a!
} </c>
The Postfix code for the above function is as follows:
[Expand] Postfix code |
---|
To test the first example, the S9 compilation process is as follows:
s9 batata.s9 yasm -felf batata.asm ld -o batata batata.o -lrts
To test the second program directly, pf2asm can be used:
pf2asm batata.pf yasm -felf batata.asm ld -o batata batata.o -lrts