; ; Bulls & Cows game - assembler ; ; ARM assembler version of bullcow (defcode bullcow (d guess code) ($push '(r4 r5 r6 r7 lr)) ($sub 'sp 16) ($mov 'r7 'sp) ($mov 'r4 15) ($mov 'r3 0) clear ($strb 'r3 '(r7 r4)) ($sub 'r4 1) ($bcs clear) digits ($mov 'r4 #xf) ($and 'r4 'r1) ($mov 'r5 #xf) ($and 'r5 'r2) ($cmp 'r4 'r5) ($bne cows) bulls ($add 'r3 10) ($b no2) cows ($ldrsb 'r6 '(r7 r4)) ($add 'r6 1) ($strb 'r6 '(r7 r4)) ($bgt no1) ($add 'r3 1) no1 ($ldrsb 'r6 '(r7 r5)) ($sub 'r6 1) ($strb 'r6 '(r7 r5)) ($blt no2) ($add 'r3 1) no2 ($lsr 'r1 4) ($lsr 'r2 4) ($sub 'r0 1) ($bne digits) ($mov 'r0 'r3) ($add 'sp 16) ($pop '(r4 r5 r6 r7 pc)))