User guide
178 CHAPTER 10. THE DESIGN OF SIAL
jfeq Ln Jump to Ln if b #= a; b := ?
jfne Ln Jump to Ln if b #~= a; b := ?
jfls Ln Jump to Ln if b #< a; b := ?
jfgr Ln Jump to Ln if b #> a; b := ?
jfle Ln Jump to Ln if b #<= a; b := ?
jfge Ln Jump to Ln if b #>= a; b := ?
jfeq0 Ln Jump to Ln if a #= 0; b := ?
jfne0 Ln Jump to Ln if a #~= 0; b := ?
jfls0 Ln Jump to Ln if a #< 0; b := ?
jfgr0 Ln Jump to Ln if a #> 0; b := ?
jfle0 Ln Jump to Ln if a #<= 0; b := ?
jfge0 Ln Jump to Ln if a #>= 0; b := ?
Notice that all floating point instructions currently leave register b undefined, but
this may be changed later. As a slightly larger e x ampl e of the use of Sial we will compile
following program (com/fact.b):
SECTION "fact"
GET "libhdr"
LET start() = VALOF
{ FOR i = 1 TO 5 DO writef("fact(%n) = %i4*n", i, fact(i))
RESULTIS 0
}
AND fact(n) = n=0 -> 1, n*fact(n-1)
into the following Sial code.
F104
F103 K4 C102 C97 C99 C116
F113 K5 C115 C116 C97 C114 C116
F111 L1
F11 K1
F13 P3
F111 L4
F3 P3
F69
F9 L2
F31 P9
F13 P9
F3 P3
F13 P8
F112 M1
F32 P4 G94
F79 K1 P3
F75 K5
F89 L4
F11 K0
F77
F107 M1 K15 C102 C97 C99 C116 C40 C37 C110