Consider the following LEGv8 loop: LOOP: SUBIS X1, X1, #0 B.LE DONE SUBI X1, X1, #1 ADDI
Question:
Consider the following LEGv8 loop:
LOOP: SUBIS X1, X1, #0
B.LE DONE
SUBI X1, X1, #1
ADDI X0, X0, #2
B LOOP
DONE:
a. For the loop above, write the equivalent C code. Assume that the registers X0 and X1 are integers acc and i respectively.
b. For the loop written in the LEGv8 assembly above, assume that register X1 is initialized to the value N. How many LEGv8 instructions are executed?
c. For the loop written in LEGv8 assembly above, replace the instruction "B.LE DONE" with "B.MI DONE" write the equivalent C code.
d. What is the purpose of the SUBIS instruction in the assembly code above?
e. Show how you can reduce the number of instructions by combining the SUBIS and SUBI instructions. (Hint: Add one instruction outside the loop)
Materials and process in manufacturing
ISBN: 978-0471656531
9th edition
Authors: E. Paul DeGarmo, J T. Black, Ronald A. Kohser