
program 4 code
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
assembly.s@5:c6b7bdcadcd4, 2020-12-05 (annotated)
- 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?
User | Revision | Line number | New 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 |