UNIVERSITY OF CALGARYDEPARTMENT OF COMPUTER SCIENCESpring 2019CPSC 355: Computing Machinery IAssignment 01Weight: 6% of final gradeDue: May 17th (11:59 PM)Basic Assembly Language ProgrammingCreate an ARMv8 A64 assembly language program that finds the maximum of, by stepping through the range one by one in a loop and testing. Useonly long integers for x, and do not factor the expression. Use the printf() function to display tothe screen the values of x, y and the current maximum on each iteration of your loop.You are to create 2 versions of your program:1. Write the program without macros (i.e. dont use m4), and use only the mul, add, and movinstructions to do your calculations. Use a pre-test loop, where the test is at the top of theloop.2. Optimize the above program by putting the loop test at the bottom of the loop (make sure itis still a pre-test loop), and by making use of the madd instruction. Also, add macros to theabove program to make it more readable (use m4). In particular, provide macros for heavilyused registers.Running Your ProgramTo verify that your assembly language program works, run both versions under gdb, capturingoutput from each session using the script UNIX command. For version 1, single step through theprogram (use ni) for at least one iteration of your loop, displaying the instruction being executed(use display/i $pc). Also print out the contents of particular registers (use p) at key points in yourprogram to show that it is working as expected. For version 2, set a breakpoint just after the placCPSC 355作业代写、代做Computing Machinery I作业、代写Python/C++实验作业、代做Jaewhere the final result is calculated, and then print out the maximum. Do not single step throughthis version.Other RequirementsMake sure your code is properly formatted into columns, is readable and fully documented, andincludes identifying information at the top of each file. You must comment each line of assemblycode. Your code should also be well designed: make sure it is well organized, clear, and concise.2New Skills Needed for this Assignment: Ability to work with basic arithmetic, loops, and if-else constructs in assembly. Ability to print to standard output using the printf() function. Ability to optimize assembly code by rearranging loops and using alternate instructions. Ability to use macros in assembly code. Ability to assemble programs using gcc and use m4 to process macros. Ability to use gdb to debug and display assembly language programs.Submit the following:Your assembly source code files for both programs and 2 scripts via D2L. Use the Assignment 1Dropbox Folder in D2L to submit electronically. Your TA will assemble and run your programs totest them. Name your programs assign1a.s and assign1b.asm, and your scripts script1.txt andscript2.txt.Marking CriteriaFunctionality (Version 1)Equation calculation 4 ______Test for maximum 4 ______Display to screen using printf() 2 ______Loop 4 ______Optimization (Version 2) 3 ______Use of Macros (Version 2) 3 ______2 Scripts showing use of gdb 4 ______Complete documentation and commenting 4 ______Design quality 2 ______Total 30 ______转自:http://www.7daixie.com/2019051813955092.html
网友评论