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

📄 crc16.asm

📁 单个表头的显示 运用了MAX7219驱动芯片
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	.dwattr DW$3, DW_AT_begin_column(0x0e)
	.dwpsn	"CRC16.c",47,1

	.dwfde DW$CIE

;***************************************************************
;* FNAME: _CRC16                        FR SIZE:   6           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  6 Auto,  0 SOE     *
;***************************************************************

_CRC16:
	.dwcfa	0x1d, -2
	.dwcfa	0x1c, 26, 0
	.dwcfa	0x09, 40, 26
        ADDB      SP,#6
	.dwcfa	0x1d, -8
;* AR4   assigned to _puchMsg
DW$4	.dwtag  DW_TAG_formal_parameter, DW_AT_name("puchMsg"), DW_AT_symbol_name("_puchMsg")
	.dwattr DW$4, DW_AT_type(*DW$T$19)
	.dwattr DW$4, DW_AT_location[DW_OP_reg12]
;* AL    assigned to _usDataLen
DW$5	.dwtag  DW_TAG_formal_parameter, DW_AT_name("usDataLen"), DW_AT_symbol_name("_usDataLen")
	.dwattr DW$5, DW_AT_type(*DW$T$11)
	.dwattr DW$5, DW_AT_location[DW_OP_reg0]
DW$6	.dwtag  DW_TAG_variable, DW_AT_name("puchMsg"), DW_AT_symbol_name("_puchMsg")
	.dwattr DW$6, DW_AT_type(*DW$T$19)
	.dwattr DW$6, DW_AT_location[DW_OP_breg20 -2]
DW$7	.dwtag  DW_TAG_variable, DW_AT_name("usDataLen"), DW_AT_symbol_name("_usDataLen")
	.dwattr DW$7, DW_AT_type(*DW$T$11)
	.dwattr DW$7, DW_AT_location[DW_OP_breg20 -3]
DW$8	.dwtag  DW_TAG_variable, DW_AT_name("uchCRCHi"), DW_AT_symbol_name("_uchCRCHi")
	.dwattr DW$8, DW_AT_type(*DW$T$6)
	.dwattr DW$8, DW_AT_location[DW_OP_breg20 -4]
DW$9	.dwtag  DW_TAG_variable, DW_AT_name("uchCRCLo"), DW_AT_symbol_name("_uchCRCLo")
	.dwattr DW$9, DW_AT_type(*DW$T$6)
	.dwattr DW$9, DW_AT_location[DW_OP_breg20 -5]
DW$10	.dwtag  DW_TAG_variable, DW_AT_name("uIndex"), DW_AT_symbol_name("_uIndex")
	.dwattr DW$10, DW_AT_type(*DW$T$11)
	.dwattr DW$10, DW_AT_location[DW_OP_breg20 -6]
        MOV       *-SP[3],AL            ; |47| 
        MOVL      *-SP[2],XAR4          ; |47| 
	.dwpsn	"CRC16.c",48,19
        MOVB      AL,#255               ; |48| 
        MOV       *-SP[4],AL            ; |48| 
	.dwpsn	"CRC16.c",49,19
        MOV       *-SP[5],AL            ; |49| 
	.dwpsn	"CRC16.c",51,5
        MOV       AH,*-SP[3]            ; |51| 
        DEC       *-SP[3]               ; |51| 
        CMPB      AH,#0                 ; |51| 
        BF        L2,EQ                 ; |51| 
        ; branchcc occurs ; |51| 
L1:    
DW$L$_CRC16$2$B:
	.dwpsn	"CRC16.c",53,9
        MOVL      XAR4,*-SP[2]          ; |53| 
        MOV       AL,*XAR4++            ; |53| 
        ANDB      AL,#255               ; |53| 
        MOVL      *-SP[2],XAR4          ; |53| 
        XOR       AL,*-SP[4]            ; |53| 
        MOV       *-SP[6],AL            ; |53| 
	.dwpsn	"CRC16.c",54,9
        MOVZ      AR0,*-SP[6]           ; |54| 
        MOVL      XAR4,#_auchCRCHi      ; |54| 
        MOV       AL,*+XAR4[AR0]        ; |54| 
        XOR       AL,*-SP[5]            ; |54| 
        MOV       *-SP[4],AL            ; |54| 
	.dwpsn	"CRC16.c",55,9
        MOVZ      AR0,*-SP[6]           ; |55| 
        MOVL      XAR4,#_auchCRCLo      ; |55| 
        MOV       AL,*+XAR4[AR0]        ; |55| 
        MOV       *-SP[5],AL            ; |55| 
	.dwpsn	"CRC16.c",56,5
        MOV       AH,*-SP[3]            ; |56| 
        DEC       *-SP[3]               ; |56| 
        CMPB      AH,#0                 ; |56| 
        BF        L1,NEQ                ; |56| 
        ; branchcc occurs ; |56| 
DW$L$_CRC16$2$E:
L2:    
	.dwpsn	"CRC16.c",57,5
        MOV       ACC,*-SP[4] << #8     ; |57| 
        OR        AL,*-SP[5]            ; |57| 
	.dwpsn	"CRC16.c",58,1
        SUBB      SP,#6                 ; |57| 
	.dwcfa	0x1d, -2
        LRETR
        ; return occurs

DW$11	.dwtag  DW_TAG_loop
	.dwattr DW$11, DW_AT_name("F:\DISP_081009\CRC16.asm:L1:1:1223625711")
	.dwattr DW$11, DW_AT_begin_file("CRC16.c")
	.dwattr DW$11, DW_AT_begin_line(0x33)
	.dwattr DW$11, DW_AT_end_line(0x38)
DW$12	.dwtag  DW_TAG_loop_range
	.dwattr DW$12, DW_AT_low_pc(DW$L$_CRC16$2$B)
	.dwattr DW$12, DW_AT_high_pc(DW$L$_CRC16$2$E)
	.dwendtag DW$11

	.dwattr DW$3, DW_AT_end_file("CRC16.c")
	.dwattr DW$3, DW_AT_end_line(0x3a)
	.dwattr DW$3, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$3


;***************************************************************
;* TYPE INFORMATION                                            *
;***************************************************************
DW$T$6	.dwtag  DW_TAG_base_type, DW_AT_name("unsigned char")
	.dwattr DW$T$6, DW_AT_encoding(DW_ATE_unsigned_char)
	.dwattr DW$T$6, DW_AT_byte_size(0x01)
DW$T$19	.dwtag  DW_TAG_pointer_type, DW_AT_type(*DW$T$6)
	.dwattr DW$T$19, DW_AT_address_class(0x16)

DW$T$20	.dwtag  DW_TAG_array_type, DW_AT_type(*DW$T$6)
	.dwattr DW$T$20, DW_AT_language(DW_LANG_C)
	.dwattr DW$T$20, DW_AT_byte_size(0x100)
DW$13	.dwtag  DW_TAG_subrange_type
	.dwattr DW$13, DW_AT_upper_bound(0xff)
	.dwendtag DW$T$20

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)

DW$T$21	.dwtag  DW_TAG_subroutine_type, DW_AT_type(*DW$T$11)
	.dwattr DW$T$21, DW_AT_language(DW_LANG_C)
DW$14	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$19)
DW$15	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$11)
	.dwendtag DW$T$21


	.dwattr DW$3, DW_AT_external(0x01)
	.dwattr DW$3, DW_AT_type(*DW$T$11)
	.dwattr DW$CU, DW_AT_language(DW_LANG_C)

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

DW$CIE	.dwcie 1, 40
	.dwcfa	0x0c, 20, 0
	.dwcfa	0x07, 0
	.dwcfa	0x07, 1
	.dwcfa	0x07, 2
	.dwcfa	0x07, 3
	.dwcfa	0x07, 4
	.dwcfa	0x07, 5
	.dwcfa	0x08, 6
	.dwcfa	0x08, 7
	.dwcfa	0x08, 8
	.dwcfa	0x08, 9
	.dwcfa	0x08, 10
	.dwcfa	0x08, 11
	.dwcfa	0x07, 12
	.dwcfa	0x07, 13
	.dwcfa	0x07, 14
	.dwcfa	0x07, 15
	.dwcfa	0x07, 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	0x08, 27
	.dwcfa	0x07, 28
	.dwcfa	0x07, 29
	.dwcfa	0x07, 30
	.dwcfa	0x07, 31
	.dwcfa	0x07, 32
	.dwcfa	0x07, 33
	.dwcfa	0x07, 34
	.dwcfa	0x07, 35
	.dwcfa	0x07, 36
	.dwcfa	0x07, 37
	.dwcfa	0x07, 38
	.dwcfa	0x07, 39
	.dwcfa	0x07, 40

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

DW$16	.dwtag  DW_TAG_assign_register, DW_AT_name("AL")
	.dwattr DW$16, DW_AT_location[DW_OP_reg0]
DW$17	.dwtag  DW_TAG_assign_register, DW_AT_name("AH")
	.dwattr DW$17, DW_AT_location[DW_OP_reg1]
DW$18	.dwtag  DW_TAG_assign_register, DW_AT_name("PL")
	.dwattr DW$18, DW_AT_location[DW_OP_reg2]
DW$19	.dwtag  DW_TAG_assign_register, DW_AT_name("PH")
	.dwattr DW$19, DW_AT_location[DW_OP_reg3]
DW$20	.dwtag  DW_TAG_assign_register, DW_AT_name("AR0")
	.dwattr DW$20, DW_AT_location[DW_OP_reg4]
DW$21	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR0")
	.dwattr DW$21, DW_AT_location[DW_OP_reg5]
DW$22	.dwtag  DW_TAG_assign_register, DW_AT_name("AR1")
	.dwattr DW$22, DW_AT_location[DW_OP_reg6]
DW$23	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR1")
	.dwattr DW$23, DW_AT_location[DW_OP_reg7]
DW$24	.dwtag  DW_TAG_assign_register, DW_AT_name("AR2")
	.dwattr DW$24, DW_AT_location[DW_OP_reg8]
DW$25	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR2")
	.dwattr DW$25, DW_AT_location[DW_OP_reg9]
DW$26	.dwtag  DW_TAG_assign_register, DW_AT_name("AR3")
	.dwattr DW$26, DW_AT_location[DW_OP_reg10]
DW$27	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR3")
	.dwattr DW$27, DW_AT_location[DW_OP_reg11]
DW$28	.dwtag  DW_TAG_assign_register, DW_AT_name("AR4")
	.dwattr DW$28, DW_AT_location[DW_OP_reg12]
DW$29	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR4")
	.dwattr DW$29, DW_AT_location[DW_OP_reg13]
DW$30	.dwtag  DW_TAG_assign_register, DW_AT_name("AR5")
	.dwattr DW$30, DW_AT_location[DW_OP_reg14]
DW$31	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR5")
	.dwattr DW$31, DW_AT_location[DW_OP_reg15]
DW$32	.dwtag  DW_TAG_assign_register, DW_AT_name("AR6")
	.dwattr DW$32, DW_AT_location[DW_OP_reg16]
DW$33	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR6")
	.dwattr DW$33, DW_AT_location[DW_OP_reg17]
DW$34	.dwtag  DW_TAG_assign_register, DW_AT_name("AR7")
	.dwattr DW$34, DW_AT_location[DW_OP_reg18]
DW$35	.dwtag  DW_TAG_assign_register, DW_AT_name("XAR7")
	.dwattr DW$35, DW_AT_location[DW_OP_reg19]
DW$36	.dwtag  DW_TAG_assign_register, DW_AT_name("SP")
	.dwattr DW$36, DW_AT_location[DW_OP_reg20]
DW$37	.dwtag  DW_TAG_assign_register, DW_AT_name("XT")
	.dwattr DW$37, DW_AT_location[DW_OP_reg21]
DW$38	.dwtag  DW_TAG_assign_register, DW_AT_name("T")
	.dwattr DW$38, DW_AT_location[DW_OP_reg22]
DW$39	.dwtag  DW_TAG_assign_register, DW_AT_name("ST0")
	.dwattr DW$39, DW_AT_location[DW_OP_reg23]
DW$40	.dwtag  DW_TAG_assign_register, DW_AT_name("ST1")
	.dwattr DW$40, DW_AT_location[DW_OP_reg24]
DW$41	.dwtag  DW_TAG_assign_register, DW_AT_name("PC")
	.dwattr DW$41, DW_AT_location[DW_OP_reg25]
DW$42	.dwtag  DW_TAG_assign_register, DW_AT_name("RPC")
	.dwattr DW$42, DW_AT_location[DW_OP_reg26]
DW$43	.dwtag  DW_TAG_assign_register, DW_AT_name("FP")
	.dwattr DW$43, DW_AT_location[DW_OP_reg27]
DW$44	.dwtag  DW_TAG_assign_register, DW_AT_name("DP")
	.dwattr DW$44, DW_AT_location[DW_OP_reg28]
DW$45	.dwtag  DW_TAG_assign_register, DW_AT_name("SXM")
	.dwattr DW$45, DW_AT_location[DW_OP_reg29]
DW$46	.dwtag  DW_TAG_assign_register, DW_AT_name("PM")
	.dwattr DW$46, DW_AT_location[DW_OP_reg30]
DW$47	.dwtag  DW_TAG_assign_register, DW_AT_name("OVM")
	.dwattr DW$47, DW_AT_location[DW_OP_reg31]
DW$48	.dwtag  DW_TAG_assign_register, DW_AT_name("PAGE0")
	.dwattr DW$48, DW_AT_location[DW_OP_regx 0x20]
DW$49	.dwtag  DW_TAG_assign_register, DW_AT_name("AMODE")
	.dwattr DW$49, DW_AT_location[DW_OP_regx 0x21]
DW$50	.dwtag  DW_TAG_assign_register, DW_AT_name("IFR")
	.dwattr DW$50, DW_AT_location[DW_OP_regx 0x22]
DW$51	.dwtag  DW_TAG_assign_register, DW_AT_name("IER")
	.dwattr DW$51, DW_AT_location[DW_OP_regx 0x23]
DW$52	.dwtag  DW_TAG_assign_register, DW_AT_name("IER")
	.dwattr DW$52, DW_AT_location[DW_OP_regx 0x24]
DW$53	.dwtag  DW_TAG_assign_register, DW_AT_name("PSEUDO")
	.dwattr DW$53, DW_AT_location[DW_OP_regx 0x25]
DW$54	.dwtag  DW_TAG_assign_register, DW_AT_name("PSEUDOH")
	.dwattr DW$54, DW_AT_location[DW_OP_regx 0x26]
DW$55	.dwtag  DW_TAG_assign_register, DW_AT_name("VOL")
	.dwattr DW$55, DW_AT_location[DW_OP_regx 0x27]
DW$56	.dwtag  DW_TAG_assign_register, DW_AT_name("CIE_RETA")
	.dwattr DW$56, DW_AT_location[DW_OP_regx 0x28]
	.dwendtag DW$CU

⌨️ 快捷键说明

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