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

📄 thrcontrol.asm

📁 DSP的一个应用程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
           MVKH    .S1     _TSK_timerSem,A11
||         MVK     .S2     0x64,B10

           MV      .L1X    B4,A10
||         MVKL    .S2     _externalControl+4,B4 ; |134| 

;** --------------------------------------------------------------------------*
L2:    
           MVKH    .S2     _externalControl+4,B4 ; |134| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains control code
;*----------------------------------------------------------------------------*
L3:    

           MVKH    .S1     _externalControlPrev+4,A3 ; |134| 
||         LDW     .D2T2   *B4,B4            ; |134| 

           LDW     .D1T1   *A3,A4            ; |134| 
           NOP             4
           CMPEQ   .L2X    B4,A4,B0          ; |134| 

   [!B0]   MVK     .L2     1,B5              ; |142| 
||         MVKL    .S1     _MBX_post,A3      ; |146| 
|| [!B0]   STW     .D1T2   B4,*A3            ; |138| 
|| [ B0]   MVKL    .S2     _SEM_pend,B5      ; |114| 

   [!B0]   ZERO    .L2     B5                ; |143| 
|| [!B0]   STW     .D2T2   B5,*+SP(4)        ; |142| 
|| [ B0]   B       .S1     L4                ; |134| 
|| [ B0]   MVKH    .S2     _SEM_pend,B5      ; |114| 

           MVKH    .S1     _MBX_post,A3      ; |146| 
|| [ B0]   CALL    .S2     B5                ; |114| 

           NOP             1
   [!B0]   CALL    .S2X    A3                ; |146| 
           NOP             2
           ; BRANCHCC OCCURS {L4}            ; |134| 
;** --------------------------------------------------------------------------*
           STW     .D2T2   B5,*+SP(12)       ; |144| 
           STW     .D2T2   B5,*+SP(8)        ; |143| 

           STW     .D2T2   B4,*+SP(16)       ; |145| 
||         MV      .L1     A10,A4            ; |146| 
||         ZERO    .S1     A6                ; |146| 
||         ADDKPC  .S2     RL3,B3,0          ; |146| 
||         ADD     .L2     4,SP,B4           ; |146| 

RL3:       ; CALL OCCURS {_MBX_post}         ; |146| 
           MVKL    .S2     _SEM_pend,B5      ; |114| 
           MVKH    .S2     _SEM_pend,B5      ; |114| 
           CALL    .S2     B5                ; |114| 
           NOP             4
;** --------------------------------------------------------------------------*
L4:    

           MV      .L1     A11,A4            ; |114| 
||         MV      .L2     B10,B4            ; |114| 
||         ADDKPC  .S2     RL4,B3,0          ; |114| 

RL4:       ; CALL OCCURS {_SEM_pend}         ; |114| 
;** --------------------------------------------------------------------------*

           MVKL    .S2     _externalControl,B4 ; |110| 
||         MVKL    .S1     _externalControlPrev,A3 ; |110| 

           MVKH    .S2     _externalControl,B4 ; |110| 
||         MVKH    .S1     _externalControlPrev,A3 ; |110| 

           LDW     .D2T2   *B4,B4            ; |110| 
||         LDW     .D1T1   *A3,A3            ; |110| 

           NOP             4

           MVKL    .S1     _MBX_post,A3      ; |130| 
||         CMPEQ   .L1X    B4,A3,A0          ; |110| 

   [!A0]   ZERO    .L2     B31               ; |127| 
||         MVKH    .S1     _MBX_post,A3      ; |130| 
|| [!A0]   B       .S2     L1                ; |110| 

   [ A0]   B       .S1     L2                ; |110| 
|| [!A0]   MVKL    .S2     _externalControlPrev,B5 ; |123| 

   [!A0]   MVKH    .S2     _externalControlPrev,B5 ; |123| 
   [!A0]   STW     .D2T2   B4,*B5            ; |123| 
   [!A0]   CALL    .S2X    A3                ; |130| 
           NOP             1
           ; BRANCHCC OCCURS {L1}            ; |110| 
;** --------------------------------------------------------------------------*
	.dwpsn	"thrControl.c",153,1

           MVKL    .S1     _externalControlPrev+4,A3 ; |134| 
||         MVKL    .S2     _externalControl+4,B4 ; |134| 

           ; BRANCH OCCURS {L2}              ; |110| 
	.dwattr DW$16, DW_AT_end_file("thrControl.c")
	.dwattr DW$16, DW_AT_end_line(0x99)
	.dwattr DW$16, DW_AT_end_column(0x01)
	.dwendtag DW$16

	.sect	".text"
	.global	_thrControlInit

DW$17	.dwtag  DW_TAG_subprogram, DW_AT_name("thrControlInit"), DW_AT_symbol_name("_thrControlInit")
	.dwattr DW$17, DW_AT_low_pc(_thrControlInit)
	.dwattr DW$17, DW_AT_high_pc(0x00)
	.dwattr DW$17, DW_AT_begin_file("thrControl.c")
	.dwattr DW$17, DW_AT_begin_line(0x30)
	.dwattr DW$17, DW_AT_begin_column(0x06)
	.dwattr DW$17, DW_AT_frame_base[DW_OP_breg31 0]
	.dwattr DW$17, DW_AT_skeletal(0x01)
	.dwpsn	"thrControl.c",49,1

;******************************************************************************
;* FUNCTION NAME: _thrControlInit                                             *
;*                                                                            *
;*   Regs Modified     : A3,A4,A5,B4,B5                                       *
;*   Regs Used         : A3,A4,A5,B3,B4,B5                                    *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_thrControlInit:
;** --------------------------------------------------------------------------*
           MVKL    .S2     _externalControl,B4 ; |50| 

           MVKH    .S2     _externalControl,B4 ; |50| 
||         MVK     .S1     75,A4             ; |54| 

           STW     .D2T1   A4,*+B4(4)        ; |54| 
||         MVKL    .S1     _externalControl,A3 ; |55| 
||         MVK     .L2     1,B5              ; |50| 

           STW     .D2T2   B5,*B4            ; |50| 
||         MVKH    .S1     _externalControl,A3 ; |55| 

           RETNOP  .S2     B3,2              ; |56| 
||         LDNDW   .D1T1   *A3,A5:A4         ; |55| 

           MVKL    .S2     _externalControlPrev,B4 ; |55| 
           MVKH    .S2     _externalControlPrev,B4 ; |55| 
	.dwpsn	"thrControl.c",56,1
           STNDW   .D2T1   A5:A4,*B4         ; |55| 
           ; BRANCH OCCURS {B3}              ; |56| 
	.dwattr DW$17, DW_AT_end_file("thrControl.c")
	.dwattr DW$17, DW_AT_end_line(0x38)
	.dwattr DW$17, DW_AT_end_column(0x01)
	.dwendtag DW$17

;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_SEM_pend
	.global	_MBX_post
	.global	_TSK_timerSem
	.global	_mbxProcess

;******************************************************************************
;* TYPE INFORMATION                                                           *
;******************************************************************************
DW$T$38	.dwtag  DW_TAG_typedef, DW_AT_name("Ptr"), DW_AT_type(*DW$T$3)
	.dwattr DW$T$38, DW_AT_language(DW_LANG_C)

DW$T$39	.dwtag  DW_TAG_subroutine_type
	.dwattr DW$T$39, DW_AT_language(DW_LANG_C)

DW$T$40	.dwtag  DW_TAG_subroutine_type
	.dwattr DW$T$40, DW_AT_language(DW_LANG_C)
DW$18	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
DW$19	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
	.dwendtag DW$T$40

DW$T$42	.dwtag  DW_TAG_typedef, DW_AT_name("Bool"), DW_AT_type(*DW$T$41)
	.dwattr DW$T$42, DW_AT_language(DW_LANG_C)

DW$T$45	.dwtag  DW_TAG_subroutine_type, DW_AT_type(*DW$T$42)
	.dwattr DW$T$45, DW_AT_language(DW_LANG_C)
DW$20	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$44)
DW$21	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$32)
	.dwendtag DW$T$45


DW$T$48	.dwtag  DW_TAG_subroutine_type, DW_AT_type(*DW$T$42)
	.dwattr DW$T$48, DW_AT_language(DW_LANG_C)
DW$22	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$47)
DW$23	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$38)
DW$24	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$32)
	.dwendtag DW$T$48

DW$T$10	.dwtag  DW_TAG_base_type, DW_AT_name("int")
	.dwattr DW$T$10, DW_AT_encoding(DW_ATE_signed)
	.dwattr DW$T$10, DW_AT_byte_size(0x04)
DW$T$32	.dwtag  DW_TAG_typedef, DW_AT_name("Uns"), DW_AT_type(*DW$T$11)
	.dwattr DW$T$32, DW_AT_language(DW_LANG_C)
DW$T$31	.dwtag  DW_TAG_typedef, DW_AT_name("SEM_Obj"), DW_AT_type(*DW$T$30)
	.dwattr DW$T$31, DW_AT_language(DW_LANG_C)
DW$T$44	.dwtag  DW_TAG_typedef, DW_AT_name("SEM_Handle"), DW_AT_type(*DW$T$43)
	.dwattr DW$T$44, DW_AT_language(DW_LANG_C)
DW$T$47	.dwtag  DW_TAG_typedef, DW_AT_name("MBX_Handle"), DW_AT_type(*DW$T$46)
	.dwattr DW$T$47, DW_AT_language(DW_LANG_C)
DW$T$58	.dwtag  DW_TAG_typedef, DW_AT_name("MBX_Obj"), DW_AT_type(*DW$T$33)
	.dwattr DW$T$58, DW_AT_language(DW_LANG_C)
DW$T$60	.dwtag  DW_TAG_typedef, DW_AT_name("ExternalControl"), DW_AT_type(*DW$T$35)
	.dwattr DW$T$60, DW_AT_language(DW_LANG_C)
DW$T$3	.dwtag  DW_TAG_pointer_type
	.dwattr DW$T$3, DW_AT_address_class(0x20)
DW$T$41	.dwtag  DW_TAG_typedef, DW_AT_name("MdUns"), DW_AT_type(*DW$T$9)
	.dwattr DW$T$41, DW_AT_language(DW_LANG_C)
DW$T$11	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned int")
	.dwattr DW$T$11, DW_AT_encoding(DW_ATE_unsigned)
	.dwattr DW$T$11, DW_AT_byte_size(0x04)

DW$T$30	.dwtag  DW_TAG_structure_type
	.dwattr DW$T$30, DW_AT_name("SEM_Obj")
	.dwattr DW$T$30, DW_AT_byte_size(0x1c)
DW$25	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$29)
	.dwattr DW$25, DW_AT_name("job"), DW_AT_symbol_name("_job")
	.dwattr DW$25, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
	.dwattr DW$25, DW_AT_accessibility(DW_ACCESS_public)
DW$26	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$22)
	.dwattr DW$26, DW_AT_name("count"), DW_AT_symbol_name("_count")
	.dwattr DW$26, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
	.dwattr DW$26, DW_AT_accessibility(DW_ACCESS_public)
DW$27	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$21)
	.dwattr DW$27, DW_AT_name("pendQ"), DW_AT_symbol_name("_pendQ")
	.dwattr DW$27, DW_AT_data_member_location[DW_OP_plus_uconst 0x14]
	.dwattr DW$27, DW_AT_accessibility(DW_ACCESS_public)
	.dwendtag DW$T$30

DW$T$43	.dwtag  DW_TAG_pointer_type, DW_AT_type(*DW$T$30)
	.dwattr DW$T$43, DW_AT_address_class(0x20)

DW$T$33	.dwtag  DW_TAG_structure_type
	.dwattr DW$T$33, DW_AT_name("MBX_Obj")
	.dwattr DW$T$33, DW_AT_byte_size(0x54)
DW$28	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$21)
	.dwattr DW$28, DW_AT_name("dataQue"), DW_AT_symbol_name("_dataQue")
	.dwattr DW$28, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
	.dwattr DW$28, DW_AT_accessibility(DW_ACCESS_public)
DW$29	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$21)
	.dwattr DW$29, DW_AT_name("freeQue"), DW_AT_symbol_name("_freeQue")
	.dwattr DW$29, DW_AT_data_member_location[DW_OP_plus_uconst 0x8]
	.dwattr DW$29, DW_AT_accessibility(DW_ACCESS_public)
DW$30	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$31)
	.dwattr DW$30, DW_AT_name("dataSem"), DW_AT_symbol_name("_dataSem")
	.dwattr DW$30, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
	.dwattr DW$30, DW_AT_accessibility(DW_ACCESS_public)
DW$31	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$31)
	.dwattr DW$31, DW_AT_name("freeSem"), DW_AT_symbol_name("_freeSem")
	.dwattr DW$31, DW_AT_data_member_location[DW_OP_plus_uconst 0x2c]
	.dwattr DW$31, DW_AT_accessibility(DW_ACCESS_public)
DW$32	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$22)
	.dwattr DW$32, DW_AT_name("segid"), DW_AT_symbol_name("_segid")
	.dwattr DW$32, DW_AT_data_member_location[DW_OP_plus_uconst 0x48]
	.dwattr DW$32, DW_AT_accessibility(DW_ACCESS_public)
DW$33	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$32)
	.dwattr DW$33, DW_AT_name("size"), DW_AT_symbol_name("_size")
	.dwattr DW$33, DW_AT_data_member_location[DW_OP_plus_uconst 0x4c]
	.dwattr DW$33, DW_AT_accessibility(DW_ACCESS_public)
DW$34	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$32)
	.dwattr DW$34, DW_AT_name("length"), DW_AT_symbol_name("_length")
	.dwattr DW$34, DW_AT_data_member_location[DW_OP_plus_uconst 0x50]
	.dwattr DW$34, DW_AT_accessibility(DW_ACCESS_public)
	.dwendtag DW$T$33

DW$T$46	.dwtag  DW_TAG_pointer_type, DW_AT_type(*DW$T$33)
	.dwattr DW$T$46, DW_AT_address_class(0x20)

DW$T$35	.dwtag  DW_TAG_structure_type
	.dwattr DW$T$35, DW_AT_name("ExternalControl")
	.dwattr DW$T$35, DW_AT_byte_size(0x08)
DW$35	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$34)
	.dwattr DW$35, DW_AT_name("frameRatio"), DW_AT_symbol_name("_frameRatio")
	.dwattr DW$35, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
	.dwattr DW$35, DW_AT_accessibility(DW_ACCESS_public)
DW$36	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$34)
	.dwattr DW$36, DW_AT_name("quality"), DW_AT_symbol_name("_quality")
	.dwattr DW$36, DW_AT_data_member_location[DW_OP_plus_uconst 0x4]
	.dwattr DW$36, DW_AT_accessibility(DW_ACCESS_public)
	.dwendtag DW$T$35

DW$T$9	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned short")
	.dwattr DW$T$9, DW_AT_encoding(DW_ATE_unsigned)
	.dwattr DW$T$9, DW_AT_byte_size(0x02)
DW$T$22	.dwtag  DW_TAG_typedef, DW_AT_name("Int"), DW_AT_type(*DW$T$10)
	.dwattr DW$T$22, DW_AT_language(DW_LANG_C)

DW$T$34	.dwtag  DW_TAG_array_type, DW_AT_type(*DW$T$22)
	.dwattr DW$T$34, DW_AT_language(DW_LANG_C)
	.dwattr DW$T$34, DW_AT_byte_size(0x04)
DW$37	.dwtag  DW_TAG_subrange_type
	.dwattr DW$37, DW_AT_upper_bound(0x00)
	.dwendtag DW$T$34

DW$T$21	.dwtag  DW_TAG_typedef, DW_AT_name("QUE_Obj"), DW_AT_type(*DW$T$20)
	.dwattr DW$T$21, DW_AT_language(DW_LANG_C)
DW$T$29	.dwtag  DW_TAG_typedef, DW_AT_name("KNL_Job"), DW_AT_type(*DW$T$28)
	.dwattr DW$T$29, DW_AT_language(DW_LANG_C)

DW$T$20	.dwtag  DW_TAG_structure_type
	.dwattr DW$T$20, DW_AT_name("QUE_Elem")
	.dwattr DW$T$20, DW_AT_byte_size(0x08)
DW$38	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$19)
	.dwattr DW$38, DW_AT_name("next"), DW_AT_symbol_name("_next")
	.dwattr DW$38, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
	.dwattr DW$38, DW_AT_accessibility(DW_ACCESS_public)
DW$39	.dwtag  DW_TAG_member, DW_AT_type(*DW$T$19)
	.dwattr DW$39, DW_AT_name("prev"), DW_AT_symbol_name("_prev")

⌨️ 快捷键说明

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