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

📄 bench.s79

📁 ARM入门的好帮手.包含了从简单到相对较复杂的程序.
💻 S79
字号:
        NAME bench

        RTMODEL "__code_model", "small"
        RTMODEL "__cpu_mode", "arm"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "2"
        RTMODEL "__thumb_aware", "enabled"

        RSEG CSTACK:DATA:NOROOT(2)
        RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(0)

        EXTERN at91_pio_open
        FUNCTION at91_pio_open,0202H
        EXTERN at91_pio_write
        FUNCTION at91_pio_write,0202H
        EXTERN at91_baud_com
        FUNCTION at91_baud_com,0202H
        EXTERN at91_open_com
        FUNCTION at91_open_com,0202H
        EXTERN at91_print
        FUNCTION at91_print,0202H
        EXTERN at91_print_frame
        FUNCTION at91_print_frame,0202H
        EXTERN at91_pio_read
        FUNCTION at91_pio_read,0202H
        EXTERN at91_tc_open_count
        FUNCTION at91_tc_open_count,0202H
        EXTERN at91_tc_start
        FUNCTION at91_tc_start,0202H
        EXTERN at91_tc_stop
        FUNCTION at91_tc_stop,0202H
        EXTERN sprintf
        FUNCTION sprintf,010202H
        EXTERN testloop
        FUNCTION testloop,0202H
        EXTERN USART0_DESC
        EXTERN TCB_DESC
        EXTERN PIO_DESC

        PUBWEAK ?init?tab?HUGE_Z
        PUBLIC COM
        PUBLIC main
        FUNCTION main,0a03H
        LOCFRAME CSTACK, 28, STACK
        PUBLIC message
        PUBLIC result
        PUBLIC result_out

        RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(0)
message:
	DS8 512

        RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
COM:
	DS8 8

        RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
atmel_header:
	DC8 0AH, 0DH, 20H, 20H, 20H, 20H, 2AH, 2AH
	DC8 2AH, 20H, 41H, 54H, 4DH, 45H, 4CH, 20H
	DC8 55H, 53H, 41H, 52H, 54H, 20H, 42H, 45H
	DC8 4EH, 43H, 48H, 4DH, 41H, 52H, 4BH, 20H
	DC8 2AH, 2AH, 2AH, 0AH, 0DH, 43H, 6FH, 70H
	DC8 79H, 72H, 69H, 67H, 68H, 74H, 20H, 28H
	DC8 43H, 29H, 20H, 32H, 30H, 30H, 31H, 20H
	DC8 41H, 54H, 4DH, 45H, 4CH, 20H, 56H, 65H
	DC8 72H, 73H, 69H, 6FH, 6EH, 20H, 31H, 2EH
	DC8 30H, 0AH, 0DH, 0

        RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "** Mearsure **\\n\\r">`:
	DC8 "** Mearsure **\012\015"

        RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "- Out test %d \\n\\r">`:
	DC8 "- Out test %d \012\015"

        RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "- cmpt++ test total:%...">`:
	DC8 "- cmpt++ test total:%d test:%d\012\015"

        RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "- testloop  total %d ...">`:
	DC8 "- testloop  total %d testloop %d\012\015"

        RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
result_out:
	DS8 4

        RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
result:
	DS8 4

        RSEG NEARFUNC_A:CODE:NOROOT(2)
        
        CFI Names cfiNames0
        CFI StackFrame CFA SP HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, SP:32, LR:32
        CFI VirtualResource RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 4
        CFI DataAlign 4
        CFI ReturnAddress RET CODE
        CFI CFA SP+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI LR Undefined
        CFI RET LR
        CFI EndCommon cfiCommon0
        
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function main
   CODE32   
main:
   STMDB    SP!,{R4,LR}        ;; Push
        CFI RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA SP+8
   MOV      R2,#+0x1
   MOV      R1,#+0x16
   LDR      R0,??main_0+36     ;; #PIO_DESC
   BL       at91_pio_open
   MOV      R2,#+0x1
   MOV      R1,#+0x16
   LDR      R0,??main_0+36     ;; #PIO_DESC
   BL       at91_pio_write
   MOV      R2,#+0x0
   MOV      R1,#+0x220
   ADD      R1,R1,#+0x1000
   LDR      R0,??main_0+36     ;; #PIO_DESC
   BL       at91_pio_open
   LDR      R0,??main_0        ;; #USART0_DESC
   LDR      R1,??main_0+32     ;; #COM
   STR      R0,[R1, #+0]
   MOV      R1,#+0x9600
   MOV      R0,#+0x1F40000
   BL       at91_baud_com
   MOV      R2,R0
   MOV      R1,#+0x8C0
   LDR      R0,??main_0+32     ;; #COM
   BL       at91_open_com
   LDR      R1,??main_0+28     ;; #message
   LDR      R0,??main_0+32     ;; #COM
   BL       at91_print
   MOV      R2,#+0x4C
   LDR      R1,??main_0+4      ;; #atmel_header
   LDR      R0,??main_0+32     ;; #COM
   BL       at91_print_frame
??main_1:
   LDR      R0,??main_0+36     ;; #PIO_DESC
   BL       at91_pio_read
   MOV      R0,R0, LSL #+16
   MOV      R0,R0, LSR #+16
   AND      R0,R0,#+0x200
   CMP      R0,#+0x200
   BNE      ??main_1
   LDR      R1,??main_0+8      ;; #`?<Constant "** Mearsure **\\n\\r">`
   LDR      R0,??main_0+32     ;; #COM
   BL       at91_print
   MOV      R2,#+0x0
   MOV      R1,#+0x2
   LDR      R0,??main_0+36     ;; #PIO_DESC
   BL       at91_pio_write
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_open_count
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_start
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_stop
   MOV      R4,R0
   STMDB    SP!,{R4}           ;; Push
        CFI CFA SP+12
   LDR      R1,??main_0+12     ;; #`?<Constant "- Out test %d \\n\\r">`
   LDR      R0,??main_0+28     ;; #message
   BL       sprintf
   LDR      R1,??main_0+28     ;; #message
   LDR      R0,??main_0+32     ;; #COM
   BL       at91_print
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_open_count
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_start
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_stop
   SUB      R1,R0,R4
   STMDB    SP!,{R0,R1}        ;; Push
        CFI CFA SP+20
   LDR      R1,??main_0+16     ;; #`?<Constant "- cmpt++ test total:%...">`
   LDR      R0,??main_0+28     ;; #message
   BL       sprintf
   LDR      R1,??main_0+28     ;; #message
   LDR      R0,??main_0+32     ;; #COM
   BL       at91_print
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_open_count
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_start
   MOV      R0,#+0x710
   ADD      R0,R0,#+0x2000
   BL       testloop
   LDR      R0,??main_0+20     ;; #TCB_DESC
   BL       at91_tc_stop
   SUB      R1,R0,R4
   STMDB    SP!,{R0,R1}        ;; Push
        CFI CFA SP+28
   LDR      R1,??main_0+24     ;; #`?<Constant "- testloop  total %d ...">`
   LDR      R0,??main_0+28     ;; #message
   BL       sprintf
   LDR      R1,??main_0+28     ;; #message
   LDR      R0,??main_0+32     ;; #COM
   BL       at91_print
   MOV      R2,#+0x1
   MOV      R1,#+0x2
   LDR      R0,??main_0+36     ;; #PIO_DESC
   BL       at91_pio_write
   ADD      SP,SP,#+0x14       ;; stack cleaning
        CFI CFA SP+8
   B        ??main_1
   DATA     
??main_0:
   DC32     USART0_DESC
   DC32     atmel_header
   DC32     `?<Constant "** Mearsure **\\n\\r">`
   DC32     `?<Constant "- Out test %d \\n\\r">`
   DC32     `?<Constant "- cmpt++ test total:%...">`
   DC32     TCB_DESC
   DC32     `?<Constant "- testloop  total %d ...">`
   DC32     message
   DC32     COM
   DC32     PIO_DESC
        CFI EndBlock cfiBlock0

        RSEG INITTAB:CODE:ROOT(2)
?init?tab?HUGE_Z:
   DCD      sfe(HUGE_Z) - sfb(HUGE_Z), sfb(HUGE_Z), sfb(HUGE_Z)

        END
; 
; 178 bytes in segment HUGE_C    
; 528 bytes in segment HUGE_Z    
;  12 bytes in segment INITTAB   
; 424 bytes in segment NEARFUNC_A
; 
; 424 bytes of CODE      memory (+ 12 bytes shared)
; 178 bytes of HUGECONST memory
; 528 bytes of HUGEDATA  memory
;
;Errors: none
;Warnings: none

⌨️ 快捷键说明

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