summary refs log tree commit diff
path: root/05.s
blob: a1b571999a435153cc25da66d70610eb6f2345fc (plain) (blame)
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
43
44
45
46
47
48
49
50
51
52
53
        B start


verse	DEFW	4
menmow  DEFB 	"went to mow\n",0
mowdow  DEFB    "Went to mow a meadow\n",0
men     DEFB    "men",0
man     DEFB    "man",0
comma   DEFB    ",",0
nl      DEFB    "\n",0
space   DEFB    " ",0
and_dog DEFB    "and his dog, Spot",0

        
        ALIGN
;4 men went to mow\n
start   MOV R1, #0
        MOV R2, #4

main    ADR R0, verse   ; change to R2
        SWI 3
        ADR R0, space
        SWI 3
        ADR R0, men
        SWI 3
        ADR R0, menmow

;Went to mow a meadow\n
        ADR R0, mowdow
        SWI 3

;4 men, X men,
        ; R2 is the number from 4 to 1
        ADR R0, R2
        SUB R0, R0, R1
        ; down to here it makes sense
        CMP R0, #1 ;i need 2 counters
        ADD R1, R1, #1 ;increase the substract value
        SWI 4
        
        BEQ singlr
        
        B main

        ADR R0, mowdow
        SWI 3
        
        CMP  ; we need to compare n of iterations
        smaller than 3 
        BLT main


        SWI 2