mirror of https://github.com/nmlgc/ReC98.git
[Reduction] #223-224: memmove
This commit is contained in:
parent
f3e9147459
commit
5a05e580e5
|
@ -0,0 +1,92 @@
|
|||
; void __cdecl movmem(const void *src, void *dst, unsigned int len)
|
||||
_movmem proc DIST
|
||||
@@src = DPTR_ 2 + dPtrSize
|
||||
@@dst = DPTR_ 2 + (dPtrSize * 2)
|
||||
@@len = word ptr 2 + (dPtrSize * 3)
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
ifndef __HUGE
|
||||
push ds
|
||||
endif
|
||||
mov cx, word ptr [bp+@@dst+2]
|
||||
mov bx, word ptr [bp+@@dst]
|
||||
mov dx, word ptr [bp+@@src+2]
|
||||
mov ax, word ptr [bp+@@src]
|
||||
call N_PCMP@
|
||||
jnb short @@forward
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short @@prepare
|
||||
|
||||
@@forward:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
@@prepare:
|
||||
LDS_ si, [bp+@@src]
|
||||
LES_ di, [bp+@@dst]
|
||||
mov cx, [bp+@@len]
|
||||
or ax, ax
|
||||
jz short @@movit
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
@@movit:
|
||||
test di, 1
|
||||
jz short @@isAligned
|
||||
jcxz short @@done
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
@@isAligned:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short @@noOdd
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
@@noOdd:
|
||||
@@done:
|
||||
cld
|
||||
if LDATA
|
||||
pop ds
|
||||
endif
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
ret
|
||||
_movmem endp
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
public _memmove
|
||||
_memmove proc DIST
|
||||
@@dst = DPTR_ 2 + dPtrSize
|
||||
@@src = DPTR_ 2 + (dPtrSize * 2)
|
||||
@@len = word ptr 2 + (dPtrSize * 3)
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+@@len]
|
||||
push word ptr [bp+@@dst+2]
|
||||
push word ptr [bp+@@dst]
|
||||
push word ptr [bp+@@src+2]
|
||||
push word ptr [bp+@@src]
|
||||
call _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+@@dst+2]
|
||||
mov ax, word ptr [bp+@@dst]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
ret
|
||||
_memmove endp
|
102
th01_fuuin.asm
102
th01_fuuin.asm
|
@ -8807,107 +8807,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
_src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+_src+2]
|
||||
mov ax, word ptr [bp+_src]
|
||||
call N_PCMP@
|
||||
jnb short loc_4991
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_4994
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4991:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_4994:
|
||||
lds si, [bp+_src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_49A7
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_49A7:
|
||||
test di, 1
|
||||
jz short loc_49B1
|
||||
jcxz short loc_49C0
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_49B1:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_49C0
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_49C0:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
_src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+_src+2]
|
||||
push word ptr [bp+_src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th01_op.asm
102
th01_op.asm
|
@ -8686,107 +8686,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_4C73
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_4C76
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4C73:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_4C76:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_4C89
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_4C89:
|
||||
test di, 1
|
||||
jz short loc_4C93
|
||||
jcxz short loc_4CA2
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_4C93:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_4CA2
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_4CA2:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th01_reiiden.asm
102
th01_reiiden.asm
|
@ -12391,107 +12391,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
_src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+_src+2]
|
||||
mov ax, word ptr [bp+_src]
|
||||
call N_PCMP@
|
||||
jnb short loc_5FE9
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_5FEC
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5FE9:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_5FEC:
|
||||
lds si, [bp+_src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_5FFF
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_5FFF:
|
||||
test di, 1
|
||||
jz short loc_6009
|
||||
jcxz short loc_6018
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_6009:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_6018
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_6018:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
_src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+_src+2]
|
||||
push word ptr [bp+_src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th02_main.asm
102
th02_main.asm
|
@ -9271,107 +9271,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_67B6
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_67B9
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_67B6:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_67B9:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_67CC
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_67CC:
|
||||
test di, 1
|
||||
jz short loc_67D6
|
||||
jcxz short loc_67E5
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_67D6:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_67E5
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_67E5:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th02_maine.asm
102
th02_maine.asm
|
@ -5231,107 +5231,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_4BB6
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_4BB9
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4BB6:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_4BB9:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_4BCC
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_4BCC:
|
||||
test di, 1
|
||||
jz short loc_4BD6
|
||||
jcxz short loc_4BE5
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_4BD6:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_4BE5
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_4BE5:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th02_op.asm
102
th02_op.asm
|
@ -5314,107 +5314,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_5203
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_5206
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5203:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_5206:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_5219
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_5219:
|
||||
test di, 1
|
||||
jz short loc_5223
|
||||
jcxz short loc_5232
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_5223:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_5232
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_5232:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
103
th03_main.asm
103
th03_main.asm
|
@ -5560,108 +5560,7 @@ sub_4C4C endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_4D38
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_4D3B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4D38:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_4D3B:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_4D4E
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_4D4E:
|
||||
test di, 1
|
||||
jz short loc_4D58
|
||||
jcxz short loc_4D67
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_4D58:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_4D67
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_4D67:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
; sub_1D189+138P
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th03_mainl.asm
102
th03_mainl.asm
|
@ -4774,107 +4774,7 @@ sub_4B43 endp ; sp-analysis failed
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_4C06
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_4C09
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4C06:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_4C09:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_4C1C
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_4C1C:
|
||||
test di, 1
|
||||
jz short loc_4C26
|
||||
jcxz short loc_4C35
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_4C26:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_4C35
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_4C35:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th03_op.asm
102
th03_op.asm
|
@ -5193,107 +5193,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_4EE8
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_4EEB
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4EE8:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_4EEB:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_4EFE
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_4EFE:
|
||||
test di, 1
|
||||
jz short loc_4F08
|
||||
jcxz short loc_4F17
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_4F08:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_4F17
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_4F17:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th04_main.asm
102
th04_main.asm
|
@ -7803,107 +7803,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_6144
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_6147
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6144:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_6147:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_615A
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_615A:
|
||||
test di, 1
|
||||
jz short loc_6164
|
||||
jcxz short loc_6173
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_6164:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_6173
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_6173:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th04_maine.asm
102
th04_maine.asm
|
@ -4686,107 +4686,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_56AC
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_56AF
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_56AC:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_56AF:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_56C2
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_56C2:
|
||||
test di, 1
|
||||
jz short loc_56CC
|
||||
jcxz short loc_56DB
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_56CC:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_56DB
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_56DB:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th04_op.asm
102
th04_op.asm
|
@ -5299,107 +5299,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length= word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_5D6C
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_5D6F
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5D6C:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_5D6F:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_5D82
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_5D82:
|
||||
test di, 1
|
||||
jz short loc_5D8C
|
||||
jcxz short loc_5D9B
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_5D8C:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_5D9B
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_5D9B:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th05_main.asm
102
th05_main.asm
|
@ -8189,107 +8189,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_6470
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_6473
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6470:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_6473:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_6486
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_6486:
|
||||
test di, 1
|
||||
jz short loc_6490
|
||||
jcxz short loc_649F
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_6490:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_649F
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_649F:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th05_maine.asm
102
th05_maine.asm
|
@ -5465,107 +5465,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_5B98
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_5B9B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5B98:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_5B9B:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_5BAE
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_5BAE:
|
||||
test di, 1
|
||||
jz short loc_5BB8
|
||||
jcxz short loc_5BC7
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_5BB8:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_5BC7
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_5BC7:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
102
th05_op.asm
102
th05_op.asm
|
@ -4981,107 +4981,7 @@ _getenv endp
|
|||
include libs/BorlandC/memcmp.asm
|
||||
include libs/BorlandC/memcpy.asm
|
||||
include libs/BorlandC/memset.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void __cdecl movmem(const void *src, void *dest, unsigned int length)
|
||||
_movmem proc far
|
||||
|
||||
src = dword ptr 6
|
||||
dest = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov cx, word ptr [bp+dest+2]
|
||||
mov bx, word ptr [bp+dest]
|
||||
mov dx, word ptr [bp+src+2]
|
||||
mov ax, word ptr [bp+src]
|
||||
call N_PCMP@
|
||||
jnb short loc_59BC
|
||||
std
|
||||
mov ax, 1
|
||||
jmp short loc_59BF
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_59BC:
|
||||
cld
|
||||
xor ax, ax
|
||||
|
||||
loc_59BF:
|
||||
lds si, [bp+src]
|
||||
les di, [bp+dest]
|
||||
mov cx, [bp+_length]
|
||||
or ax, ax
|
||||
jz short loc_59D2
|
||||
add si, cx
|
||||
dec si
|
||||
add di, cx
|
||||
dec di
|
||||
|
||||
loc_59D2:
|
||||
test di, 1
|
||||
jz short loc_59DC
|
||||
jcxz short loc_59EB
|
||||
movsb
|
||||
dec cx
|
||||
|
||||
loc_59DC:
|
||||
sub si, ax
|
||||
sub di, ax
|
||||
shr cx, 1
|
||||
rep movsw
|
||||
jnb short loc_59EB
|
||||
add si, ax
|
||||
add di, ax
|
||||
movsb
|
||||
|
||||
loc_59EB:
|
||||
cld
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_movmem endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; void *__cdecl memmove(void *dest, const void *src, size_t n)
|
||||
_memmove proc far
|
||||
|
||||
dest = dword ptr 6
|
||||
src = dword ptr 0Ah
|
||||
_length = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
push [bp+_length] ; length
|
||||
push word ptr [bp+dest+2]
|
||||
push word ptr [bp+dest] ; dest
|
||||
push word ptr [bp+src+2]
|
||||
push word ptr [bp+src] ; src
|
||||
push cs
|
||||
call near ptr _movmem
|
||||
add sp, 0Ah
|
||||
mov dx, word ptr [bp+dest+2]
|
||||
mov ax, word ptr [bp+dest]
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_memmove endp
|
||||
|
||||
include libs/BorlandC/movmem.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
|
Loading…
Reference in New Issue