dhlp016.asm

来自「嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络」· 汇编 代码 · 共 78 行

ASM
78
字号
;************************************************************************
;* MODULE INFORMATION*
;**********************
;*     FILE     NAME:       dhlp016.asm
;*     SYSTEM   NAME:       devlib
;*     ORIGINAL AUTHOR(S):  Paul Lemmers
;*     VERSION  NUMBER:     
;*     CREATION DATE:       1990/8/14
;*
;* DESCRIPTION: 
;*              Contains DevHelp VirtToPhys function.
;************************************************************************
;* CHANGES INFORMATION **
;************************
;* REVISION:    $Revision:   1.1  $
;* WORKFILE:    $Workfile:   dhlp016.asm  $
;* LOGINFO:     $Log:   D:/CPROG/MYDEV/DEVLIB/VCS/DHLP016.ASV  $
;*              
;*                 Rev 1.1   17 Dec 1990 14:31:02   PAUL
;*              included devhlp.inc and os2def.h types
;*              
;*                 Rev 1.0   14 Aug 1990 14:36:48   PAUL
;*              Initial revision.
;************************************************************************/
;
	INCLUDE	cdev.inc
	INCLUDE	devhlp.inc


_DATA	SEGMENT
	EXTRN	_DevHelp:DWORD
_DATA	ENDS

_TEXT	SEGMENT
	PUBLIC	_dev_VirtToPhys
;************************************************************************
;* NAME:        dev_VirtToPhys
;* SYNOPSIS:    USHORT dev_VirtToPhys(void far *vptr, PULONG paddr);
;*              void far *vptr        Virtual address
;*              PULONG   *paddr       Pointer to returned physical address
;* DESCRIPTION: See DevHelp documentation of VirtToPhys
;* UNMODIFIED REGISTERS:
;*              ds bp si di
;* RETURNS:     ax = 0 -->   no error
;*              else    error code
;************************************************************************
	vptr  = 4
	paddr = 8
_dev_VirtToPhys	PROC	NEAR
	PUSH	BP
	MOV	BP,SP
	push	si
	push	ds
	mov	ax,ds
	mov	es,ax		; let ES point to data segment

	lds	si,[bp+vptr]
	mov	dl,DevHlp_VirtToPhys
	call	es:[_DevHelp]
	pop	ds
	jc	$L000		; jump if error
	les	si,[bp+paddr]	; get ptr to physical address
	mov	es:[si],bx	; save least sign. part
	add	si,2
	mov	es:[si],ax	; save most sign. part
	xor	ax,ax
	jmp	short $L001
$L000:	mov	ax,0ffffh

$L001:	pop	si		; restore si
	POP	BP
	RET
_dev_VirtToPhys	ENDP

_TEXT	ENDS

	END

⌨️ 快捷键说明

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