diff --git a/stm/string0.c b/stm/string0.c
index 4899e7b0f5078109897efcf8ebb29e214106edcb..79fd4cc097f402b3639b928aa8b9e96c13d2e970 100644
--- a/stm/string0.c
+++ b/stm/string0.c
@@ -34,6 +34,16 @@ void *memset(void *s, int c, size_t n) {
     return s;
 }
 
+int memcmp(const char *s1, const char *s2, size_t n) {
+    while (n--) {
+        char c1 = *s1++;
+        char c2 = *s2++;
+        if (c1 < c2) return -1;
+        else if (c1 > c2) return 1;
+    }
+    return 0;
+}
+
 size_t strlen(const char *str) {
     int len = 0;
     for (const char *s = str; *s; s++) {