⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dstr002.asm

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 ASM
字号:
;************************************************************************
;* MODULE INFORMATION*
;**********************
;*     FILE     NAME:       dstr002.asm
;*     SYSTEM   NAME:       devlib
;*     ORIGINAL AUTHOR(S):  Paul Lemmers
;*     VERSION  NUMBER:     
;*     CREATION DATE:       1990/8/14
;*
;* DESCRIPTION: Contains dev_strcmp
;*              
;************************************************************************
;* CHANGES INFORMATION **
;************************
;* REVISION:    $Revision:   1.1  $
;* WORKFILE:    $Workfile:   dstr002.asm  $
;* LOGINFO:     $Log:   D:/CPROG/MYDEV/DEVLIB/VCS/DSTR002.ASV  $
;*              
;*                 Rev 1.1   17 Dec 1990 14:35:08   PAUL
;*              os2def.h changes
;*              
;*                 Rev 1.0   14 Aug 1990 14:40:38   PAUL
;*              Initial revision.
;************************************************************************/
;
	INCLUDE	cdev.inc


_TEXT	SEGMENT
;************************************************************************
;* NAME:        dev_strcmp
;* SYNOPSIS:    int dev_strcmp(char far *p1, char far *p2);
;*              char far *p1
;*              char far *p2
;* DESCRIPTION: see C-runtime strcmp
;* UNMODIFIED REGISTERS:
;*              ds bp si di
;* RETURNS:     see C-runtime strcmp
;* TIMING:
;*         This implementation (scasb ; cmpsb) is  O( 17*N ),
;*         an implementation with two load and two compare instructions
;*         is O( 24*N ). Where N is the (second) string length.
;************************************************************************
	PUBLIC	_dev_strcmp
	p1 = 4
	p2 = 8
_dev_strcmp PROC	NEAR
	push	bp
	mov	bp,sp
	push	ds
	push	di
	push	si

	lds	si,[bp+p1]
	les	di,[bp+p2]	; get ptr to string
	mov	cx,0FFFFh
	xor	ax,ax		; search for '\0'
	repne scasb
	not	cx		; cx := # nonzero+1
	sub	di,cx		; restore di
	repe cmpsb
	jz	$L001		; jump if cx times done
	sbb	ax,ax		; a: (CY) -> (0FFFFh and CY)
				; b: (NC) -> (0 and NC)
	sbb	ax,0FFFFh	; a: ax := 0FFFFh
				; b: ax := 1
$L001:	pop	si
	pop	di
	pop	ds
	pop	bp
	ret
_dev_strcmp ENDP
_TEXT	ENDS

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -