📄 led.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\TIC2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx led.c C:\WINDOWS\TEMP\led.if
; dspopt NOT RUN
; C:\TIC2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\led.if C:\WINDOWS\TEMP\led.asm C:\WINDOWS\TEMP\led.tmp
.port
.file "led.c"
.globl _port40
.globl _LEDTest
.globl _delay
.globl _LEDflash
.text
.sym _LEDTest,_LEDTest,32,2,0
.globl _LEDTest
.func 8
;>>>> void LEDTest(unsigned int count)
******************************************************
* FUNCTION DEF : _LEDTest
******************************************************
_LEDTest:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+,AR2
.sym _count,-3+LF1,14,9,16
.sym _i,1,12,1,16
.sym _t,2,12,1,16
.line 2
;>>>> unsigned char i,t;
.line 4
;>>>> for(;count!=0;count--)
LARK AR2,-3+LF1
MAR *0+
LAC *
BZ L2
ADRK 5-LF1
L1:
.line 6
;>>>> for(t=0,i=1;t<8;i=i<<1,t++)
LACK 0
SACL *-
LACK 1
SACL *+
ZALS *
SUBK 8
BGEZ L4
MAR *-
L3:
.line 8
;>>>> LED=~i;
LAC * ,AR1
CMPL
SACL *
LAC * ,AR0
SACL *
OUT * ,040h,AR1
.line 9
;>>>> delay(500);
LACK 500
SACL *+
CALL _delay
MAR *-,AR2
.line 6
LARK AR2,1
MAR *0+
LAC * ,1
SACL *+
LAC *
ADDK 1
SACL *
ZALS *-
SUBK 8
BLZ L3
L4:
.line 4
LARK AR2,-3+LF1
MAR *0+
LAC *
SUBK 1
SACL *
LAC *
ADRK 5-LF1
BNZ L1
L2:
.line 12
;>>>> LED=0xffff;
LACK 65535
MAR * ,AR0
SACL *
OUT * ,040h,AR1
EPI0_1:
.line 13
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 20,000000000H,3
.sym _delay,_delay,32,2,0
.globl _delay
.func 23
;>>>> void delay(unsigned int period)
******************************************************
* FUNCTION DEF : _delay
******************************************************
_delay:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+,AR2
.sym _period,-3+LF2,14,9,16
.sym _periodi,1,4,1,16
.sym _periodj,2,4,1,16
.line 2
;>>>> int periodi, periodj;
.line 5
;>>>> for(periodi=0; periodi<period; periodi++)
LACK 0
LARK AR2,1
MAR *0+
SACL *
ZALS *
SBRK 4-LF2
SUBS *
BGEZ L6
ADRK 5-LF2
RSXM ;;;
L5:
.line 7
;>>>> for(periodj=0; periodj<period>>1; periodj++);
LACK 0
SACL *
SBRK 5-LF2
LAC * ,14,AR1
SACH * ,1,AR2
ADRK 5-LF2
ZALS * ,AR1
SUBS *
BGEZ L8
MAR * ,AR2
L7:
LAC *
ADDK 1
SACL *
SBRK 5-LF2
LAC * ,14,AR1
SACH * ,1,AR2
ADRK 5-LF2
ZALS * ,AR1
SUBS * ,AR2
BLZ L7
L8:
.line 5
MAR * ,AR2
MAR *-
LAC *
ADDK 1
SACL *
ZALS *
SBRK 4-LF2
SUBS *
ADRK 5-LF2
BLZ L5
L6:
EPI0_2:
.line 9
MAR * ,AR1
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 31,000000000H,3
.sym _LEDflash,_LEDflash,32,2,0
.globl _LEDflash
.func 33
;>>>> void LEDflash(unsigned int id)
******************************************************
* FUNCTION DEF : _LEDflash
******************************************************
_LEDflash:
LF3 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _id,-3+LF3,14,9,16
.line 2
;>>>> while(1)
L9:
.line 6
;>>>> LED=id;
LARK AR2,-3+LF3
MAR *0+
OUT * ,040h,AR1
.line 7
;>>>> delay(1500);
LACK 1500
SACL *+
CALL _delay
MAR *-,AR0
.line 8
;>>>> LED=0xffff;
LACK 65535
SACL *
OUT * ,040h,AR1
.line 9
;>>>> delay(1500);
LACK 1500
SACL *+
CALL _delay
MAR *-,AR2
.line 10
B L9
.endfunc 43,000000000H,1
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -