FIX THIS ARM 32 Bit CORTEX M4 ASSEMBLY CODE BELOW ERRORS IDENTIFIED ON KEIL Uvision ;************************************************************************** AREA RESET, DATA, READONLY EXPORT __Vectors __Vectors DCD 0x20001000 DCD Reset_Handler ; reset vector ALIGN AREA PROGRAM, CODE, READONLY ENTRY EXPORT Reset_Handler Reset_Handler ;---------------------------------------------------------- ;This program; ;a) to accept a sentence in variable str1 ;b) In the main section call two functions strlen and wordcount ;c. In strlen function find the length of string and store in variable len. ;d. In wordcount function count the number of words in the sentence and store in in variable wcount. main LDR R0, =str1 ; Setup parameters BL strlen ; call subrouting LDR R0, #str1 BL wordcount B exit strlen MOV R1,#0 loop1 LDRB R2,[R0] CMP R2,#0 BEQ done1 ADD R1,R1,#1 ADD R0,R0,#1 B loop1 done1 MOV R0,#len STR R1,[R0] BX LR; return from subroutine wordcount MOV R1, #0 MOV R2, #0 loop2 LDRB R3, [R0] CMP R3, #0 BEQ done2 CMP R3, #32 BEQ wordspace ADD R2, R2, #1 B nospace wordspace CMP R2,#0 BEQ loop2 ADD R1,R1,#1 MOV R2, #0 B loop2 done2 MOV R0, #wcount STR R1, [R0] BX LR ; return from subroutine Exit MOV R0, #0 MOV R15, R0 Stop B Stop ;--------------------------------------------------------- END
FIX THIS ARM 32 Bit CORTEX M4 ASSEMBLY CODE BELOW ERRORS IDENTIFIED ON KEIL Uvision
;**************************************************************************
AREA RESET, DATA, READONLY
EXPORT __Vectors
__Vectors
DCD 0x20001000
DCD Reset_Handler ; reset
ALIGN
AREA PROGRAM, CODE, READONLY
ENTRY
EXPORT Reset_Handler
Reset_Handler
;----------------------------------------------------------
;This program;
;a) to accept a sentence in variable str1
;b) In the main section call two functions strlen and wordcount
;c. In strlen function find the length of string and store in variable len.
;d. In wordcount function count the number of words in the sentence and store in in variable wcount.
main LDR R0, =str1 ; Setup parameters
BL strlen ; call subrouting
LDR R0, #str1
BL wordcount
B exit
strlen
MOV R1,#0
loop1
LDRB R2,[R0]
CMP R2,#0
BEQ done1
ADD R1,R1,#1
ADD R0,R0,#1
B loop1
done1
MOV R0,#len
STR R1,[R0]
BX LR; return from subroutine
wordcount
MOV R1, #0
MOV R2, #0
loop2
LDRB R3, [R0]
CMP R3, #0
BEQ done2
CMP R3, #32
BEQ wordspace
ADD R2, R2, #1
B nospace
wordspace
CMP R2,#0
BEQ loop2
ADD R1,R1,#1
MOV R2, #0
B loop2
done2
MOV R0, #wcount
STR R1, [R0]
BX LR ; return from subroutine
Exit
MOV R0, #0
MOV R15, R0
Stop B Stop
;---------------------------------------------------------
END
Trending now
This is a popular solution!
Step by step
Solved in 3 steps