📄 dmem001.asm
字号:
;************************************************************************
;* MODULE INFORMATION*
;**********************
;* FILE NAME: dmem001.asm
;* SYSTEM NAME:
;* ORIGINAL AUTHOR(S): Paul Lemmers
;* VERSION NUMBER:
;* CREATION DATE: 1990/8/14
;*
;* DESCRIPTION: Contains dev_memcpy
;*
;************************************************************************
;* CHANGES INFORMATION **
;************************
;* REVISION: $Revision: 1.1 $
;* WORKFILE: $Workfile: dmem001.asm $
;* LOGINFO: $Log: D:/CPROG/MYDEV/DEVLIB/VCS/DMEM001.ASV $
;*
;* Rev 1.1 17 Dec 1990 14:33:42 PAUL
;* Function headers added
;*
;* Rev 1.0 14 Aug 1990 14:39:48 PAUL
;* Initial revision.
;************************************************************************/
;
INCLUDE cdev.inc
_TEXT SEGMENT
;************************************************************************
;* NAME: dev_memcpy
;* SYNOPSIS: void far *dev_memcpy(void far *dest, void far *src,
;* unsigned count);
;* DESCRIPTION: See C-runtime memcpy
;* UNMODIFIED REGISTERS:
;* ds bp si di
;* RETURNS: See C-runtime memcpy
;************************************************************************
PUBLIC _dev_memcpy
dest = 4
src = 8
count = 0Ch
_dev_memcpy PROC NEAR
push bp
mov bp,sp
push ds
push si
push di
mov cx,[bp+count] ; get # of bytes
lds si,[bp+src] ; get source pointer
les di,[bp+dest] ; get destination pointer
mov ax,di
mov dx,es ; Prepare return value
shr cx,1 ; count words
rep movsw
jnc $L000 ; jump if no last byte
movsb ; copy last byte
$L000: pop di
pop si
pop ds
pop bp
ret
_dev_memcpy ENDP
_TEXT ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -