aboutsummaryrefslogtreecommitdiff
path: root/newasm/string.s
diff options
context:
space:
mode:
Diffstat (limited to 'newasm/string.s')
-rw-r--r--newasm/string.s32
1 files changed, 32 insertions, 0 deletions
diff --git a/newasm/string.s b/newasm/string.s
new file mode 100644
index 0000000..c1dad1c
--- /dev/null
+++ b/newasm/string.s
@@ -0,0 +1,32 @@
+.syntax unified
+.cpu cortex-m0plus
+.thumb
+
+.type putstr, %function
+.type cmpstr, %function
+
+.global putstr, cmpstr
+
+putstr: LDR R3, =0x40034000
+ MOVS R2, 0x20
+1: LDR R1, [R3, 0x18]
+ TST R1, R2
+ BNE 1b
+ LDRB R1, [R0]
+ TST R1, R1
+ BEQ 2f
+ STRB R1, [R3]
+ ADDS R0, 1
+ B 1b
+2: BX LR
+
+cmpstr: MOVS R4, 0
+1: LDRB R2, [R0, R4]
+ LDRB R3, [R1, R4]
+ CMP R2, R3
+ BNE 2f
+ CMP R2, 0
+ BEQ 2f
+ ADDS R4, 1
+ B 1b
+2: BX LR