Question: Write an ARM assembly language program that counts the number of 1s for any value in R0. The program must assemble/compile in KEIL and must

Write an ARM assembly language program that counts the number of 1s for any value in R0. The program must assemble/compile in KEIL and must be able to run in the KEIL simulator. Generally, R0 may contain any value, but for purpose of this exercise, you may move 0x2345ABCD into R0. The number in R0 does not need be preserved. You may use any other registers as you need. The result, total count of 1s in R0, should be in R1 when the program ends.

I've done this before successfully, however we now have a new list of commands that are the only ones we're allowed to use. The list is as follows:

1. LDR[*]

2. MOV[*]

3. B[*]

4. ADC[*]

5. LSR[*]

What does [*] means? This means that you may use any combination of the given instruction. Example: LDR[*] means that you may use LDR or LDRLE or LDREQ or LDRS or any other combinations.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!