/programs/develop/ktcc/trunk/libc.obj/source/libtcc1/Makefile |
---|
1,11 → 1,10 |
KTCC=kos32-tcc |
FASM=fasm |
OBJ= memcpy.o memmove.o memset.o libtcc1.o |
all: $(OBJ) |
ar -crs ../../../bin/lib/libtcc.a $(OBJ) |
ar -crs ../../../bin/lib/libtcc1.a $(OBJ) |
rm -f *.o |
%.o : %.c |
/programs/develop/ktcc/trunk/libc.obj/source/libtcc1/memcpy.asm |
---|
10,13 → 10,12 |
push edi |
mov ecx,[count] |
test ecx,ecx |
jz no_copy_block |
jz .no_copy_block |
mov esi,[from] |
mov edi,[to] |
cld |
rep movsb |
no_copy_block: |
.no_copy_block: |
pop edi |
pop esi |
mov eax, [to] |
/programs/develop/ktcc/trunk/libc.obj/source/libtcc1/memmove.asm |
---|
6,27 → 6,25 |
public memmove |
proc memmove c, to:dword,from:dword,count:dword |
push esi |
push edi |
mov ecx,[count] |
test ecx,ecx |
jz no_copy_block_ |
jz .no_copy_block |
mov esi,[from] |
mov edi,[to] |
cmp esi, edi |
je no_copy_block_ |
jg copy_ |
je .no_copy_block |
jg .copy |
add esi, ecx |
add edi, ecx |
dec esi |
dec edi |
std |
copy_: |
.copy: |
rep movsb |
cld |
no_copy_block_: |
.no_copy_block: |
pop edi |
pop esi |
mov eax,[to] |