sadf

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
armorris2001
Date:
Thu Oct 29 00:45:39 2015 +0000
Commit message:
e ryas

Changed in this revision

main.c Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r b7eda4fdb627 main.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.c	Thu Oct 29 00:45:39 2015 +0000
@@ -0,0 +1,45 @@
+#include "mbed.h"
+
+__asm void my_strcpy(const char *src, char *dst);
+__asm void my_capitalize(char *str);
+
+int main(void){
+    const char a[] = "Hello World!";
+    char b[20];
+    
+    my_strcpy(a,b);
+    my_capitalize(b);
+    
+    while(1)
+    ;    
+}
+
+__asm void my_strcpy(const char *src, char *dst){
+loop
+    LDRB r2, [r0]   ; Load byte into r2 from memory, pointed to by r0 (src pointer)
+    ADDS r0, #1     ; Increment src pointer
+    STRB r2, [r1]   ; Store byte in r2 into memory pointed to by (dst pointer)
+    ADDS r1, #1     ; Increment dst pointer
+    CMP r2, #0      ; What the byte == 0?
+    BNE loop        ; If not, repeat the loop
+    BX lr           ; Else return from subroutine    
+}
+
+__asm void my_capitalize(char *str){
+cap_loop
+    LDRB r1, [r0]   ; Load byte into r1 from memory pointed to by r0 (str pointer)
+    CMP r1, #'a'-1  ; Compare byte with the character before 'a'
+    BLS cap_skip    ; If byte is lower or same, then skip this byte
+    
+    CMP r1, #'z'    ; Compare it with the 'z' character
+    BHI cap_skip    ; If it is higher, then skip this byte
+    
+    SUBS r1, #32    ; Else subtract out difference to capitalize it
+    STRB r1, [r0]   ; Store the capitalized byte back in memory
+
+cap_skip
+    ADDS r0, r0, #1 ; Increment str pointer
+    CMP r1, #0      ; Was the byte 0?
+    BNE cap_loop    ; IF not, repeat the loop
+    BX lr           ; Else return from subroutine
+}
\ No newline at end of file
diff -r 000000000000 -r b7eda4fdb627 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Oct 29 00:45:39 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/34e6b704fe68
\ No newline at end of file