📄 blkwrite.asm
字号:
********************************************************************************
* Function: PFUNC_blkWrite() *
* File: blkWrite.asm *
* Author: David M. Alter, Texas Instruments Inc. *
* DSP: TMS320C24x *
* Language: TMS320C24x assembly (C-callable) *
* Description: Copies a block of words from data space to program space. *
* Function Prototype: *
* extern void PFUNC_blkWrite(int *, int *, unsigned int); *
* Useage: PFUNC_blkWrite(addrProg, ptrData, length); *
* Passed Parameters: *
* int *addrProg = address of program space block *
* int *ptrData = pointer to data space block *
* unsigned int length = length of block *
* Return Value: none *
* Notes: none *
* History: *
* 04/04/02 - original (D. Alter) *
********************************************************************************
**************************************************************
; THIS PROGRAM IS PROVIDED "AS IS". TI MAKES NO WARRANTIES OR
; REPRESENTATIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
; INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
; FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
; COMPLETENESS OF RESPONSES, RESULTS AND LACK OF NEGLIGENCE.
; TI DISCLAIMS ANY WARRANTY OF TITLE, QUIET ENJOYMENT, QUIET
; POSSESSION, AND NON-INFRINGEMENT OF ANY THIRD PARTY
; INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE PROGRAM OR
; YOUR USE OF THE PROGRAM.
;
; IN NO EVENT SHALL TI BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
; CONSEQUENTIAL OR INDIRECT DAMAGES, HOWEVER CAUSED, ON ANY
; THEORY OF LIABILITY AND WHETHER OR NOT TI HAS BEEN ADVISED
; OF THE POSSIBILITY OF SUCH DAMAGES, ARISING IN ANY WAY OUT
; OF THIS AGREEMENT, THE PROGRAM, OR YOUR USE OF THE PROGRAM.
; EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO, COST OF
; REMOVAL OR REINSTALLATION, COMPUTER TIME, LABOR COSTS, LOSS
; OF GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF
; USE OR INTERRUPTION OF BUSINESS. IN NO EVENT WILL TI'S
; AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF
; YOUR USE OF THE PROGRAM EXCEED FIVE HUNDRED DOLLARS
; (U.S.$500).
;
; Unless otherwise stated, the Program written and copyrighted
; by Texas Instruments is distributed as "freeware". You may,
; only under TI's copyright in the Program, use and modify the
; Program without any charge or restriction. You may
; distribute to third parties, provided that you transfer a
; copy of this license to the third party and the third party
; agrees to these terms by its first use of the Program. You
; must reproduce the copyright notice and any other legend of
; ownership on each copy or partial copy, of the Program.
;
; You acknowledge and agree that the Program contains
; copyrighted material, trade secrets and other TI proprietary
; information and is protected by copyright laws,
; international copyright treaties, and trade secret laws, as
; well as other intellectual property laws. To protect TI's
; rights in the Program, you agree not to decompile, reverse
; engineer, disassemble or otherwise translate any object code
; versions of the Program to a human-readable form. You agree
; that in no event will you alter, remove or destroy any
; copyright notice included in the Program. TI reserves all
; rights not specifically granted under this license. Except
; as specifically provided herein, nothing in this agreement
; shall be construed as conferring by implication, estoppel,
; or otherwise, upon you, any license or other right under any
; TI patents, copyrights or trade secrets.
;
; You may not use the Program in non-TI devices.
**************************************************************
.def _PFUNC_blkWrite
.asg AR1, SP
.text
_PFUNC_blkWrite:
POPD *+ ;pop return address off HW stack and push onto SW stack
SAR SP, * ;save SP to stack
LAR AR2, *, AR2 ;make a copy of the stack pointer in AR2
SBRK #2 ;AR2 now points to 1st passed parameter
LACC *- ;load 1st passed parameter into ACC
LAR AR3, *- ;load 2nd passed parameter into AR3
LAR AR4, *, AR4 ;load 3rd passed parameter into AR4
SBRK #1 ;AR4 = (length - 1)
MAR *, AR2 ;ARP=AR2
SAR AR4, * ;put length-1 back onto the stack
RPT *, AR3 ;repeat length-1 times
TBLW *+ ;write character to program space
MAR *, SP ;ARP=SP
MAR *- ;decrement SP
PSHD * ;push return address back onto the HW stack
RET ;return
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -