Nyanix

Nyanix bootloader project
Log | Files | Refs | LICENSE

relocate_data.s (1249B)


      1 ; =========================================================================== ;
      2 ; /src/main/relocate_data.s                                                   ;
      3 ; Copyright (C) 2019 k4m1,  <k4m1@protonmail.com>                             ;
      4 ; See /LICENSE for whole license text.                                        ;
      5 ;                                                                             ;
      6 ; =========================================================================== ;
      7 
      8 [ BITS 16 ]
      9 
     10 %ifndef __RELOCATE_S__
     11 %define __RELOCATE_S__
     12 
     13 ; =========================================================================== ;
     14 ; Following function moves content from temp_kern_buffer to 0x10000 onwards   ;
     15 ; Requires:                                                                   ;
     16 ;     EAX = Amount of bytes to relocate                                       ;
     17 ;     ECX = Current offset at target                                          ;
     18 ; =========================================================================== ;
     19 memcpy_kern:
     20 	mov	edi, 0x10000
     21 	add	edi, ecx
     22 	mov	esi, temp_kern_buffer
     23 	xor	edx, edx
     24 	.memcpy:
     25 		mov	bl, byte [esi+edx]
     26 		mov	byte [edi+ecx], bl
     27 		inc	edx
     28 		inc	ecx
     29 		cmp	edx, eax
     30 		jle	.memcpy
     31 	ret
     32 
     33 %endif ; __RELOCATE_S__
     34 
     35 
     36