📄 fifo_rd_gen.asm
字号:
;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.5.5 #1236 (Apr 6 2006)
; This file generated Tue Jul 18 06:44:16 2006
;--------------------------------------------------------
.module FIFO_RD_GEN
.optsdcc -mmcs51 --model-small
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
.globl _FIFO_Read_generic_PARM_3
.globl _FIFO_Read_generic_PARM_2
.globl _FIFO_Read_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_Read_generic_PARM_2::
.ds 1
_FIFO_Read_generic_PARM_3::
.ds 3
;--------------------------------------------------------
; code
;--------------------------------------------------------
.area CSEG (CODE)
;------------------------------------------------------------
; void FIFO_Read_generic( BYTE fifo_adr, BYTE n, BYTE * ptr )
;fifo_adr Allocated to registers dpl
;n Allocated with name '_FIFO_Read_generic_PARM_2'
;ptr Allocated with name '_FIFO_Read_generic_PARM_3'
;------------------------------------------------------------
; memory space code
mem_xdata = 0x00
mem_idata = 0x40
mem_pdata = 0x60
mem_code = 0x80
_FIFO_Read_generic:
mov a,_FIFO_Read_generic_PARM_2
jz genret
mov r4,a
mov r2,dpl
mov a,(_FIFO_Write_generic_PARM_3 + 2) ; memory type
type_idata:
mov r0,_FIFO_Read_generic_PARM_3
cjne a,#mem_idata,type_pdata
djnz r2,idmult
mov a,#0x80
orl a,dpl
mov _USB0ADR,a
sjmp idlp2
idmult:
mov a,#0xC0
orl a,dpl
mov _USB0ADR,a
idlp1:
mov a,_USB0ADR
jb acc.7,idlp1
mov @r0,_USB0DAT
inc r0
djnz r2,idlp1
idlp2:
mov a,_USB0ADR
jb acc.7,idlp2
mov _USB0ADR,#0x00
mov @r0,_USB0DAT
genret:
ret
type_pdata:
cjne a,#mem_pdata,type_xdata
; mov r0,_FIFO_Read_generic_PARM_3
djnz r2,pdmult
mov a,#0x80
orl a,dpl
mov _USB0ADR,a
sjmp pdlp2
pdmult:
mov a,#0xC0
orl a,dpl
mov _USB0ADR,a
pdlp1:
mov a,_USB0ADR
jb acc.7,pdlp1
mov a,_USB0DAT
movx @r0,a
inc r0
djnz r2,pdlp1
pdlp2:
mov a,_USB0ADR
jb acc.7,pdlp2
mov _USB0ADR,#0x00
mov a,_USB0DAT
movx @r0,a
ret
type_xdata:
cjne a,#mem_xdata,xdret
mov dpl,_FIFO_Read_generic_PARM_3
mov dph,(_FIFO_Read_generic_PARM_3 + 1)
djnz r4,xdmult
mov a,#0x80
orl a,r2
mov _USB0ADR,a
sjmp xdlp2
xdmult:
mov a,#0xC0
orl a,r2
mov _USB0ADR,a
xdlp1:
mov a,_USB0ADR
jb acc.7,xdlp1
mov a,_USB0DAT
movx @dptr,a
inc dptr
djnz r4,xdlp1
xdlp2:
mov a,_USB0ADR
jb acc.7,xdlp2
mov _USB0ADR,#0x00
mov a,_USB0DAT
movx @dptr,a
xdret:
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -