Question: please firstly write the solution in C++ or java language then in ARMv8 assembly, with comments explaining the purpose of each line. Description In this

Description In this coursework you are required to write, assemble, and execute ARMv8 (AArch64) assembly programs using an Arm assembler. You can refer to the provided Lab tutorial "How to write, assemble and execute ARMv8 assembly", or read further sources on ARMv8 assembly programming, such as definition of the .data/.text segments, data declarations (byte, word, .quad, .asciiz, etc.), and the use of system calls for performing input/output and exiting a program. The required programs are specified in Tasks 1 and 2 below. You are expected to document your programs in a short report, including: Solution design (description of the algorithm, functions used, etc.) Implementation of the solution in the CH or Java language Implementation of the solution in ARMv8 assembly, with comments explaining the purpose of each line Task 1 An automorphic number is a number n whose square ends in n. For instance, 5 is automorphic, because 52 = 25, which ends in 5. Design and implement an ARMv8 program that reads a positive integer from the user and then calculates and prints all the automorphic numbers (decimal base) that are less than or equal to the entered integer. If the entered integer is not positive, an error message is displayed. As an example, if 100 is entered the program will print all the automorphic numbers up to 100: 1.5, 6, 25, 76. (50%) Task 2 Design and implement an ARMv8 program that counts total number of uppercase letters, lowercase letters, digits and special characters in a string. Text is assumed to be in ASCII, using 1 byte per character. For example, if the input string is This is the 2nd Task of Assignment 1.", the program should report 3 uppercase letters, 24 lowercase letters, 2 digits, and 8 special characters. (50%)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
