diff options
Diffstat (limited to 'kernel/process.s')
-rw-r--r-- | kernel/process.s | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/kernel/process.s b/kernel/process.s new file mode 100644 index 0000000..24e1869 --- /dev/null +++ b/kernel/process.s @@ -0,0 +1,33 @@ +.intel_syntax noprefix +.global copy_page_physical +.global loop_m +copy_page_physical: + push ebx + pushf + + cli + + mov ebx, [esp+12] + mov ecx, [esp+16] + + mov edx, cr0 + and edx, 0x7fffffff + mov cr0, edx + + mov edx, 1024 + +.loop: + mov eax, [ebx] + mov [ecx], eax + add ebx, 4 + add ecx, 4 + dec edx + jnz .loop + + mov edx, cr0 + or edx, 0x80000000 + mov cr0, edx + + popf + pop ebx + ret |