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

📄 fifo_wt_gen.asm

📁 USB CDC using C8051F320/340, virtual COM port thru usb connection
💻 ASM
字号:
;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.5.5 #1236 (Apr  6 2006)
; This file generated Tue Jul 18 05:26:43 2006
;--------------------------------------------------------
	.module FIFO_WT_GEN
	.optsdcc -mmcs51 --model-small
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
	.globl _FIFO_Write_generic_PARM_3
	.globl _FIFO_Write_generic_PARM_2
	.globl _FIFO_Write_generic
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
	.area RSEG    (DATA)
_USB0ADR	=	0x0096
_USB0DAT	=	0x0097
;--------------------------------------------------------
; overlayable register banks
;--------------------------------------------------------
	.area REG_BANK_0	(REL,OVR,DATA)
	.ds 8
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
	.area	OSEG    (OVR,DATA)
_FIFO_Write_generic_PARM_2::
	.ds 1
_FIFO_Write_generic_PARM_3::
	.ds 3
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG    (CODE)
;------------------------------------------------------------
; void FIFO_Write_generic( BYTE fifo_adr, BYTE n, BYTE * ptr  )
;
;fifo_adr                  Allocated to registers dpl
;n                         Allocated with name '_FIFO_Write_generic_PARM_2'
;ptr                       Allocated with name '_FIFO_Write_generic_PARM_3'
;------------------------------------------------------------

; memory space code
mem_xdata	=	0x00
mem_idata	=	0x40
mem_pdata	=	0x60
mem_code	=	0x80

_FIFO_Write_generic:
	mov	a,_FIFO_Write_generic_PARM_2
	jz	genret
	mov	r2,a
	mov	a,#0x3F
	anl	a,dpl
	mov	_USB0ADR,a

	mov	a,(_FIFO_Write_generic_PARM_3 + 2)	; memory type
type_idata:
	mov	r0,_FIFO_Write_generic_PARM_3
	cjne a,#mem_idata,type_pdata
idlp1:
	mov	_USB0DAT,@r0
	inc	r0
idlp2:
	mov	a,_USB0ADR
	jb	acc.7,idlp2
	djnz	r2,idlp1
	ret

type_pdata:
	cjne a,#mem_pdata,type_xdata
;	mov	r0,_FIFO_Write_generic_PARM_3
pdlp1:
	movx	a,@r0
	mov	_USB0DAT,a
	inc	r0
pdlp2:
	mov	a,_USB0ADR
	jb	acc.7,pdlp2
	djnz	r2,pdlp1
	ret

type_xdata:
	mov	dpl,_FIFO_Write_generic_PARM_3
	mov	dph,(_FIFO_Write_generic_PARM_3 + 1)
	cjne a,#mem_xdata,type_code
xdlp1:
	movx	a,@dptr
	mov	_USB0DAT,a
	inc	dptr
xdlp2:
	mov	a,_USB0ADR
	jb	acc.7,xdlp2
	djnz	r2,xdlp1
	ret

type_code:
	cjne a,#mem_code,genret
;	mov	dpl,_FIFO_Write_code_PARM_3
;	mov	dph,(_FIFO_Write_code_PARM_3 + 1)
cdlp1:
	clr	a
	movc	a,@a+dptr
	mov	_USB0DAT,a
	inc	dptr
cdlp2:
	mov	a,_USB0ADR
	jb	acc.7,cdlp2
	djnz	r2,cdlp1

genret:
	ret

⌨️ 快捷键说明

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