📄 dstr001.asm
字号:
;************************************************************************
;* MODULE INFORMATION*
;**********************
;* FILE NAME: dstr001.asm
;* SYSTEM NAME: devlib
;* ORIGINAL AUTHOR(S): Paul Lemmers
;* VERSION NUMBER:
;* CREATION DATE: 1990/8/14
;*
;* DESCRIPTION: Contains dev_strlen
;*
;************************************************************************
;* CHANGES INFORMATION **
;************************
;* REVISION: $Revision: 1.1 $
;* WORKFILE: $Workfile: dstr001.asm $
;* LOGINFO: $Log: D:/CPROG/MYDEV/DEVLIB/VCS/DSTR001.ASV $
;*
;* Rev 1.1 17 Dec 1990 14:34:58 PAUL
;* os2def.h changes
;*
;* Rev 1.0 14 Aug 1990 14:40:24 PAUL
;* Initial revision.
;************************************************************************/
;
INCLUDE cdev.inc
_TEXT SEGMENT
;************************************************************************
;* NAME: dev_strlen
;* SYNOPSIS: unsigned dev_strlen(char far *ptr);
;* char far *ptr
;* DESCRIPTION: See C-runtime strlen()
;* UNMODIFIED REGISTERS:
;* ds bp si di
;* RETURNS: See C-runtime strlen
;************************************************************************
PUBLIC _dev_strlen
cptr = 4
_dev_strlen PROC NEAR
push bp
mov bp,sp
mov dx,di
les di,[bp+cptr] ; get ptr to string
mov cx,0FFFFh
xor ax,ax ; search for '\0'
repne scasb
not cx ; We have to return in ax
dec cx
mov ax,cx ; # of nonzero bytes
mov di,dx
pop bp
ret
_dev_strlen ENDP
_TEXT ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -