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

📄 dcnv001.asm

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 ASM
字号:
;************************************************************************
;* MODULE INFORMATION*
;**********************
;*     FILE     NAME:       dcnv001.asm
;*     SYSTEM   NAME:       devlib
;*     ORIGINAL AUTHOR(S):  Paul Lemmers
;*     VERSION  NUMBER:     
;*     CREATION DATE:       1990/8/14
;*
;* DESCRIPTION: 
;*              Contains itoa, ltoa, ultoa
;************************************************************************
;* CHANGES INFORMATION **
;************************
;* REVISION:    $Revision:   1.1  $
;* WORKFILE:    $Workfile:   dcnv001.asm  $
;* LOGINFO:     $Log:   D:/CPROG/MYDEV/DEVLIB/VCS/DCNV001.ASV  $
;*              
;*                 Rev 1.1   29 Mar 1992 17:05:22   PAUL
;*              Changes for masm 6.00 ??
;*              
;*                 Rev 1.0   14 Aug 1990 14:31:28   PAUL
;*              Initial revision.
;************************************************************************/
;
	INCLUDE	cdev.inc


_TEXT	SEGMENT
	PUBLIC	_dev_itoa, _dev_ltoa, _dev_ultoa
;************************************************************************
;* NAME:        dev_itoa
;* SYNOPSIS:    char far *dev_itoa(int i, char far *dest, int base);
;*              char far *dev_ltoa(long l, char far *dest, int base);
;*              char far *dev_ultoa(unsigned long ul, char far *dest,
;*                                            int base);
;*              long      l;      Long integer to be formatted
;*              unsigned long ul; Unsigned long integer to be formatted
;*              int       i;      Integer to be formatted
;*              char far *dest;   Destination string
;*              int       base;   Base number (hex, dec, oct)
;* DESCRIPTION: See normal itoa(), ltoa() and ultoa().
;* UNMODIFIED REGISTERS:
;*              ds bp si di
;* RETURNS:     dx:ax pointer to dest
;************************************************************************
	i    = 4
	dest = 6
	base = 0Ah
_dev_itoa	PROC	NEAR
        PUSH	BP
        MOV	BP,SP
        PUSH	SI
        PUSH	DI
        MOV	BL,01
        MOV	CX,[BP+base]
        MOV	AX,[BP+i]
        XOR	DX,DX
        CMP	CX,10
        JNZ	$L00a
        CWD 
$L00a:  PUSH	DS
        LDS	DI,[BP+dest]
        JMP	SHORT __cxtoa
_dev_itoa	ENDP

_dev_ltoa	PROC	NEAR
        PUSH	BP
        MOV	BP,SP
        PUSH	SI
        PUSH	DI
        MOV	BL,01
        JMP	SHORT __cltoasu_
_dev_ltoa	ENDP

_dev_ultoa	PROC	NEAR
        PUSH	BP
        MOV	BP,SP
        PUSH	SI
        PUSH	DI
        MOV	BL,00
_dev_ultoa	ENDP

	EVEN
;
;
	long = 4
	dest = 8
	base = 0Ch
__cltoasu_ 	PROC	NEAR
        MOV	CX,[BP+base]
        MOV	AX,[BP+long]
        MOV	DX,[BP+long+2]
        PUSH	DS
        LDS	DI,[BP+dest]
__cxtoa::
        PUSH	DI
        PUSH	DS
        POP	ES
        CLD 
        XCHG	AX,BX
        OR	AL,AL
        JZ	$L000
        CMP	CX,10
        JNZ	$L000
        OR	DX,DX
        JNS	$L000
        MOV	AL,'-'
        STOSB 
        NEG	BX
        ADC	DX,+00
        NEG	DX
$L000:  MOV	SI,DI
$L001:  XCHG	AX,DX
        XOR	DX,DX
        OR	AX,AX
        JZ	$L002
        DIV	CX
$L002:  XCHG	AX,BX
        DIV	CX
        XCHG	AX,DX
        XCHG	DX,BX
        ADD	AL,'0'
        CMP	AL,'9'
        JBE	$L003
        ADD	AL,27h
$L003:  STOSB 
        MOV	AX,DX
        OR	AX,BX
        JNZ	$L001
        MOV	[DI],AL
$L004:  DEC	DI
        LODSB 
        XCHG	AL,[DI]
        MOV	[SI-01],AL
        LEA	AX,[SI+01]
        CMP	AX,DI
        JB	$L004
        MOV	DX,DS
        POP	AX
        POP	DS
        POP	DI
        POP	SI
        MOV	SP,BP
        POP	BP
        RET
__cltoasu_	ENDP

_TEXT	ENDS

	END

⌨️ 快捷键说明

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