📄 main.asm
字号:
;*******************************************************************************
;* TMS320C55x ANSI C Codegen Version 2.00 *
;* Date/Time created: Fri Aug 11 17:44:29 2006 *
;*******************************************************************************
.mmregs
.cpl_on
.arms_on
.asg AR6, FP
.model call=c55_std
.model mem=small
.noremark 5558 ; code avoids SE CPU_33
.noremark 5571 ; code avoids SE CPU_41
.noremark 5572 ; code avoids SE CPU_42
.noremark 5573 ; code avoids SE CPU_43
.noremark 5584 ; code avoids SE CPU_47
.noremark 5002 ; code respects overwrite rules
;******************************************************************************
;* GLOBAL FILE PARAMETERS *
;* *
;* Optimization : Always Choose Smaller Code Size *
;* Memory : Small Model (16-Bit Data Pointers) *
;* Calls : Normal Library ASM calls *
;* Debug Info : Standard TI Debug Information *
;******************************************************************************
.file "main.c"
.sect ".cinit"
.align 1
.field IR_1,16
.field _ConfigLoopBack32+0,24
.field 0,8
.field 16385,16 ; _ConfigLoopBack32._spcr1 @ 0
.field 961,16 ; _ConfigLoopBack32._spcr2 @ 16
.field 7936,16 ; _ConfigLoopBack32._rcr1 @ 32
.field 16,16 ; _ConfigLoopBack32._rcr2 @ 48
.field 7936,16 ; _ConfigLoopBack32._xcr1 @ 64
.field 16,16 ; _ConfigLoopBack32._xcr2 @ 80
.field 319,16 ; _ConfigLoopBack32._srgr1 @ 96
.field 12543,16 ; _ConfigLoopBack32._srgr2 @ 112
.field 1,16 ; _ConfigLoopBack32._mcr1 @ 128
.field 1,16 ; _ConfigLoopBack32._mcr2 @ 144
.field 3584,16 ; _ConfigLoopBack32._pcr @ 160
.field 1,16 ; _ConfigLoopBack32._rcera @ 176
.field 0,16 ; _ConfigLoopBack32._rcerb @ 192
.field 0,16 ; _ConfigLoopBack32._rcerc @ 208
.field 0,16 ; _ConfigLoopBack32._rcerd @ 224
.field 0,16 ; _ConfigLoopBack32._rcere @ 240
.field 0,16 ; _ConfigLoopBack32._rcerf @ 256
.field 0,16 ; _ConfigLoopBack32._rcerg @ 272
.field 0,16 ; _ConfigLoopBack32._rcerh @ 288
.field 1,16 ; _ConfigLoopBack32._xcera @ 304
.field 0,16 ; _ConfigLoopBack32._xcerb @ 320
.field 0,16 ; _ConfigLoopBack32._xcerc @ 336
.field 0,16 ; _ConfigLoopBack32._xcerd @ 352
.field 0,16 ; _ConfigLoopBack32._xcere @ 368
.field 0,16 ; _ConfigLoopBack32._xcerf @ 384
.field 0,16 ; _ConfigLoopBack32._xcerg @ 400
.field 0,16 ; _ConfigLoopBack32._xcerh @ 416
IR_1: .set 27
.sect ".text"
.global _ConfigLoopBack32
.bss _ConfigLoopBack32,27,0,0
.sym _ConfigLoopBack32,_ConfigLoopBack32, 8, 2, 432, $$fake1
.global _mhMcbsp
.bss _mhMcbsp,1,0,0
.sym _mhMcbsp,_mhMcbsp, 24, 2, 16, $$fake0
.global _rcv
.bss _rcv,256,0,0
.sym _rcv,_rcv, 52, 2, 4096,, 256
.global _xmt
.bss _xmt,256,0,0
.sym _xmt,_xmt, 52, 2, 4096,, 256
.sect ".cinit"
.align 1
.field 1,16
.field _XfrCnt+0,24
.field 0,8
.field 0,16 ; _XfrCnt @ 0
.sect ".text"
.global _XfrCnt
.bss _XfrCnt,1,0,0
.sym _XfrCnt,_XfrCnt, 14, 2, 16
.sect ".cinit"
.align 1
.field 1,16
.field _err+0,24
.field 0,8
.field 0,16 ; _err @ 0
.sect ".text"
.global _err
.bss _err,1,0,0
.sym _err,_err, 14, 2, 16
.global _old_intm
.bss _old_intm,1,0,0
.sym _old_intm,_old_intm, 14, 2, 16
.global _rcvEventId
.bss _rcvEventId,1,0,0
.sym _rcvEventId,_rcvEventId, 14, 2, 16
.global _xmtEventId
.bss _xmtEventId,1,0,0
.sym _xmtEventId,_xmtEventId, 14, 2, 16
; d:\program files\ti\c5500\cgtools\bin\opt55.exe -O3 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI996_2 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI996_5 -w d:/program files/ti/myprojects/mcbsp1/Debug
.sect ".text"
.global _writeIsr
.sym _writeIsr,_writeIsr, 32, 2, 0
.func 226
;******************************************************************************
;* INTERRUPT NAME: _writeIsr *
;* *
;* Function Uses Regs : AC0,T0,T1,T2,T3,AR1,AR2,AR3,AR5,CARRY,TC1,M40,SATA, *
;* SATD,FRCT,SMUL *
;* Save On Entry Regs : AC0,AC0_H,AC0_G,AC1,AC1_H,AC1_G,AC2,AC2_H,AC2_G,AC3,*
;* AC3_H,AC3_G,T0,T1,T2,T3,AR0,AR1,AR2,AR3,AR4,AR5,AR6,*
;* AR7,ST3,BRC0,RSA0,RSA0_H,REA0,REA0_H,BRS1,BRC1,RSA1,*
;* RSA1_H,REA1,REA1_H,CSR,RPTC,CDP,TRN0,TRN1,BSA01, *
;* BSA23,BSA45,BSA67,BSAC *
;******************************************************************************
_writeIsr:
.line 2
;* T0 assigned to _old_intm
.sym _old_intm,12, 4, 4, 16
;* T3 assigned to _mask
.sym _mask,15, 14, 4, 16
;* T3 assigned to _value
.sym _value,15, 14, 4, 16
;* AR1 assigned to _prev
.sym _prev,18, 14, 4, 16
;* AR5 assigned to _reg
.sym _reg,26, 14, 4, 16
;* T2 assigned to _EventId
.sym _EventId,14, 14, 4, 16
;* AR1 assigned to _Val
.sym _Val,18, 14, 4, 16
;* AR3 assigned to __MCBSP
.sym __MCBSP,22, 24, 4, 16, $$fake0
;* T0 assigned to _old_intm
.sym _old_intm,12, 4, 4, 16
;* T3 assigned to _mask
.sym _mask,15, 14, 4, 16
;* AR5 assigned to _reg
.sym _reg,26, 14, 4, 16
;* T2 assigned to _EventId
.sym _EventId,14, 14, 4, 16
dbl(push(AC0))
push(@AC0_G)
|| mmap()
dbl(push(AC1))
push(@AC1_G)
|| mmap()
dbl(push(AC2))
push(@AC2_G)
|| mmap()
dbl(push(AC3))
push(@AC3_G)
|| mmap()
push(T1,T0)
push(T3,T2)
push(AR1,AR0)
push(AR3,AR2)
push(AR5,AR4)
push(AR7,AR6)
push(@ST3_L)
|| mmap()
push(@BRC0_L)
|| mmap()
push(@RSA0_L)
|| mmap()
push(@RSA0_H)
|| mmap()
push(@REA0_L)
|| mmap()
push(@REA0_H)
|| mmap()
push(@BRS1_L)
|| mmap()
push(@BRC1_L)
|| mmap()
push(@RSA1_L)
|| mmap()
push(@RSA1_H)
|| mmap()
push(@REA1_L)
|| mmap()
push(@REA1_H)
|| mmap()
push(@CSR_L)
|| mmap()
push(@RPTC_L)
|| mmap()
push(@CDP_L)
|| mmap()
push(@TRN0_L)
|| mmap()
push(@TRN1_L)
|| mmap()
push(@BSA01_L)
|| mmap()
push(@BSA23_L)
|| mmap()
push(@BSA45_L)
|| mmap()
push(@BSA67_L)
|| mmap()
push(@BSAC_L)
|| mmap()
AR1 = SP
@SP_L = @SP_L & #0xfffe
|| mmap()
push(AR1)
@ST2_L = @ST2_L & #0xfa00
|| mmap()
@ST1_L = @ST1_L & #0xf91f
|| mmap()
SP = SP + #-1
@ST2_L = @ST2_L | #0x8000
|| mmap()
@ST3_L = @ST3_L & #0xffdd
|| mmap()
@ST1_L = @ST1_L | #0x4100
|| mmap()
.line 9
T2 = *abs16(#_xmtEventId)
AC0 = T2
AR5 = field_extract(AC0, #0x0010) ; |238|
T1 = T2 & #0x000f ; |239|
AC0 = #1 ; |239|
AC0 = AC0 << T1 ; |239|
T3 = AC0 ; |239|
call #_IRQ_globalDisable ; |240|
; call occurs [#_IRQ_globalDisable] ; |240|
TC1 = bit(T2,@#4) ; |241|
if (!TC1) execute (D_Unit) ||
AR3 = #0 ; |241|
if (!TC1) execute (D_Unit) ||
AR1 = *AR3
if (TC1) execute (D_Unit) ||
AR3 = #69 ; |241|
if (TC1) execute (D_Unit) ||
AR1 = *AR3
if (AR5 != #0) goto L1 ; |243|
; branch occurs ; |243|
AR3 = #0 ; |246|
AR1 = ~T3 ; |246|
AR1 = AR1 & *AR3 ; |246|
*AR3 = AR1 ; |246|
goto L2 ; |246|
; branch occurs ; |246|
L1:
AR3 = #69 ; |244|
AR1 = ~T3 ; |244|
AR1 = AR1 & *AR3 ; |244|
*AR3 = AR1 ; |244|
L2:
call #_IRQ_globalRestore ; |247|
; call occurs [#_IRQ_globalRestore] ; |247|
.line 10
T0 = #(_rcv & 0xffff) ; |235|
AR2 = *abs16(#_XfrCnt) ; |235|
AR3 = *abs16(#_mhMcbsp)
AR1 = #256 ; |235|
AR1 = AR1 + *AR2(T0)
AR3 = *AR3(short(#3))
*AR3 = AR1 ; |1385|
|| writeport()
.line 11
T2 = *abs16(#_xmtEventId)
AC0 = T2
AR5 = field_extract(AC0, #0x0010) ; |202|
T1 = T2 & #0x000f ; |203|
AC0 = #1 ; |203|
AC0 = AC0 << T1 ; |203|
T3 = AC0 ; |203|
call #_IRQ_globalDisable ; |204|
; call occurs [#_IRQ_globalDisable] ; |204|
TC1 = bit(T2,@#4) ; |205|
if (!TC1) execute (D_Unit) ||
AR3 = #0 ; |205|
if (!TC1) execute (D_Unit) ||
AR1 = *AR3
if (TC1) execute (D_Unit) ||
AR3 = #69 ; |205|
if (TC1) execute (D_Unit) ||
AR1 = *AR3
T3 = T3 | AR1 ; |207|
if (AR5 == #0) execute (D_Unit) ||
AR3 = #0 ; |211|
if (AR5 == #0) execute (AD_Unit) ||
*AR3 = T3 ; |211|
if (AR5 != #0) execute (D_Unit) ||
AR3 = #69 ; |209|
if (AR5 != #0) execute (AD_Unit) ||
*AR3 = T3 ; |209|
call #_IRQ_globalRestore ; |212|
; call occurs [#_IRQ_globalRestore] ; |212|
.line 12
SP = SP + #1
@SP_L = pop()
|| mmap()
@BSAC_L = pop()
|| mmap()
@BSA67_L = pop()
|| mmap()
@BSA45_L = pop()
|| mmap()
@BSA23_L = pop()
|| mmap()
@BSA01_L = pop()
|| mmap()
@TRN1_L = pop()
|| mmap()
@TRN0_L = pop()
|| mmap()
@CDP_L = pop()
|| mmap()
@RPTC_L = pop()
|| mmap()
@CSR_L = pop()
|| mmap()
@REA1_H = pop()
|| mmap()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -