program 4 code

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Committer:
edwardjiang
Date:
Sat Dec 05 23:13:03 2020 +0000
Revision:
5:c6b7bdcadcd4
Parent:
4:60bddeca288c
new code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edwardjiang 0:84dbe22c269c 1 AREA Bits, CODE, READONLY
edwardjiang 2:2cfdd07ab939 2 ENTRY
edwardjiang 0:84dbe22c269c 3
edwardjiang 0:84dbe22c269c 4 GLOBAL getMax
edwardjiang 4:60bddeca288c 5
edwardjiang 1:551c68b9547b 6 getMax MOV R0,#0
edwardjiang 5:c6b7bdcadcd4 7 ADR R1, table
edwardjiang 4:60bddeca288c 8 MOV R2,#8
edwardjiang 4:60bddeca288c 9 MOV R5, #0
edwardjiang 4:60bddeca288c 10 MUL R3, R5,R2
edwardjiang 4:60bddeca288c 11 LDRSH R4, [R1,R3]
edwardjiang 4:60bddeca288c 12 //this code counts size by counting nonzero frequencies
edwardjiang 4:60bddeca288c 13 //it will not run on keil because of different memory alignment
edwardjiang 4:60bddeca288c 14 //painful lesson
edwardjiang 4:60bddeca288c 15
edwardjiang 4:60bddeca288c 16 loop CMP R4, #0
edwardjiang 4:60bddeca288c 17 BEQ quit
edwardjiang 4:60bddeca288c 18 ADDNE R0,R0,#1
edwardjiang 0:84dbe22c269c 19
edwardjiang 4:60bddeca288c 20 ADD R5,R5,#1
edwardjiang 4:60bddeca288c 21 MUL R3, R5,R2
edwardjiang 4:60bddeca288c 22 LDRSH R4, [R1,R3]
edwardjiang 4:60bddeca288c 23
edwardjiang 0:84dbe22c269c 24 B loop
edwardjiang 4:60bddeca288c 25
edwardjiang 2:2cfdd07ab939 26
edwardjiang 4:60bddeca288c 27
edwardjiang 4:60bddeca288c 28
edwardjiang 5:c6b7bdcadcd4 29 GLOBAL getTotFreq
edwardjiang 4:60bddeca288c 30 getTotFreq MOV R0, #0
edwardjiang 5:c6b7bdcadcd4 31 ADR R1, table
edwardjiang 5:c6b7bdcadcd4 32 MOV R2,#8
edwardjiang 5:c6b7bdcadcd4 33 MOV R5, #1
edwardjiang 5:c6b7bdcadcd4 34 MUL R3, R2,R5
edwardjiang 5:c6b7bdcadcd4 35 SUB R3, R3,#1
edwardjiang 5:c6b7bdcadcd4 36 LDRSH R4, [R1,R3]
edwardjiang 4:60bddeca288c 37
edwardjiang 4:60bddeca288c 38 freqloop CMP R4, #0
edwardjiang 4:60bddeca288c 39 BXEQ LR
edwardjiang 5:c6b7bdcadcd4 40
edwardjiang 4:60bddeca288c 41 ADD R0,R0, R4
edwardjiang 4:60bddeca288c 42 ADD R5,R5,#1
edwardjiang 4:60bddeca288c 43 MUL R3, R2,R5
edwardjiang 4:60bddeca288c 44 SUB R3, R3,#1
edwardjiang 4:60bddeca288c 45 LDRSH R4, [R1,R3]
edwardjiang 4:60bddeca288c 46 B freqloop
edwardjiang 4:60bddeca288c 47
edwardjiang 4:60bddeca288c 48
edwardjiang 0:84dbe22c269c 49
edwardjiang 1:551c68b9547b 50
edwardjiang 3:c8f1a16767f2 51 GLOBAL GetFreqAt
edwardjiang 4:60bddeca288c 52 GetFreqAt ADD R0,R0,#1
edwardjiang 4:60bddeca288c 53 MOV R2, #8
edwardjiang 4:60bddeca288c 54 ADR R1, table
edwardjiang 4:60bddeca288c 55 MUL R3, R2,R0
edwardjiang 4:60bddeca288c 56 SUB R3,R3,#1
edwardjiang 4:60bddeca288c 57 LDRSH R0, [R1,R3]
edwardjiang 4:60bddeca288c 58 BX LR
edwardjiang 4:60bddeca288c 59
edwardjiang 4:60bddeca288c 60 GLOBAL GetWordAt
edwardjiang 5:c6b7bdcadcd4 61 GetWordAt ADR R1, table
edwardjiang 5:c6b7bdcadcd4 62 MOV R2,#8
edwardjiang 5:c6b7bdcadcd4 63 MUL R3, R0,R2
edwardjiang 5:c6b7bdcadcd4 64 LDRSB R0, [R1,R3]
edwardjiang 5:c6b7bdcadcd4 65 BX LR
edwardjiang 5:c6b7bdcadcd4 66
edwardjiang 4:60bddeca288c 67
edwardjiang 3:c8f1a16767f2 68 quit BX LR
edwardjiang 5:c6b7bdcadcd4 69
edwardjiang 5:c6b7bdcadcd4 70 stop B stop
edwardjiang 0:84dbe22c269c 71
edwardjiang 0:84dbe22c269c 72 table DCB "pears",0
edwardjiang 0:84dbe22c269c 73 DCW 8
edwardjiang 0:84dbe22c269c 74
edwardjiang 4:60bddeca288c 75 DCB "apple",0
edwardjiang 0:84dbe22c269c 76 DCW 16
edwardjiang 0:84dbe22c269c 77
edwardjiang 0:84dbe22c269c 78 DCB "fries",0
edwardjiang 4:60bddeca288c 79 DCW 30
edwardjiang 0:84dbe22c269c 80
edwardjiang 0:84dbe22c269c 81 DCB "beans",0
edwardjiang 0:84dbe22c269c 82 DCW 12
edwardjiang 4:60bddeca288c 83
edwardjiang 0:84dbe22c269c 84 DCB 0
edwardjiang 0:84dbe22c269c 85
edwardjiang 4:60bddeca288c 86
edwardjiang 0:84dbe22c269c 87 END