Question

ARM Assignment Goals: Initialize register X, Y, and Z to zero. Loop 10 times, each time...

ARM Assignment

Goals:

Initialize register X, Y, and Z to zero.

Loop 10 times, each time adding 1 to register X.

If register X is even, add one to register Y.

If register X is divisible by 3, add one to register Z.

Result:

Register X at 10.

Register Y at 5.

Register Z at 3 or 4 (depending on when you increment your counter).

0 0
Add a comment Improve this question Transcribed image text
Answer #1

ARM64 GCC 5.4 CODE

main:

sub sp, sp, #16

str wzr, [sp, 12]

str wzr, [sp, 8]

str wzr, [sp, 4]

.L5:

ldr w0, [sp, 12]

cmp w0, 9

bgt .L2

ldr w0, [sp, 12]

and w0, w0, 1

cmp w0, wzr

bne .L3

ldr w0, [sp, 8]

add w0, w0, 1

str w0, [sp, 8]

.L3:

ldr w2, [sp, 12]

mov w0, 21846

movk w0, 0x5555, lsl 16

smull x0, w2, w0

lsr x1, x0, 32

asr w0, w2, 31

sub w1, w1, w0

mov w0, w1

lsl w0, w0, 2

sub w0, w0, w1

sub w1, w2, w0

cmp w1, wzr

bne .L4

ldr w0, [sp, 4]

add w0, w0, 1

str w0, [sp, 4]

.L4:

ldr w0, [sp, 12]

add w0, w0, 1

str w0, [sp, 12]

b .L5

.L2:

mov w0, 0

add sp, sp, 16

ret

Add a comment
Know the answer?
Add Answer to:
ARM Assignment Goals: Initialize register X, Y, and Z to zero. Loop 10 times, each time...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
Active Questions
ADVERTISEMENT