CS计算机代考程序代写 algorithm flex assembly COMP 3353 Project #3

COMP 3353 Project #3
Possible points: 100 Due: March 5, 2021 11:59pm CST
Goals:
• Defining and accessing Arrays.
• Dealing with Registers and instructions.
• Defining with Loops
• Debugging and running your assembly code.
Requirements:
• Readthedesignsectionandwriteaprogram.Submitsourcefile(.asm)toCanvas.
• Pleasestartearly.ZEROpointforlatesubmission. Afterthe11:59pm onthedueday,you
can’t submit your assignment anymore.
Deliverables:
• Save your source of assembly program as a .asm document.
• Name document as a “Firstname_Lastname.asm”.
• Submit your “Firstname_Lastname.asm” through the Canvas system. You do not need to
submit hard copies. Rebuttal period:
• Youwill be givenaperiod of 3business days toread andrespond tothe commentsandgrades of your homework or project assignment. The TA may use this opportunity to address any concern and question you have. The TA also may ask for additional information from you regarding your homework or project.
Design:
Theobjectiveofthisassignmentistocreateaprogramthatwillreadavaluefromanarray,andthen place this value in another array with the location shifted by a certain amount. The array may be of any length from 2 to 100. Your program must be flexible enough to produce the correct solution regardless of the array size. You must provide documentation for your program in the form of comments.

(10 Points) Create a BYTE array with the label ‘input’. ‘input’ should have eight elements. You should place values 1,2,3,4,5,6,7,8 in each of the elements of this array.
(10 Points) Create a BYTE array with the label ‘output’. This array should be the same length as ‘input’.
(10 Points) Create a DWORD variable with the label ‘shift’. ‘shift’ should hold a single value. The value of ‘shift’ must be less than the length of ‘input’.
(60 Points) The program should then read each of the values from the array ‘input’ and place the values into the ‘output’ array, but the location should be shifted by the amount in the ‘shift’ variable. If the shift would cause a value to be outside of the bounds of ‘output’, then the values should “wrap around” to the front of ‘output’.
Example:
My ‘input’ array is 5, 0A, 2, 6, 0C, 9, 4
‘shift’ is 3
The proper solution for ‘output’ is 0C, 9, 4, 5, 0A, 2, 6
Asyoucansee thevalue‘5’isthe1stvalueinthe‘input’ array.Thevalue‘5’ thenshifts3tothe4th value in the ‘output’ array. Also, note that the value ‘0C’ is the 5th value in the ‘input’ array. After a shift of 3, this would take the value ‘0C’ out of bounds for the ‘output’ array (it is the same length as the ‘input’ array).The value‘0C’ must “wraparound” to the frontof the ‘output’ array.This also holds true for ‘9′ and ‘4’.
Remember that your program must be flexible enough to handle an array of any length.
You are recommended to create a loop to inspect the values in your output array, see page 5 in
Debugging_tutorials.pdf for more info. (5 points) Header:
Please provide a heading at the top of your code containing your name, Auburn UserID, filename, and how to compile your code. Also describe any help or sources that you used (as per the syllabus).
e.g. ;Xuechao Li ;Project1.cpp
;Dr. Li helped me debug a syntax error in my “for” loop. ;I used Wikipedia.org to learn how a genetic algorithm works.
;I spoke with Bob Smith in the class about identifying objects in Assembly Language.
(5 points) Comments
In the coding section, use your judgment to choose between explaining each line or related group of lines. The purpose of these comments is to make the code readable for other programmers or for you in the future.