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

📄 5530rw.asm

📁 X86 GX1 BOOTLOAD代码 ,支持WINCE操作系统!
💻 ASM
字号:
;**************************************************************************
;* 
;*  5530RW.ASM
;* 
;*  Copyright (c) 1999 National Semiconductor Corporation.
;*  All Rights Reserved. 
;* 
;*  Function: 
;*    Register read and write routines for the 5530.
;* 
;*  $Revision:: 1  $
;*
;**************************************************************************

	.486P

	INCLUDE DEF.INC
	INCLUDE MACROS.INC
	INCLUDE PORT80.INC
	INCLUDE 5530.INC

_TEXT SEGMENT PUBLIC use16 'CODE'

	ASSUME CS:SEGGROUP

;**************************************************************************
;*
;*	Cy55x0RegRead32
;*
;*	Entry:
;*	  EAX=80009000h + Func + Reg
;*
;*	Exit:
;*	  EDX=32 bit value read
;*
;*	Destroys:
;*	  EAX,EDX
;*
;**************************************************************************
Cy55x0RegRead32 PROC 
	mov	dx, 0CF8h
	out	dx, eax			; Point to register specified
	mov	dx, 0CFCh
	in	eax, dx			; Read register into EDX
	mov	edx, eax
	jmp	bx
Cy55x0RegRead32 ENDP

;**************************************************************************
;*
;*	Cy55x0RegWrite32
;*
;*	Entry:
;*	  EAX= 80009000h + Func + Reg
;*	  EDX= Value to write	
;*
;*	Exit:
;*
;*	Destroys:
;*	  EAX, ECX, DX
;*
;**************************************************************************
Cy55x0RegWrite32 PROC
	mov	ecx, edx
	mov	dx, 0CF8h
	out	dx, eax			; Point to register
	mov	dx, 0CFCh
	mov	eax, ecx
	out	dx, eax			; Write EDX to register specified
	jmp	bx			; return to calling address
Cy55x0RegWrite32 ENDP

;**************************************************************************
;*
;*	Cy55x0RegRead16
;*
;*	Entry:
;*	  EAX= 80009000h + Func + Reg (Reg must be on word boundary)
;*
;*	Exit:
;*	  DX= 16 bit value read
;*
;*	Destroys:
;*	  EAX, DX
;*
;**************************************************************************
Cy55x0RegRead16 PROC
	mov	dx, 0CF8h
	out	dx, eax			; Point to register specified
	and	eax, 02h
	mov	dx, 0CFCh
	or	dx, ax			; set word address
	in	ax, dx			; Read register into EDX
	mov	dx, ax
	jmp	bx
Cy55x0RegRead16 ENDP

;**************************************************************************
;*
;*	Cy55x0RegWrite16
;*
;*	Entry:
;*	  EAX= 80009000h + Func + Reg
;*	  DX= Value to write	
;*
;*	Exit:
;*
;*	Destroys:
;*	  EAX, CX, DX
;*
;**************************************************************************
Cy55x0RegWrite16 PROC
	mov	cx, dx			; save data
	mov	dx, 0CF8h
	out	dx, eax			; Point to register
	and	eax,02h
	mov	dx, 0CFCh
	or	dx, ax			; set word address
	mov	ax, cx
	out	dx, ax			; Write AX to register specified
	jmp	bx			; return to calling address
Cy55x0RegWrite16 ENDP

;**************************************************************************
;*
;*	Cy55x0RegRead8
;*
;*	Entry:
;*	  EAX=80009000h + Func + Reg
;*
;*	Exit:
;*	  DL=8 bit value read
;*
;*	Destroys:
;*	  EAX, DX
;*
;**************************************************************************
Cy55x0RegRead8 PROC
	mov	dx, 0CF8h
	out	dx, eax			; Point to register specified
	and	eax,03h
	mov	dx, 0CFCh
	or	dx, ax			; set byte address
	in	al, dx			; Read register into al
	mov	dl, al
	jmp	bx
Cy55x0RegRead8 ENDP

;**************************************************************************
;*
;*	Cy55x0RegWrite8
;*
;*	Entry:
;*	  EAX= 80009000h + Func + Reg
;*	  DL= Value to write	
;*
;*	Exit:
;*
;*	Destroys:
;*	  EAX, ECX, DX
;*
;**************************************************************************
Cy55x0RegWrite8 PROC
	mov	ecx, edx		; save data to write
	mov	dx, 0CF8h
	out	dx, eax			; Point to register
	and	eax,03h
	mov	dx, 0CFCh
	or	dx, ax
	mov	al, cl
	out	dx, al			; Write EDX to register specified
	jmp	bx			; return to calling address
Cy55x0RegWrite8 ENDP

_TEXT ENDS

END

⌨️ 快捷键说明

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