Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Develop an x86_64 assembly language program that uses a function and a loop to calculate values across an array. Procedure For this assignment you must
Develop an x86_64 assembly language program that uses a function and a loop to calculate values across an array. Procedure For this assignment you must write all code in x86_64 assembly (but you may use/call C functions in your assembly code). All code should be in one source file only (asm_program.asm) You may reuse code from any of my assembly examples for this assignment. 1. Create a function which takes four 64-bit integer arguments (eg. W, X, Y, Z) o Your function should compute (W - X) * (Y Z), and leave the result in RAX when it returns. o Your function should accept the four arguments using appropriate conventions (see registers listed in the lecture slides). o Your function should NOT print anything - it should ONLY perform the math, and return the result via RAX. 2. Use a loop to compute the above function over an array of size 16 (A[0], A[1], ..., A[15]) o Declare an array (in memory) containing 16 reasonable 64-bit integer values (of your choosing). o Use a loop to iterate over the elements of the array, and use your function (above) to calculate the value of every four consecutive array values o For example, rax -(A[0] - A[1]) (A[2] A[3]), then rax (AI1] - A[2]) (AI3] A[4]), etc. o For each iteration, print out the calculation, the result, and start a newline (exactly like this): (5 - 2) (3 +4) 21 o The last iteration should compute rax- (A[ 12] - A[13]) (A[14] A[15]) (i.e. don't calculate past the end of the array!)
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started