Question: Complete an Arm Assembly program that will copy data from one location to another Complete an ARM assembly program that will copy a block of

Complete an Arm Assembly program that will copy data from one location to another

Complete an Arm Assembly program that will copy data from one location

Complete an ARM assembly program that will copy a block of data from one location to another one word at a time. Start with the main.asm file posted on Canvas. For this program, you must: Use all pointers You will read and/or write each of the variables these pointers point to Copy each word-sized integer, except zero values, from the source block array ( SBLK ) to the destination block array (DBLK) Stop the transfer when SBLKENDPTR (source block end pointer) is reached Note: The placement of the SBLKPTR and SBLKENDPTR is very similar to the placement of iterators for a vector in C++ Count the number of negative values in the source array; this should also be equal to the number of negative values in the destination array since you should have copied these o Store the final count in the NUMNEG (number negative) variable Count the total number of values (negative and positive values) transferred Store the final count in the TOTAL variable . Use at least one loop using conditional branch command(s) What the results in memory should look like after correct execution: Note: The exact address of the variables and arrays may be different, however, they must be RAM addresses (declared in the "data" section) 2 NUMNEGPTR TOTALPTR Ox2000.0000 Ox2000.0004 6 Copy from the source block array to the destination block array (but do not copy zero values-skip these) Destination Block (DBLK): Source Block (SBLK): SBLKPTR 1 DBLKPTR 1 126 126 -8 Ox2000.0008 Ox2000.000C Ox2000.0010 Ox2000.0014 Ox2000.0018 Ox2000.001C Ox2000.0020 Ox2000.0024 Ox2000.0028 Ox2000.0020 Ox2000.0030 Ox2000.0034 Ox2000.0038 Ox2000.003C Ox2000.0040 0 -115 -8 -115 44 28 44 0 28 XX SBLKENDPTR Complete an ARM assembly program that will copy a block of data from one location to another one word at a time. Start with the main.asm file posted on Canvas. For this program, you must: Use all pointers You will read and/or write each of the variables these pointers point to Copy each word-sized integer, except zero values, from the source block array ( SBLK ) to the destination block array (DBLK) Stop the transfer when SBLKENDPTR (source block end pointer) is reached Note: The placement of the SBLKPTR and SBLKENDPTR is very similar to the placement of iterators for a vector in C++ Count the number of negative values in the source array; this should also be equal to the number of negative values in the destination array since you should have copied these o Store the final count in the NUMNEG (number negative) variable Count the total number of values (negative and positive values) transferred Store the final count in the TOTAL variable . Use at least one loop using conditional branch command(s) What the results in memory should look like after correct execution: Note: The exact address of the variables and arrays may be different, however, they must be RAM addresses (declared in the "data" section) 2 NUMNEGPTR TOTALPTR Ox2000.0000 Ox2000.0004 6 Copy from the source block array to the destination block array (but do not copy zero values-skip these) Destination Block (DBLK): Source Block (SBLK): SBLKPTR 1 DBLKPTR 1 126 126 -8 Ox2000.0008 Ox2000.000C Ox2000.0010 Ox2000.0014 Ox2000.0018 Ox2000.001C Ox2000.0020 Ox2000.0024 Ox2000.0028 Ox2000.0020 Ox2000.0030 Ox2000.0034 Ox2000.0038 Ox2000.003C Ox2000.0040 0 -115 -8 -115 44 28 44 0 28 XX SBLKENDPTR

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!