📄 menu_sub.asm
字号:
;----------------------------------------------------------------------
; 89 | { i++;
;----------------------------------------------------------------------
ldiu 1,r0 ; |89|
addi *+fp(1),r0 ; |89|
sti r0,*+fp(1) ; |89|
.line 7
;----------------------------------------------------------------------
; 90 | if(i>100)
;----------------------------------------------------------------------
cmpi 100,r0 ; |90|
ble L11 ; |90|
;* Branch Occurs to L11 ; |90|
.line 9
;----------------------------------------------------------------------
; 92 | Lcd_Initial();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |92|
callu r0 ; far call to _Lcd_Initial ; |92|
; |92| Far Call Occurs
L11:
.line 5
ldp @CL4,DP
ldiu @CL4,ar0 ; |88|
ldiu 128,r0 ; |88|
and3 r0,*ar0,r0 ; |88|
cmpi 128,r0 ; |88|
beq L9 ; |88|
;* Branch Occurs to L9 ; |88|
L12:
.line 12
;----------------------------------------------------------------------
; 95 | *(int *)LCD_DATD_RIGHT=data;
;----------------------------------------------------------------------
ldp @CL5,DP
ldiu @CL5,ar0 ; |95|
ldiu *-fp(2),r0 ; |95|
sti r0,*ar0 ; |95|
.line 13
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Unallocate the Frame
subi 3,sp
bu r1
;* Branch Occurs to r1
.endfunc 96,000000000h,1
.sect ".text"
.global _Lcd_Write_Com_Left
.sym _Lcd_Write_Com_Left,_Lcd_Write_Com_Left,32,2,0
.func 101
;******************************************************************************
;* FUNCTION NAME: _Lcd_Write_Com_Left *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,ar0,st *
;* Regs Saved : *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 1 Parm + 1 Auto + 0 SOE = 4 words *
;******************************************************************************
_Lcd_Write_Com_Left:
.sym _command,-2,4,9,32
.sym _i,1,4,1,32
.line 1
;----------------------------------------------------------------------
; 101 | void Lcd_Write_Com_Left(int command)
;----------------------------------------------------------------------
push fp
ldiu sp,fp
addi 1,sp
.line 2
.line 3
;----------------------------------------------------------------------
; 103 | int i = 0;
;----------------------------------------------------------------------
ldiu 0,r0 ; |103|
sti r0,*+fp(1) ; |103|
.line 4
;----------------------------------------------------------------------
; 104 | while ((*(int *)LCD_COMMAND_LEFT&0x80) == 0x80)
;----------------------------------------------------------------------
ldp @CL1,DP
ldiu @CL1,ar0 ; |104|
ldiu 128,r0 ; |104|
and3 r0,*ar0,r0 ; |104|
cmpi 128,r0 ; |104|
bne L19 ; |104|
;* Branch Occurs to L19 ; |104|
L16:
.line 6
;----------------------------------------------------------------------
; 106 | i++;
;----------------------------------------------------------------------
ldiu 1,r0 ; |106|
addi *+fp(1),r0 ; |106|
sti r0,*+fp(1) ; |106|
.line 7
;----------------------------------------------------------------------
; 107 | if(i>100)
;----------------------------------------------------------------------
cmpi 100,r0 ; |107|
ble L18 ; |107|
;* Branch Occurs to L18 ; |107|
.line 9
;----------------------------------------------------------------------
; 109 | Lcd_Initial();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |109|
callu r0 ; far call to _Lcd_Initial ; |109|
; |109| Far Call Occurs
L18:
.line 4
ldp @CL1,DP
ldiu @CL1,ar0 ; |104|
ldiu 128,r0 ; |104|
and3 r0,*ar0,r0 ; |104|
cmpi 128,r0 ; |104|
beq L16 ; |104|
;* Branch Occurs to L16 ; |104|
L19:
.line 12
;----------------------------------------------------------------------
; 112 | *(int *)LCD_COMMAND_LEFT=command;
;----------------------------------------------------------------------
ldp @CL1,DP
ldiu @CL1,ar0 ; |112|
ldiu *-fp(2),r0 ; |112|
sti r0,*ar0 ; |112|
.line 13
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Unallocate the Frame
subi 3,sp
bu r1
;* Branch Occurs to r1
.endfunc 113,000000000h,1
.sect ".text"
.global _Lcd_Write_Com_Right
.sym _Lcd_Write_Com_Right,_Lcd_Write_Com_Right,32,2,0
.func 118
;******************************************************************************
;* FUNCTION NAME: _Lcd_Write_Com_Right *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,ar0,st *
;* Regs Saved : *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 1 Parm + 1 Auto + 0 SOE = 4 words *
;******************************************************************************
_Lcd_Write_Com_Right:
.sym _command,-2,4,9,32
.sym _i,1,4,1,32
.line 1
;----------------------------------------------------------------------
; 118 | void Lcd_Write_Com_Right(int command)
;----------------------------------------------------------------------
push fp
ldiu sp,fp
addi 1,sp
.line 2
.line 3
;----------------------------------------------------------------------
; 120 | int i = 0;
;----------------------------------------------------------------------
ldiu 0,r0 ; |120|
sti r0,*+fp(1) ; |120|
.line 4
;----------------------------------------------------------------------
; 121 | while ((*(int *)LCD_COMMAND_RIGHT&0x80) == 0x80)
;----------------------------------------------------------------------
ldp @CL4,DP
ldiu @CL4,ar0 ; |121|
ldiu 128,r0 ; |121|
and3 r0,*ar0,r0 ; |121|
cmpi 128,r0 ; |121|
bne L26 ; |121|
;* Branch Occurs to L26 ; |121|
L23:
.line 6
;----------------------------------------------------------------------
; 123 | i++;
;----------------------------------------------------------------------
ldiu 1,r0 ; |123|
addi *+fp(1),r0 ; |123|
sti r0,*+fp(1) ; |123|
.line 7
;----------------------------------------------------------------------
; 124 | if(i>100)
;----------------------------------------------------------------------
cmpi 100,r0 ; |124|
ble L25 ; |124|
;* Branch Occurs to L25 ; |124|
.line 9
;----------------------------------------------------------------------
; 126 | Lcd_Initial();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |126|
callu r0 ; far call to _Lcd_Initial ; |126|
; |126| Far Call Occurs
L25:
.line 4
ldp @CL4,DP
ldiu @CL4,ar0 ; |121|
ldiu 128,r0 ; |121|
and3 r0,*ar0,r0 ; |121|
cmpi 128,r0 ; |121|
beq L23 ; |121|
;* Branch Occurs to L23 ; |121|
L26:
.line 12
;----------------------------------------------------------------------
; 129 | *(int *)LCD_COMMAND_RIGHT=command;
;----------------------------------------------------------------------
ldp @CL4,DP
ldiu @CL4,ar0 ; |129|
ldiu *-fp(2),r0 ; |129|
sti r0,*ar0 ; |129|
.line 13
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Unallocate the Frame
subi 3,sp
bu r1
;* Branch Occurs to r1
.endfunc 130,000000000h,1
.sect ".text"
.global _Lcd_Initial
.sym _Lcd_Initial,_Lcd_Initial,32,2,0
.func 135
;******************************************************************************
;* FUNCTION NAME: _Lcd_Initial *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,r1,fp,sp *
;* Regs Saved : *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 0 Parm + 1 Auto + 0 SOE = 3 words *
;******************************************************************************
_Lcd_Initial:
.sym _ptr,1,20,1,32
.line 1
;----------------------------------------------------------------------
; 135 | void Lcd_Initial(void)
;----------------------------------------------------------------------
push fp
ldiu sp,fp
addi 1,sp
.line 4
;----------------------------------------------------------------------
; 138 | int *ptr=NU_NULL;
;----------------------------------------------------------------------
ldiu 0,r0 ; |138|
sti r0,*+fp(1) ; |138|
.line 6
;----------------------------------------------------------------------
; 140 | Lcd_Write_Com_Left(0xc0);
;----------------------------------------------------------------------
ldp @CL6,DP
ldiu @CL6,r1 ; |140|
ldiu 192,r0 ; |140|
push r0 ; |140|
callu r1 ; far call to _Lcd_Write_Com_Left ; |140|
; |140| Far Call Occurs
subi 1,sp ; |140|
.line 7
;----------------------------------------------------------------------
; 141 | Lcd_Write_Com_Right(0xc0);
;----------------------------------------------------------------------
ldp @CL7,DP
ldiu 192,r0 ; |141|
ldiu @CL7,r1 ; |141|
push r0 ; |141|
callu r1 ; far call to _Lcd_Write_Com_Right ; |141|
; |141| Far Call Occurs
subi 1,sp ; |141|
.line 9
;----------------------------------------------------------------------
; 143 | Lcd_Write_Com_Left(0x3f);
;----------------------------------------------------------------------
ldp @CL6,DP
ldiu 63,r0 ; |143|
ldiu @CL6,r1 ; |143|
push r0 ; |143|
callu r1 ; far call to _Lcd_Write_Com_Left ; |143|
; |143| Far Call Occurs
subi 1,sp ; |143|
.line 10
;----------------------------------------------------------------------
; 144 | Lcd_Write_Com_Right(0x3f);
;----------------------------------------------------------------------
ldiu 63,r0 ; |144|
ldp @CL7,DP
push r0 ; |144|
ldiu @CL7,r1 ; |144|
callu r1 ; far call to _Lcd_Write_Com_Right ; |144|
; |144| Far Call Occurs
subi 1,sp ; |144|
.line 12
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Unallocate the Frame
subi 3,sp
bu r1
;* Branch Occurs to r1
.endfunc 146,000000000h,1
.sect ".text"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -