📄 thrcontrol.asm
字号:
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 + -