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 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
Get step-by-step solutions from verified subject matter experts
