Forráskód Böngészése

test: inline assembly

simon 1 éve
szülő
commit
344f0e2ea2
2 módosított fájl, 17 hozzáadás és 0 törlés
  1. 9 0
      kernel/mem.c
  2. 8 0
      kernel/reg_constraint.c

+ 9 - 0
kernel/mem.c

@@ -0,0 +1,9 @@
+// #include <stdio.h>
+int main()
+{
+    int in_a = 1, in_b = 2, out_sum;
+    // printf("in_b is %d\n", in_b);
+    asm("movb %b0, %1;" ::"a"(in_a), "m"(in_b));
+    // printf("in_b now is %d\n", in_b);
+    return 0;
+}

+ 8 - 0
kernel/reg_constraint.c

@@ -0,0 +1,8 @@
+#include <stdio.h>
+int main()
+{
+    int in_a = 1, in_b = 2, out_sum;
+    asm("addl %%ebx, %%eax" : "=a"(out_sum) : "a"(in_a), "b"(in_b));
+    printf("sum is %d\n", out_sum);
+    return 0;
+}