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

📄 en_copy.a51

📁 这是TCP/IP协议组播的实现代码
💻 A51
字号:

#include <REG400.H>
;汇编代码
; 在代码段中定义段
?PR?en_copy?LOWLVL SEGMENT CODE

; 输出函数名
PUBLIC en_copy
;这个函数可被连接器放置在任何地方
RSEG ?PR?en_copy?LOWLVL
;*****************************************************************
; Function: _dpread
; Description: 等待定时器0溢出向外部器件表明P1中的数据是有效的如果定时器尚
; 未溢出被写入XDATA的指定地址中
; Parameters: R7 – 存放要等待的时标数
; R4|R5 – 存放要写入的XDATA区地址
; Returns: 读数成功返回1,时间到返回0
; Side Effects: none.
;*****************************************************************
;
; The speaker.a51 tbin NEEDS to go in bank 2
;
TBIN_SPEAKER          equ 41h
TBIN_SPEAKER_SRC      equ 420000h
TBIN_SPEAKER_TARGET   equ 07h
TBIN_SPEAKER_DEST     equ 070000h


TIMED_ACCESS  MACRO
    mov     ta, #0AAh        ; Enable access to ACON
    mov     ta, #055h
    ENDM

    ;
    ; initialize our data pointers
    ;
    ; we will copy the TBIN_SPEAKER
    ; SOURCE = dptr0   TARGET = dptr1
    ;
de_copy:  
    mov     dpx, #TBIN_SPEAKER
    mov     dph, #0
    mov     dpl, #0
    mov     dpx1, #TBIN_SPEAKER_TARGET
    mov     dph1, #0
    mov     dpl1, #0
    lcall   Copy64K    
    ;
    ; Now we need to jump to TBIN_SPEAKER_TARGET
    ;
 
    ljmp    TBIN_SPEAKER_DEST
     
Copy64K:
    ; 
    ; Get the original bank number
    ;
    mov     r0, dpx
    ;
    ; Unroll the loop 8 times
    ;
   
    mov	dps,#030h
    movx    a, @dptr             ; 1
    movx    @dptr, a
    movx    a, @dptr             ; 2
    movx    @dptr, a
    movx    a, @dptr             ; 3
    movx    @dptr, a
    movx    a, @dptr             ; 4
    movx    @dptr, a
    movx    a, @dptr             ; 5
    movx    @dptr, a
    movx    a, @dptr             ; 6
    movx    @dptr, a
    movx    a, @dptr             ; 7
    movx    @dptr, a
    movx    a, @dptr             ; 8
    movx    @dptr, a
   
    movx    a, @dptr             ; 1
    movx    @dptr, a
    movx    a, @dptr             ; 2
    movx    @dptr, a
    movx    a, @dptr             ; 3
    movx    @dptr, a
    movx    a, @dptr             ; 4
    movx    @dptr, a
    movx    a, @dptr             ; 5
    movx    @dptr, a
    movx    a, @dptr             ; 6
    movx    @dptr, a
    movx    a, @dptr             ; 7
    movx    @dptr, a
    movx    a, @dptr             ; 8
    movx    @dptr, a

    ;
    ; see if we rolled into another bank
    ;
    mov     a, dpx
    mov     dps, #0x00
    cjne    a, #TBIN_SPEAKER, copy_exit
    ;
    ; Not rolled over yet...
    ;
    ljmp    Copy64K
    
copy_exit:
    ret
       	 RET
         END

⌨️ 快捷键说明

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