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

📄 main.asm

📁 这个是我DSP板的LCD显示程序
💻 ASM
字号:
;***************************************************************
;* TMS320C54x C/C++ Codegen                          PC v4.1.0 *
;* Date/Time created: Sat May 02 20:48:30 2009                 *
;***************************************************************
	.compiler_opts --mem_model:code=near --mem_model:data=flat --quiet 
	.mmregs
FP	.set	AR7
	.c_mode

DW$CU	.dwtag  DW_TAG_compile_unit
	.dwattr DW$CU, DW_AT_name("main.c")
	.dwattr DW$CU, DW_AT_producer("TMS320C54x C/C++ Codegen PC v4.1.0 Copyright (c) 1996-2005 Texas Instruments Incorporated")
	.dwattr DW$CU, DW_AT_stmt_list(0x00)
	.dwattr DW$CU, DW_AT_TI_VERSION(0x01)

DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("lcd_init"), DW_AT_symbol_name("_lcd_init")
	.dwattr DW$1, DW_AT_type(*DW$T$10)
	.dwattr DW$1, DW_AT_declaration(0x01)
	.dwattr DW$1, DW_AT_external(0x01)

DW$2	.dwtag  DW_TAG_subprogram, DW_AT_name("clearscr1"), DW_AT_symbol_name("_clearscr1")
	.dwattr DW$2, DW_AT_type(*DW$T$10)
	.dwattr DW$2, DW_AT_declaration(0x01)
	.dwattr DW$2, DW_AT_external(0x01)

DW$3	.dwtag  DW_TAG_subprogram, DW_AT_name("clearscr2"), DW_AT_symbol_name("_clearscr2")
	.dwattr DW$3, DW_AT_type(*DW$T$10)
	.dwattr DW$3, DW_AT_declaration(0x01)
	.dwattr DW$3, DW_AT_external(0x01)

DW$4	.dwtag  DW_TAG_subprogram, DW_AT_name("clearscr3"), DW_AT_symbol_name("_clearscr3")
	.dwattr DW$4, DW_AT_type(*DW$T$10)
	.dwattr DW$4, DW_AT_declaration(0x01)
	.dwattr DW$4, DW_AT_external(0x01)

DW$5	.dwtag  DW_TAG_subprogram, DW_AT_name("Smenu"), DW_AT_symbol_name("_Smenu")
	.dwattr DW$5, DW_AT_type(*DW$T$10)
	.dwattr DW$5, DW_AT_declaration(0x01)
	.dwattr DW$5, DW_AT_external(0x01)
DW$6	.dwtag  DW_TAG_variable, DW_AT_name("portbfff"), DW_AT_symbol_name("_portbfff")
	.dwattr DW$6, DW_AT_location[DW_OP_addr 0xbfff]
	.dwattr DW$6, DW_AT_type(*DW$T$23)
	.dwattr DW$6, DW_AT_external(0x01)
DW$7	.dwtag  DW_TAG_variable, DW_AT_name("portbffe"), DW_AT_symbol_name("_portbffe")
	.dwattr DW$7, DW_AT_location[DW_OP_addr 0xbffe]
	.dwattr DW$7, DW_AT_type(*DW$T$23)
	.dwattr DW$7, DW_AT_external(0x01)
	.global	_ms
	.bss	_ms,1,0,0
DW$8	.dwtag  DW_TAG_variable, DW_AT_name("ms"), DW_AT_symbol_name("_ms")
	.dwattr DW$8, DW_AT_location[DW_OP_addr _ms]
	.dwattr DW$8, DW_AT_type(*DW$T$10)
	.dwattr DW$8, DW_AT_external(0x01)
	.global	_f
	.bss	_f,1,0,0
DW$9	.dwtag  DW_TAG_variable, DW_AT_name("f"), DW_AT_symbol_name("_f")
	.dwattr DW$9, DW_AT_location[DW_OP_addr _f]
	.dwattr DW$9, DW_AT_type(*DW$T$10)
	.dwattr DW$9, DW_AT_external(0x01)
;	E:\CCStudio_v3.3\C5400\cgtools\bin\acp500.exe -@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI51612 
	.sect	".text"
	.global	_main

DW$10	.dwtag  DW_TAG_subprogram, DW_AT_name("main"), DW_AT_symbol_name("_main")
	.dwattr DW$10, DW_AT_low_pc(_main)
	.dwattr DW$10, DW_AT_high_pc(0x00)
	.dwattr DW$10, DW_AT_begin_file("main.c")
	.dwattr DW$10, DW_AT_begin_line(0x06)
	.dwattr DW$10, DW_AT_begin_column(0x06)
	.dwpsn	"main.c",7,1

	.dwfde DW$CIE

;***************************************************************
;* FUNCTION DEF: _main                                         *
;***************************************************************
_main:
	.dwcfa	0x0e, 1
	.dwcfa	0x80, 34, 1
        PSHM      AR1
	.dwcfa	0x0e, 2
	.dwcfa	0x80, 10, 2
	.dwcfa	0x0e, 2
  STM #0000h,CLKMD 
        STM       #88,AR2
	.dwpsn	"main.c",9,6
        BIT       *AR2,15               ; |9| 
        BC        L2,NTC                ; |9| 
        ; branchcc occurs ; |9| 
L1:    
DW$L$_main$2$B:
        BIT       *AR2,15               ; |9| 
        BC        L1,TC                 ; |9| 
        ; branchcc occurs ; |9| 
DW$L$_main$2$E:
L2:    
  STM #0802h,CLKMD 
        STM       #43,AR1
	.dwpsn	"main.c",12,2
        ST        #1,*AR1               ; |12| 
        NOP
  stm   #7240h, SWWSR 
  stm   #00A0h, PMST  
  stm   #0802h, BSCR  
  STM #0h,IMR 
  STM #0010h,TCR  
  STM #0186ah,PRD  
  STM #0C2fh,TCR  
  STM #0008h,IFR  
  ORM #0008h,*(IMR) 
  RSBX  INTM 
	.dwpsn	"main.c",27,6
        CALL      #_lcd_init            ; |27| 
        ; call occurs [#_lcd_init] ; |27| 
	.dwpsn	"main.c",28,6
        CALL      #_clearscr1           ; |28| 
        ; call occurs [#_clearscr1] ; |28| 
	.dwpsn	"main.c",29,6
        CALL      #_clearscr2           ; |29| 
        ; call occurs [#_clearscr2] ; |29| 
	.dwpsn	"main.c",30,6
        CALL      #_clearscr3           ; |30| 
        ; call occurs [#_clearscr3] ; |30| 
	.dwpsn	"main.c",31,6
        CALL      #_Smenu               ; |31| 
        ; call occurs [#_Smenu] ; |31| 
	.dwpsn	"main.c",33,6
        ST        #0,*(_ms)             ; |33| 
	.dwpsn	"main.c",32,6
        ST        #1,*(_f)              ; |32| 
	.dwcfa	0x0e, 2
        POPM      AR1
	.dwcfa	0xc0, 10
	.dwcfa	0x0e, 1
        RET
        ; return occurs

DW$11	.dwtag  DW_TAG_loop
	.dwattr DW$11, DW_AT_name("E:\CCStudio_v3.3\MyProjects\lcd\main.asm:L1:1:1241268510")
	.dwattr DW$11, DW_AT_begin_file("main.c")
	.dwattr DW$11, DW_AT_begin_line(0x09)
	.dwattr DW$11, DW_AT_end_line(0x09)
DW$12	.dwtag  DW_TAG_loop_range
	.dwattr DW$12, DW_AT_low_pc(DW$L$_main$2$B)
	.dwattr DW$12, DW_AT_high_pc(DW$L$_main$2$E)
	.dwendtag DW$11

	.dwattr DW$10, DW_AT_end_file("main.c")
	.dwattr DW$10, DW_AT_end_line(0x2c)
	.dwattr DW$10, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$10

	.sect	".text"
	.global	_timer0

DW$13	.dwtag  DW_TAG_subprogram, DW_AT_name("timer0"), DW_AT_symbol_name("_timer0")
	.dwattr DW$13, DW_AT_low_pc(_timer0)
	.dwattr DW$13, DW_AT_high_pc(0x00)
	.dwattr DW$13, DW_AT_begin_file("main.c")
	.dwattr DW$13, DW_AT_begin_line(0x2e)
	.dwattr DW$13, DW_AT_begin_column(0x11)
	.dwpsn	"main.c",47,1

	.dwfde DW$CIE

;***************************************************************
;* FUNCTION DEF: _timer0                                       *
;***************************************************************
_timer0:
	.dwcfa	0x0e, 1
	.dwcfa	0x80, 34, 1
        PSHM      ST1
        NOP
	.dwcfa	0x0e, 2
	.dwcfa	0x80, 24, 2
        PSHM      PMST
        NOP
	.dwcfa	0x0e, 3
	.dwcfa	0x80, 29, 3
        ANDM      #32063,*(ST1)
        ORM       #16384,*(ST1)
        ANDM      #-4,*(PMST)
        NOP
	.dwcfa	0x0e, 3
	.dwcfa	0x0e, 3
        POPM      PMST
        NOP
	.dwcfa	0xc0, 29
	.dwcfa	0x0e, 2
        POPM      ST1
        NOP
	.dwcfa	0xc0, 24
	.dwcfa	0x0e, 1
        RETE
        ; branch occurs
	.dwattr DW$13, DW_AT_end_file("main.c")
	.dwattr DW$13, DW_AT_end_line(0x31)
	.dwattr DW$13, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$13

;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_lcd_init
	.global	_clearscr1
	.global	_clearscr2
	.global	_clearscr3
	.global	_Smenu

;***************************************************************
;* TYPE INFORMATION                                            *
;***************************************************************

DW$T$19	.dwtag  DW_TAG_subroutine_type
	.dwattr DW$T$19, DW_AT_language(DW_LANG_C)
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(0x01)

DW$T$20	.dwtag  DW_TAG_subroutine_type, DW_AT_type(*DW$T$10)
	.dwattr DW$T$20, DW_AT_language(DW_LANG_C)
DW$14	.dwtag  DW_TAG_ioport_type
	.dwattr DW$14, DW_AT_type(*DW$T$22)
DW$T$23	.dwtag  DW_TAG_volatile_type
	.dwattr DW$T$23, DW_AT_type(*DW$14)
DW$T$22	.dwtag  DW_TAG_typedef, DW_AT_name("Uint16"), DW_AT_type(*DW$T$11)
	.dwattr DW$T$22, 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(0x01)

	.dwattr DW$10, DW_AT_external(0x01)
	.dwattr DW$13, DW_AT_external(0x01)
	.dwattr DW$CU, DW_AT_language(DW_LANG_C)

;***************************************************************
;* DWARF CIE ENTRIES                                           *
;***************************************************************

DW$CIE	.dwcie 1, 34
	.dwcfa	0x0c, 17, 0
	.dwcfa	0x07, 0
	.dwcfa	0x07, 1
	.dwcfa	0x07, 2
	.dwcfa	0x07, 3
	.dwcfa	0x07, 4
	.dwcfa	0x07, 5
	.dwcfa	0x07, 6
	.dwcfa	0x07, 7
	.dwcfa	0x07, 8
	.dwcfa	0x07, 9
	.dwcfa	0x08, 10
	.dwcfa	0x07, 11
	.dwcfa	0x07, 12
	.dwcfa	0x07, 13
	.dwcfa	0x07, 14
	.dwcfa	0x08, 15
	.dwcfa	0x08, 16
	.dwcfa	0x07, 17
	.dwcfa	0x07, 18
	.dwcfa	0x07, 19
	.dwcfa	0x07, 20
	.dwcfa	0x07, 21
	.dwcfa	0x07, 22
	.dwcfa	0x07, 23
	.dwcfa	0x07, 24
	.dwcfa	0x07, 25
	.dwcfa	0x07, 26
	.dwcfa	0x07, 27
	.dwcfa	0x07, 28
	.dwcfa	0x07, 29
	.dwcfa	0x07, 30
	.dwcfa	0x07, 31
	.dwcfa	0x07, 32
	.dwcfa	0x07, 33
	.dwcfa	0x07, 34

;***************************************************************
;* DWARF REGISTER MAP                                          *
;***************************************************************

DW$15	.dwtag  DW_TAG_assign_register, DW_AT_name("A")
	.dwattr DW$15, DW_AT_location[DW_OP_reg0]
DW$16	.dwtag  DW_TAG_assign_register, DW_AT_name("AH")
	.dwattr DW$16, DW_AT_location[DW_OP_reg1]
DW$17	.dwtag  DW_TAG_assign_register, DW_AT_name("AG")
	.dwattr DW$17, DW_AT_location[DW_OP_reg2]
DW$18	.dwtag  DW_TAG_assign_register, DW_AT_name("")
	.dwattr DW$18, DW_AT_location[DW_OP_reg3]
DW$19	.dwtag  DW_TAG_assign_register, DW_AT_name("")
	.dwattr DW$19, DW_AT_location[DW_OP_reg4]
DW$20	.dwtag  DW_TAG_assign_register, DW_AT_name("")
	.dwattr DW$20, DW_AT_location[DW_OP_reg5]
DW$21	.dwtag  DW_TAG_assign_register, DW_AT_name("B")
	.dwattr DW$21, DW_AT_location[DW_OP_reg6]
DW$22	.dwtag  DW_TAG_assign_register, DW_AT_name("BH")
	.dwattr DW$22, DW_AT_location[DW_OP_reg7]
DW$23	.dwtag  DW_TAG_assign_register, DW_AT_name("BG")
	.dwattr DW$23, DW_AT_location[DW_OP_reg8]
DW$24	.dwtag  DW_TAG_assign_register, DW_AT_name("AR0")
	.dwattr DW$24, DW_AT_location[DW_OP_reg9]
DW$25	.dwtag  DW_TAG_assign_register, DW_AT_name("AR1")
	.dwattr DW$25, DW_AT_location[DW_OP_reg10]
DW$26	.dwtag  DW_TAG_assign_register, DW_AT_name("AR2")
	.dwattr DW$26, DW_AT_location[DW_OP_reg11]
DW$27	.dwtag  DW_TAG_assign_register, DW_AT_name("AR3")
	.dwattr DW$27, DW_AT_location[DW_OP_reg12]
DW$28	.dwtag  DW_TAG_assign_register, DW_AT_name("AR4")
	.dwattr DW$28, DW_AT_location[DW_OP_reg13]
DW$29	.dwtag  DW_TAG_assign_register, DW_AT_name("AR5")
	.dwattr DW$29, DW_AT_location[DW_OP_reg14]
DW$30	.dwtag  DW_TAG_assign_register, DW_AT_name("AR6")
	.dwattr DW$30, DW_AT_location[DW_OP_reg15]
DW$31	.dwtag  DW_TAG_assign_register, DW_AT_name("AR7")
	.dwattr DW$31, DW_AT_location[DW_OP_reg16]
DW$32	.dwtag  DW_TAG_assign_register, DW_AT_name("SP")
	.dwattr DW$32, DW_AT_location[DW_OP_reg17]
DW$33	.dwtag  DW_TAG_assign_register, DW_AT_name("FP")
	.dwattr DW$33, DW_AT_location[DW_OP_reg18]
DW$34	.dwtag  DW_TAG_assign_register, DW_AT_name("BK")
	.dwattr DW$34, DW_AT_location[DW_OP_reg19]
DW$35	.dwtag  DW_TAG_assign_register, DW_AT_name("T")
	.dwattr DW$35, DW_AT_location[DW_OP_reg20]
DW$36	.dwtag  DW_TAG_assign_register, DW_AT_name("ASM")
	.dwattr DW$36, DW_AT_location[DW_OP_reg21]
DW$37	.dwtag  DW_TAG_assign_register, DW_AT_name("SXM")
	.dwattr DW$37, DW_AT_location[DW_OP_reg22]
DW$38	.dwtag  DW_TAG_assign_register, DW_AT_name("ST0")
	.dwattr DW$38, DW_AT_location[DW_OP_reg23]
DW$39	.dwtag  DW_TAG_assign_register, DW_AT_name("ST1")
	.dwattr DW$39, DW_AT_location[DW_OP_reg24]
DW$40	.dwtag  DW_TAG_assign_register, DW_AT_name("BRC")
	.dwattr DW$40, DW_AT_location[DW_OP_reg25]
DW$41	.dwtag  DW_TAG_assign_register, DW_AT_name("TC")
	.dwattr DW$41, DW_AT_location[DW_OP_reg26]
DW$42	.dwtag  DW_TAG_assign_register, DW_AT_name("PC")
	.dwattr DW$42, DW_AT_location[DW_OP_reg27]
DW$43	.dwtag  DW_TAG_assign_register, DW_AT_name("DB")
	.dwattr DW$43, DW_AT_location[DW_OP_reg28]
DW$44	.dwtag  DW_TAG_assign_register, DW_AT_name("PMST")
	.dwattr DW$44, DW_AT_location[DW_OP_reg29]
DW$45	.dwtag  DW_TAG_assign_register, DW_AT_name("RSA")
	.dwattr DW$45, DW_AT_location[DW_OP_reg30]
DW$46	.dwtag  DW_TAG_assign_register, DW_AT_name("REA")
	.dwattr DW$46, DW_AT_location[DW_OP_reg31]
DW$47	.dwtag  DW_TAG_assign_register, DW_AT_name("OVM")
	.dwattr DW$47, DW_AT_location[DW_OP_regx 0x20]
DW$48	.dwtag  DW_TAG_assign_register, DW_AT_name("FRCT")
	.dwattr DW$48, DW_AT_location[DW_OP_regx 0x21]
DW$49	.dwtag  DW_TAG_assign_register, DW_AT_name("CIE_RETA")
	.dwattr DW$49, DW_AT_location[DW_OP_regx 0x22]
	.dwendtag DW$CU

⌨️ 快捷键说明

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