
This is program 4
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
Diff: PROGRAM4_F20_Harrison.s
- Revision:
- 3:2ec663c724ea
- Parent:
- 2:a38c09fad0fe
- Child:
- 4:febba9dd921b
--- a/PROGRAM4_F20_Harrison.s Mon Dec 07 04:03:14 2020 +0000 +++ b/PROGRAM4_F20_Harrison.s Mon Dec 07 18:45:28 2020 +0000 @@ -4,45 +4,43 @@ ;int32_t CountItems() CountItems ; get max num of words - MOV R4, #0 ; track num of words - ADR R1, table ; get address of beginning of table - LDR R2, [R1] ; get value at address of beginning of table - MOV R3, #12 ; use to move to next word in table + MOV R0, #0 ; track num of words + LDR R1,= table ; get address of beginning of table + MOV R3, #14 ; use to move to next word in table + LDR R2, [R1, R3] ; move R3 num of bytes in the table B getWordCount getWordCount CMP R2, #0 ; compare value in table to 0 BEQ leave1 - ADD R4, R4, #1 ; add 1 to num of words + ADD R0, R0, #1 ; add 1 to num of words LDR R2, [R1, R3] ; move R3 num of bytes in the table - ADD R3, R3, #12 ; add 12 bytes to R3 + ADD R3, R3, #14 ; add 14 bytes to R3 B getWordCount ; loop back -leave1 - MOV R0, R4 +leave1 BX LR GLOBAL SumAllFrequencies ;int32_t SumAllFrequencies() SumAllFrequencies - MOV R4, #0 ; track frequency num - ADR R1, table ; get address of beginning of table - MOV R3, #8 ; use 8 to account for word being first in table - LDR R2, [R1, R3] ; get value where first frequency is stored in table - ADD R3, R3, #12 ; use to move to next frequency in table + MOV R0, #0 ; track frequency num + LDR R1,= table ; get address of beginning of table + MOV R3, #12 ; use 12 to account for word being first in table + LDRH R2, [R1, R3] ; get value where first frequency is stored in table + ADD R3, R3, #14 B getFrequencyCount getFrequencyCount CMP R2, #0 ; compare value in table to 0 BEQ leave ; break because looped through entire table - ADD R4, R4, R2 ; add current frequency to total frequency - LDR R2, [R1, R3] ; move R3 num of bytes in the table - ADD R3, R3, #12 ; add 12 bytes to R3 + ADD R0, R0, R2 ; add current frequency to total frequency + LDRH R2, [R1, R3] ; move R3 num of bytes in the table + ADD R3, R3, #14 ; add 14 bytes to R3 B getFrequencyCount ; loop back leave - MOV R0, R4 BX LR GLOBAL GetWordAt @@ -52,14 +50,14 @@ MOV R1, #1 ADR R2, table ; get address of beginning of table LDR R3, [R2] ; get value at address of beginning of table - MOV R4, #12 ; use to move to next word in table + MOV R4, #14 ; use to move to next word in table B findWord findWord CMP R1, R0 ; compare 1 to i BEQ wordFound ; break because word found LDR R3, [R2, R4] ; move R4 num of bytes in table - ADD R4, R4, #12 ; add 12 bytes to R3 + ADD R4, R4, #14 ; add 14 bytes to R3 ADD R1, R1, #1 B findWord @@ -90,23 +88,23 @@ MOV R0, R4 BX LR -stop B stop - + ALIGN table DCB "pie",0 - SPACE 4 + SPACE 8 DCW 34 - SPACE 2 + DCB "cake",0 - SPACE 3 + SPACE 7 DCW 29 - SPACE 2 + DCB "souffle",0 + SPACE 4 DCW 22 - SPACE 2 + DCB "cookie",0 - SPACE 1 + SPACE 5 DCW 15 - SPACE 2 + DCB 0 END \ No newline at end of file