ReC98/libs/BorlandC/n_scopy.asm

45 lines
1.3 KiB
NASM

; *Not* the original file, but an edit to turn it into an includable slice.
; Changes include:
; * removal of RULES.ASI to eliminate redundancy
; * removal of the segment declarations (for obvious reasons)
; * addition of a PROC directive around the function
;[]-----------------------------------------------------------------[]
;| N_SCOPY.ASM -- near struct copy routine |
;[]-----------------------------------------------------------------[]
;
; C/C++ Run Time Library - Version 5.0
;
; Copyright (c) 1987, 1992 by Borland International
; All Rights Reserved.
;
; calls to this routine are generated by the compiler to copy
; one "struct" value to another
;
; On entry:
;
; CX = Number of bytes to copy
public N_SCOPY@
N_SCOPY@ proc near
push bp
mov bp,sp
push si
push di
push ds
lds si,dword ptr 4[bp]
les di,dword ptr 8[bp]
cld
shr cx, 1
rep movsw
adc cx, cx
rep movsb
pop ds
pop di
pop si
pop bp
ret 8
N_SCOPY@ endp