blob: 969b19a4f6d81389252a4cee250318193be2b1e4 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#!/usr/bin/env tclsh
source tclasm_old.tcl
### store 4 values to memory; load 2 of them back, multiply them and store the
### result; load another 2, multiply them and store the result;
### this is similar to addition and substraction tests
set_sp h7FFFC
## store first 2 factors
const 483091365
store@ h1EEE0
const 74683203
store@ h1EEE4
## store other 2 factors
const 8436
store@ h1EEEC
const -14020
store@ h1EEF0
## perform the first multiplication
load@ h1EEE0
stack down
load@ h1EEE4
# multiplying 483091365 by 74683203 should yield 36078810479842095
# if we take lowest 32 bits of 36078810479842095 we get 2861683503
mul
stack up
store@ h1EEE8
## perform the second multiplication
load@ h1EEEC
stack down
load@ h1EEF0
# multiplying 8436 by -14020 should yield -118272720 (which fits in 32 bits)
mul
stack up
store@ h1EEF4
halt
|