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.

You are allowed to use ONLY the instructions below:

1. LDR

2. MOV

3. CMP

4. BEQ

5. CLZ

6. ADD

7. LSL

8. BNE

You may use Keil ARM documentation to learn about any of the instructions listed above.

http://www.keil.com/support/man/docs/armasm/armasm_dom1361289850039.htm

Results:

Hexadecimal: 0x2345ABCD

Decimal: 591,768,525

Binary: 10 0011 0100 0101 1010 1011 1100 1101

The expected result will be 16 [Count # of 1 in the Binary Value above]

R1 should be 0x00000010

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!