summaryrefslogtreecommitdiff
path: root/tests/fixtures/mpu-ops.s
blob: 49d4f9767b482a57b0fc7718ecd4c7f61a3871c8 (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
; LibMPU-backed arithmetic/conversion operation example.
;
; Build/run from examples/:
;   ../utils/mcpu-as -o mpu-ops.o mpu-ops.s
;   ../utils/mcpu-ld --stack-size=512 -o mpu-ops mpu-ops.o
;   ../utils/mcpu-run --int-reg=r64@0x00020 mpu-ops
;
; Expected output: 42
;
.text
_start_life:

        LDI       r64@0x00000, 6
        LDI       r64@0x00008, 7
        IMUL      r128@0x00010, r64@0x00000, r64@0x00008
        ICPY      r64@0x00020, r128@0x00010

        RCONST    r64@0x00028, ONE
        CRTOC     c128@0x00030, r64@0x00028
        CISEQ     r64@0x00040, c128@0x00030, c128@0x00030
        IINC      r64@0x00048, r64@0x00040
        IDEC      r64@0x00050, r64@0x00048
        ISUB      r64@0x00020, r64@0x00020, r64@0x00050
        IADD      r64@0x00020, r64@0x00020, r64@0x00040
        HALT