1 fun pr i
= (print (IntInf
.fmt
StringCvt.HEX i
);
9 print ("A " ^ oper ^
" B: ");
15 print (oper ^
" A: ");
20 val s
= Word.fmt
StringCvt.HEX w
21 val sp
= CharVector
.tabulate(String.size s
, fn _
=> #
" ")
23 print (" " ^ sp ^
"A: ");
25 print ("A " ^ oper ^
" " ^ s ^
": ");
29 fun mkInt i n
= if n
= 0
31 else mkInt (IntInf
.+ (IntInf
.* (i
, IntInf
.fromInt
10),i
))
34 val mkInt
= fn i
=> fn n
=> mkInt (IntInf
.fromInt i
) n
38 val _
= prBin
"&" a
b (IntInf
.andb (a
, b
))
39 val _
= prBin
"|" a
b (IntInf
.orb (a
, b
))
40 val _
= prBin
"^" a
b (IntInf
.xorb (a
, b
))
46 val _
= tryBin
' (a
, b
)
47 val _
= tryBin
' (IntInf
.~ a
, b
)
48 val _
= tryBin
' (a
, IntInf
.~ b
)
49 val _
= tryBin
' (IntInf
.~ a
, IntInf
.~ b
)
55 val _
= prUn
"!" a (IntInf
.notb a
)
62 val _
= tryUn
' (IntInf
.~ a
)
68 val _
= List.app (fn w
=> prSh
"~>>" w
a (IntInf
.~
>> (a
, w
)))
69 [0wx0
, 0wx1
, 0wx2
, 0wxF
, 0wx10
, 0wx11
, 0wx12
]
70 val _
= List.app (fn w
=> prSh
" <<" w
a (IntInf
.<< (a
, w
)))
71 [0wx0
, 0wx1
, 0wx2
, 0wxF
, 0wx10
, 0wx11
, 0wx12
]
80 val _
= trySh
' (IntInf
.~ a
)
85 fun loop (n
', m
') (n
, m
) =
92 else (tryBin (mkInt i j
, mkInt i j
);
93 tryBin (mkInt i j
, mkInt (i
+ 1) j
);
94 tryBin (mkInt i j
, mkInt
i (j
+ 1));
95 tryBin (mkInt i j
, mkInt (i
+ 1) (j
+ 1));
107 val _
= loop (0, 0) (3, 3)
108 val _
= loop (0, 8) (3, 10)
109 val _
= loop (0, 20) (3, 22)
110 val _
= loop (0, 30) (3, 31)