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

📄 c_int00.txt

📁 dspled通讯程序样例
💻 TXT
📖 第 1 页 / 共 2 页
字号:
           CCS3.1启动代码分析:
0000:0174      c_int00					;复位向量入口地址
0000:0174 F7BE      SSBX  CPL			;设置相对直接寻址译码器模式位
0000:0175 F6B9      RSBX  OVM           ;清除溢出模式位
0000:0176 F4A0      LD    #0h,ARP		;清除辅助寄存器(AR)指针->AR0
0000:0177 F6B7      RSBX  C16			;清除双16位/双精度算术模式位
0000:0178 F6B5      RSBX  CMPT			;清除修改模式位
0000:0179 F6B6      RSBX  FRCT			;清除小数方式位
0000:017A F7B8      SSBX  SXM			;设置符号扩展模式位,允许符号扩展
0000:017B 7718      STM   2700h,SP		;设置堆栈指针,注意下面的CMD文件
  MEMORY
{
     PAGE 0: VECS: origin=0xff80,  length=0x80
             PROG: origin=0x100, length=0x1600
     PAGE 1: DATA: origin=0x2700, length=0x1880;注意这里的0x2700
}


0000:017D 6BF8      ADDM  3ffh,*(SP)	;设置堆栈大小为1K字
0000:0180 68F8      ANDM  0fffeh,*(SP)	;必须偶数地址对齐
0000:0183 F020      LD    #22eh,0,A		
0000:0185 F100      ADD   #1h,0,A,B
0000:0187 F84D      BC    1a0h,BEQ
0000:0189 F6B8      RSBX  SXM			;设置符号扩展模式位,禁止符号扩展
0000:018A F495      NOP   
0000:018B F020      LD    #22eh,0,A
0000:018D F073      B     19ah
0000:018F 7EF8      READA *(AR2)
0000:0191 F000      ADD   #1h,0,A,A
0000:0193 47F8      RPT   *(AR1)
0000:0195 7E92      READA *AR2+
0000:0196 00F8      ADD   *(AR1),A
0000:0198 F000      ADD   #1h,0,A,A
0000:019A 7EF8      READA *(AR1)
0000:019C F000      ADD   #1h,0,A,A
0000:019E 6C89      BANZ  18fh,*AR1-
0000:01A0 F7B8      SSBX  SXM			;设置符号扩展模式位,允许符号扩展
0000:01A1 EEFC      FRAME -4			;压栈保护SP-=4
0000:01A2 F020      LD    #0ffe5h,0,A
0000:01A4 F100      ADD   #1h,0,A,B
0000:01A6 F84D      BC    1b8h,BEQ
0000:01A8 F6B8      RSBX  SXM			;设置符号扩展模式位,禁止符号扩展
0000:01A9 F495      NOP   
0000:01AA F020      LD    #0ffe5h,0,A
0000:01AC F273      BD    1b2h
0000:01AE 4E02      DST   A,*SP(2h)
0000:01AF F495      NOP   
0000:01B0 F5E3      CALA  B
0000:01B1 5602      DLD   *SP(2h),A
0000:01B2 7E00      READA *SP(0h)
0000:01B3 1100      LD    *SP(0h),B
0000:01B4 FA4C      BCD   1b0h,BNEQ
0000:01B6 6B03      ADDM  1h,*SP(3h)
0000:01B8 F6B8      RSBX  SXM			;设置符号扩展模式位,禁止符号扩展
0000:01B9 EE04      FRAME 4				;出栈恢复SP+=4
0000:01BA F074      CALL  _args_main	;调用用户主程序
0000:01BC F074      CALL  exit			;处理主程序异常退出
0000:01BE      exit
0000:01BE 4A11      PSHM  AR1
0000:01BF 4A16      PSHM  AR6
0000:01C0 EEFF      FRAME -1
0000:01C1 10F8      LD    *(lock),A
0000:01C3 F4E3      CALA  A
0000:01C4 7211      MVDM  2b03h,AR1
0000:01C6 10F8      LD    *(AR1),A
0000:01C8 F845      BC    1d6h,AEQ
0000:01CA 4811      LDM   AR1,A
0000:01CB F000      ADD   #2b04h,0,A,A
0000:01CD 8816      STLM  A,AR6
0000:01CE F495      NOP   
0000:01CF F495      NOP   
0000:01D0 10EE      LD    *+AR6(-1),A
0000:01D2 F4E3      CALA  A
0000:01D3 6CE9      BANZ  1d0h,*+AR1(-1)
0000:01D6 10F8      LD    *(dtors_ptr),A
0000:01D8 F845      BC    1ddh,AEQ
0000:01DA 10F8      LD    *(dtors_ptr),A
0000:01DC F4E3      CALA  A
0000:01DD 10F8      LD    *(cleanup_ptr),A
0000:01DF F845      BC    1e4h,AEQ
0000:01E1 10F8      LD    *(cleanup_ptr),A
0000:01E3 F4E3      CALA  A
0000:01E4 10F8      LD    *(unlock),A
0000:01E6 F4E3      CALA  A
0000:01E7 F074      CALL  abort
0000:01E9 F073      B     1e9h
0000:01EB      atexit
0000:01EB 4A11      PSHM  AR1
0000:01EC 8811      STLM  A,AR1
0000:01ED 10F8      LD    *(lock),A
0000:01EF F4E3      CALA  A
0000:01F0 F7B8      SSBX  SXM
0000:01F1 10F8      LD    *(at_exit_count),A
0000:01F3 F468      SFTA  A,8,A
0000:01F4 F478      SFTA  A,-8,A
0000:01F5 F010      SUB   #20h,0,A,A
0000:01F7 F843      BC    1ffh,ALT
0000:01F9 10F8      LD    *(unlock),A
0000:01FB F4E3      CALA  A
0000:01FC E801      LD    #1h,A
0000:01FD F073      B     20bh
0000:01FF 7212      MVDM  2b03h,AR2
0000:0201 10F8      LD    *(unlock),A
0000:0203 6BF8      ADDM  1h,*(at_exit_count)
0000:0206 70E2      MVKD  11h,*AR2(11012)
0000:0209 F4E3      CALA  A
0000:020A E800      LD    #0h,A
0000:020B 8A11      POPM  AR1
0000:020C FC00      RET   
0000:020D      C$$EXIT, abort
0000:020D F495      NOP   
0000:020E F073      B     20eh
0000:0210      _nop
0000:0210 FC00      RET   
0000:0211      _register_lock
0000:0211 80F8      STL   A,*(lock)
0000:0213 FC00      RET   
0000:0214      _register_unlock
0000:0214 80F8      STL   A,*(unlock)
0000:0216 FC00      RET   
0000:0217      _args_main
0000:0217 4A11      PSHM  AR1
0000:0218 7711      STM   0ffffh,AR1
0000:021A EEFE      FRAME -2
0000:021B 6CE1      BANZ  222h,*AR1(1)
0000:021E F273      BD    228h
0000:0220 E800      LD    #0h,A
0000:0221 E900      LD    #0h,B
0000:0222 F120      LD    #0ffffh,0,B
0000:0224 10F8      LD    *(0ffffh),A
0000:0226 F300      ADD   #1h,0,B,B
0000:0228 8100      STL   B,*SP(0h)
0000:0229 F074      CALL  main
0000:022B EE02      FRAME 2
0000:022C 8A11      POPM  AR1
0000:022D FC00      RET   
0000:022E      ___cinit__, ___etext__, etext, cinit
0000:022E 0001      ADD   *SP(1h),A
0000:022F 2B03      MACR  *SP(3h),B
0000:0230 0000      ADD   *SP(0h),A
0000:0231 0001      ADD   *SP(1h),A
0000:0232 2B24      MACR  *SP(24h),B
0000:0233 0000      ADD   *SP(0h),A
0000:0234 0001      ADD   *SP(1h),A
0000:0235 2B25      MACR  *SP(25h),B
0000:0236 0000      ADD   *SP(0h),A
0000:0237 0001      ADD   *SP(1h),A
0000:0238 2B26      MACR  *SP(26h),B
0000:0239 0210      ADDS  *SP(10h),A
0000:023A 0001      ADD   *SP(1h),A
0000:023B 2B27      MACR  *SP(27h),B
0000:023C 0210      ADDS  *SP(10h),A
0000:023D 0000      ADD   *SP(0h),A
0000:0229 F074      CALL  main
0000:022B EE02      FRAME 2
0000:022C 8A11      POPM  AR1
0000:022D FC00      RET   
0000:022E      ___cinit__, ___etext__, etext, cinit
0000:022E 0001      ADD   *SP(1h),A
0000:022F 2B03      MACR  *SP(3h),B
0000:0230 0000      ADD   *SP(0h),A
0000:0231 0001      ADD   *SP(1h),A
0000:0232 2B24      MACR  *SP(24h),B
0000:0233 0000      ADD   *SP(0h),A
0000:0234 0001      ADD   *SP(1h),A
0000:0235 2B25      MACR  *SP(25h),B
0000:0236 0000      ADD   *SP(0h),A
0000:0237 0001      ADD   *SP(1h),A
0000:0238 2B26      MACR  *SP(26h),B
0000:0239 0210      ADDS  *SP(10h),A
0000:023A 0001      ADD   *SP(1h),A
0000:023B 2B27      MACR  *SP(27h),B
0000:023C 0210      ADDS  *SP(10h),A





           CCS2.2启动代码分析:			
0000:019D      _c_int00					;复位向量入口地址
0000:019D 7718      STM   272fh,18h		;SP=0x2700 + 0x002f
;___bss__            =*0x2700=0x0000
;SystemRamTest       =*0x2701=0x55aa
;Sys                 =*0x2702=0x55aa,0x0000,...,0x0000
;cleanup_ptr         =*0x2724=0x0000
;__dtors_ptr         =*0x2725=0x0000
;__lock              =*0x2726=0x0260
;__unlock            =*0x2727=0x0260,0x0000,0x0000,0x0001
;_nothrow_3std       =*0x272b=0x0000
;_new_handle_fun_3std=*0x272c=0x04e2
;___end__            =*0x272d=0x0000
;TIMER0              =*0x272e=0x0024
  MEMORY
{
     PAGE 0: VECS: origin=0xff80,  length=0x80
             PROG: origin=0x100, length=0x1600
     PAGE 1: DATA: origin=0x2700, length=0x1880;注意这里的0x2700
}
0000:019F 6BF8      ADDM  3ffh,*(18h)   ;设置堆栈大小为1K字
0000:01A2 68F8      ANDM  0fffeh,*(18h) ;必须偶数地址对齐,SP=__Sys_memory
0000:01A5 F7B8      SSBX  SXM			;设置符号扩展模式位,允许符号扩展
0000:01A6 F7BE      SSBX  CPL			;设置相对直接寻址译码器模式位
0000:01A7 F6B9      RSBX  OVM			;清除溢出模式位
0000:01A8 F4A0      LD    #0h,ARP		;清除辅助寄存器(AR)指针->AR0
0000:01A9 F6B7      RSBX  C16			;清除双16位/双精度算术模式位
0000:01AA F6B5      RSBX  CMPT			;清除修改模式位
0000:01AB F6B6      RSBX  FRCT			;清除小数方式位
0000:01AC F020      LD    #522h,0,A		;A=0x522
0000:01AE F100      ADD   #1h,0,A,B		;B=A+1=0x523
0000:01B0 F84D      BC    1c9h,BEQ
0000:01B2 F6B8      RSBX  SXM			;设置符号扩展模式位,禁止符号扩展
0000:01B3 F495      NOP   
0000:01B4 F020      LD    #522h,0,A		
0000:01B6 F073      B     1c3h
0000:01B8 7EF8      READA *(12h)		;*(AR2)
0000:01BA F000      ADD   #1h,0,A,A
0000:01BC 47F8      RPT   *(11h)
0000:01BE 7E92      READA *AR2+
0000:01BF 00F8      ADD   *(11h),A
0000:01C1 F000      ADD   #1h,0,A,A
0000:01C3 7EF8      READA *(11h)
0000:01C5 F000      ADD   #1h,0,A,A
0000:01C7 6C89      BANZ  1b8h,*AR1-	;继续循环
0000:01C9 F7B8      SSBX  SXM			;设置符号扩展模式位,允许符号扩展
0000:01CA EEFC      FRAME -4			;压栈保护SP-=4
0000:01CB F020      LD    #538h,0,A
0000:01CD F100      ADD   #1h,0,A,B
0000:01CF F84D      BC    1e1h,BEQ
0000:01D1 F6B8      RSBX  SXM			;设置符号扩展模式位,禁止符号扩展
0000:01D2 F495      NOP   
0000:01D3 F020      LD    #538h,0,A
0000:01D5 F273      BD    1dbh
0000:01D7 4E02      DST   A,2h
0000:01D8 F495      NOP   
0000:01D9 F5E3      CALA  B
0000:01DA 5602      DLD   2h,A
0000:01DB 7E00      READA edata
0000:01DC 1100      LD    edata,B
0000:01DD FA4C      BCD   1d9h,BNEQ
0000:01DF 6B03      ADDM  1h,3h
0000:01E1 F6B8      RSBX  SXM			;设置符号扩展模式位,禁止符号扩展
0000:01E2 EE04      FRAME 4				;出栈恢复SP+=4
0000:01E3 F074      CALL  main			;调用用户主程序
0000:01E5 F074      CALL  _exit			;处理主程序异常退出
0000:01E7      _exit
0000:01E7 4A11      PSHM  11h
0000:01E8 4A16      PSHM  16h
0000:01E9 EEFF      FRAME -1
0000:01EA 10F8      LD    *(__lock),A
0000:01EC F4E3      CALA  A
0000:01ED 7211      MVDM  2703h,11h
0000:01EF 10F8      LD    *(11h),A
0000:01F1 F845      BC    1ffh,AEQ
0000:01F3 4811      LDM   11h,A
0000:01F4 F000      ADD   #2704h,0,A,A
0000:01F6 8816      STLM  A,16h
0000:01F7 F495      NOP   
0000:01F8 F495      NOP   
0000:01F9 10EE      LD    *+AR6(-1),A
0000:01FB F4E3      CALA  A
0000:01FC 6CE9      BANZ  1f9h,*+AR1(-1)
0000:01FF 10F8      LD    *(__dtors_ptr),A
0000:0201 F845      BC    206h,AEQ
0000:0203 10F8      LD    *(__dtors_ptr),A
0000:0205 F4E3      CALA  A
0000:0206 10F8      LD    *(__cleanup_ptr),A
0000:0208 F845      BC    20dh,AEQ
0000:020A 10F8      LD    *(__cleanup_ptr),A
0000:020C F4E3      CALA  A
0000:020D 10F8      LD    *(__unlock),A
0000:020F F4E3      CALA  A
0000:0210 F074      CALL  C$$EXIT
0000:0212 EE01      FRAME 1
0000:0213 8A16      POPM  16h
0000:0214 8A11      POPM  11h
0000:0215 FC00      RET   
0000:0216      _atexit
0000:0216 4A11      PSHM  11h
0000:0217 8811      STLM  A,11h
0000:0218 10F8      LD    *(__lock),A
0000:021A F4E3      CALA  A
0000:021B F7B8      SSBX  SXM
0000:021C E820      LD    #20h,A
0000:021D 08F8      SUB   *(2703h),A
0000:021F F846      BC    228h,AGT
0000:0221 10F8      LD    *(__unlock),A
0000:0223 F4E3      CALA  A
0000:0224 F273      BD    236h
0000:0226 F495      NOP   
0000:0227 E801      LD    #1h,A
0000:0228 7212      MVDM  2703h,12h
0000:022A 4812      LDM   12h,A
0000:022B F000      ADD   #1h,0,A,A
0000:022D 80F8      STL   A,*(2703h)
0000:022F 70E2      MVKD  11h,*AR2(9988)
0000:0232 10F8      LD    *(__unlock),A
0000:0234 F4E3      CALA  A
0000:0235 E800      LD    #0h,A
0000:0236 8A11      POPM  11h
0000:0237 FC00      RET   
0000:0238      C$$EXIT
0000:0238 F495      NOP   
0000:0239 F073      B     239h
0000:023B      ___nw__FUi
0000:023B 4A11      PSHM  11h
0000:023C 8811      STLM  A,11h
0000:023D F495      NOP   
0000:023E F495      NOP   
0000:023F 6C81      BANZ  243h,*AR1
0000:0241 7711      STM   1h,11h
0000:0243 F274      CALLD _malloc
0000:0245 F495      NOP   
0000:0246 4811      LDM   11h,A
0000:0247 8812      STLM  A,12h
0000:0248 F495      NOP   
0000:0249 F495      NOP   
0000:024A 6C82      BANZ  25ch,*AR2
0000:024C 10F8      LD    *(_new_handler_fun__3std),A
0000:024E F845      BC    25ch,AEQ
0000:0250 10F8      LD    *(_new_handler_fun__3std),A
0000:0252 F4E3      CALA  A
0000:0253 F274      CALLD _malloc
0000:0255 F495      NOP   
0000:0256 4811      LDM   11h,A
0000:0257 8812      STLM  A,12h
0000:0258 F495      NOP   
0000:0259 4812      LDM   12h,A
0000:025A F845      BC    24ch,AEQ
0000:025C 8A11      POPM  11h
0000:025D FE00      RETD  
0000:025E 4812      LDM   12h,A
0000:025F F495      NOP   
0000:0260      __nop
0000:0260 FC00      RET   
0000:0261      __register_lock
0000:0261 80F8      STL   A,*(__lock)
0000:0263 FC00      RET   
0000:0264      __register_unlock
0000:0264 80F8      STL   A,*(__unlock)
0000:0266 FC00      RET   
0000:0267 4A11      PSHM  11h
0000:0268 7211      MVDM  2728h,11h
0000:026A 8812      STLM  A,12h
0000:026B 6C81      BANZ  271h,*AR1
0000:026D F273      BD    299h
0000:026F 7312      MVMD  12h,2728h
0000:0271 1182      LD    *AR2,B
0000:0272 7713      STM   0h,13h
0000:0274 F7B8      SSBX  SXM
0000:0275 10F8      LD    *(0bh),A
0000:0277 0881      SUB   *AR1,A
0000:0278 F842      BC    282h,AGEQ
0000:027A E713      MVMM  AR1,AR3
0000:027B 71E1      MVDK  *AR1(1),11h
0000:027E 6C81      BANZ  274h,*AR1
0000:0280 F073      B     296h
0000:0282 4811      LDM   11h,A
0000:0283 F845      BC    296h,AEQ
0000:0285 6C83      BANZ  28eh,*AR3
0000:0287 70E2      MVKD  2728h,*AR2(1)
0000:028A F273      BD    29ch
0000:028C 7312      MVMD  12h,2728h
0000:028E 70E2      MVKD  11h,*AR2(1)
0000:0291 70E3      MVKD  12h,*AR3(1)
0000:0294 F073      B     29ch
0000:0296 70E3      MVKD  12h,*AR3(1)
0000:0299 76E2      ST    #0h,*AR2(1)
0000:029C 8A11      POPM  11h
0000:029D FC00      RET   
0000:029E 4A11      PSHM  11h
0000:029F 8812      STLM  A,12h
0000:02A0 7211      MVDM  2728h,11h
0000:02A2 4811      LDM   11h,A
0000:02A3 F845      BC    2c2h,AEQ
0000:02A5 E720      MVMM  AR2,AR0
0000:02A6 F4A9      CMPR  EQ,AR1
0000:02A7 F830      BC    2bdh,TC
0000:02A9 E713      MVMM  AR1,AR3
0000:02AA 71E1      MVDK  *AR1(1),11h
0000:02AD 4811      LDM   11h,A
0000:02AE F845      BC    2c2h,AEQ
0000:02B0 E720      MVMM  AR2,AR0
0000:02B1 F7A9      CMPR  NEQ,AR1
0000:02B2 F830      BC    2a9h,TC
0000:02B4 4813      LDM   13h,A
0000:02B5 F845      BC    2bdh,AEQ
0000:02B7 10E2      LD    *AR2(1),A
0000:02B9 F273      BD    2c5h
0000:02BB 80E3      STL   A,*AR3(1)
0000:02BD 71E2      MVDK  *AR2(1),2728h
0000:02C0 F073      B     2c5h
0000:02C2 76F8      ST    #0h,*(2728h)
0000:02C5 8A11      POPM  11h
0000:02C6 FC00      RET   
0000:02C7      _minit
0000:02C7 4A11      PSHM  11h
0000:02C8 10F8      LD    *(__lock),A
0000:02CA F4E3      CALA  A
0000:02CB 7711      STM   2b2fh,11h
0000:02CD 61F8      BITF  *(11h),1h
0000:02D0 76F8      ST    #400h,*(2729h)
0000:02D3 F830      BC    2e2h,TC
0000:02D5 4811      LDM   11h,A
0000:02D6 7681      ST    #0h,*AR1
0000:02D8 F000      ADD   #1h,0,A,A
0000:02DA 6BF8      ADDM  0fffeh,*(2729h)
0000:02DD 8811      STLM  A,11h
0000:02DE F273      BD    2eah
0000:02E0 7311      MVMD  11h,2728h
0000:02E2 7711      STM   2b2fh,11h
0000:02E4 4811      LDM   11h,A
0000:02E5 6BF8      ADDM  0ffffh,*(2729h)
0000:02E8 80F8      STL   A,*(2728h)
0000:02EA 10F8      LD    *(2729h),A
0000:02EC F484      NEG   A,A
0000:02ED 8081      STL   A,*AR1
0000:02EE 7211      MVDM  2728h,11h
0000:02F0 F495      NOP   
0000:02F1 76E1      ST    #0h,*AR1(1)
0000:02F4 10F8      LD    *(__unlock),A
0000:02F6 F4E3      CALA  A
0000:02F7 8A11      POPM  11h
0000:02F8 FC00      RET   
0000:02F9      _malloc
0000:02F9 4A11      PSHM  11h
0000:02FA 4A16      PSHM  16h
0000:02FB 8816      STLM  A,16h
0000:02FC EEFF      FRAME -1
0000:02FD 10F8      LD    *(__lock),A
0000:02FF F4E3      CALA  A
0000:0300 10F8      LD    *(272ah),A
0000:0302 F845      BC    309h,AEQ
0000:0304 F074      CALL  _minit
0000:0306 76F8      ST    #0h,*(272ah)
0000:0309 F7B8      SSBX  SXM
0000:030A 4816      LDM   16h,A

⌨️ 快捷键说明

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