please read all the instruction written in notes
do not use any other register expect assigned in notes
CSE2312-001(Spring 2021)
Homework #3
Notes:
– All numbers are in base-10 unless otherwise noted.
– If part of a problem is not solvable, explain why in the answer area.
– Print out the form and handwrite your answers in the spaces below.
– Place the hw3.s file and the scanned answers to problem 1 in a single zip file
with name lastname_hw3.zip, where lastname is your last name as listed in
MyMav.
– Submit the single zip file to Canvas before 11:59:00pm on Thursday, April 8.
– Make sure that the code follows the procedure call standards for ARM
architecture (see IHI0042F section 5.1), with emphasis on this requirement: “A
subroutine must preserve the contents of the registers r4-r8, r10, r11 and SP
(and r9 in PCS variants that designate r9 as v6).” (in other words, push and pop
R4-11 if you need to use them, as shown in the vector.s examples in class)
1. Suppose that BUSINESS7 structure is defined as:
typedef struct _BUSINESS7
{
uint32_t taxId;
char name[27];
char direction;
char street[35];
uint32_t addNo;
char city[30];
char state[3];
uint32_t zip;
} BUSINESS7;
Show the relative offset of each field in the structure from the beginning of the
structure for the unpacked (default alignment) case:
Show the relative offset of each field in the structure from the beginning of the
structure for the packed case:
2. Write assembly functions that implement the following C functions:
a. bool isStrEqual(const char str1[], const char str2[])
// returns true (1) if the strings match, false (0) otherwise
b. void strConcatenate(char strTo[], const char strFrom[])
// adds the contents of string strFrom to strTo
// note: strTo must have enough space to hold the contents of strFrom and strTo
c. int32_t sumS32(const int32_t x[], uint32_t count)
// returns sum of the values in the array (x) containing count entries.
d. uint32_t countAboveLimit(const int32_t x[], int32_t limit, uint32_t count)
// returns number of values in the array (x) containing count entries that are >
limit
e. void leftString(char * strOut, const char * strIn, uint32_t length)
// input: array (strIn) containing the input string, and the number of characters to
extract (length)
// output: array (strOut) containing up to, but not exceeding length number of
strIn characters from the start of the array
// strIn = ‘abcdef’, length = 5 → returns strOut = ‘abcde’
// strIn = ‘abcdef’, length = 7 → returns strOut = ‘abcdef’
f. int32_t find2ndMatch(const char strIn[], const char strMatch[])
// input: array (strMatch) containing the string to find in the array (strIn)
// output: returns the offset within str of the 2nd occurrence of strMatch or -1 if
not found
g. void sortAscendingInPlace (uint32_t x[], uint32_t count)
// input: array (x) containing count entries
// output: array (x), with the values sorted in ascending order
h. int16_t decimalStringToInt16(const char * str)
// convert the null-terminated string (str) to a signed 16-bit integer
// treat the string as representing a decimal number
// if a character other than 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, or – is present or the value is
out of range, return 0
// the -, if present after the first character should cause the function to return 0
i. uint8_t hexStringToUint8(const char * str)
// convert the null-terminated string (str) to an unsigned 8-bit integer
// treat the string as representing a hexadecimal number
// if a character other than 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, or F is present
or the value is too large, return 0.
j. int32_t findCityAligned (const char city[], const BUSINESS7 business[], uint32_t
count)
// returns the index of the first entry in the array (business) containing count
entries which matches the requested city. If the city is not found, return a value
of -1. You can assume that C default alignment is used for this problem.
k. int32_t findCityPacked (const char city[], const BUSINESS7 business[], uint32_t
count)
// returns the index of the first entry in the array (business) containing count
entries which matches the requested city. If the city is not found, return a value
of -1. You can assume that C packing is used for this problem.
Write the solution of each of these functions in a single file hw3.s with functions
being callable from a C program. You do not need to send the .c file.
We provide professional writing services to help you score straight A’s by submitting custom written assignments that mirror your guidelines.
Get result-oriented writing and never worry about grades anymore. We follow the highest quality standards to make sure that you get perfect assignments.
Our writers have experience in dealing with papers of every educational level. You can surely rely on the expertise of our qualified professionals.
Your deadline is our threshold for success and we take it very seriously. We make sure you receive your papers before your predefined time.
Someone from our customer support team is always here to respond to your questions. So, hit us up if you have got any ambiguity or concern.
Sit back and relax while we help you out with writing your papers. We have an ultimate policy for keeping your personal and order-related details a secret.
We assure you that your document will be thoroughly checked for plagiarism and grammatical errors as we use highly authentic and licit sources.
Still reluctant about placing an order? Our 100% Moneyback Guarantee backs you up on rare occasions where you aren’t satisfied with the writing.
You don’t have to wait for an update for hours; you can track the progress of your order any time you want. We share the status after each step.
Although you can leverage our expertise for any writing task, we have a knack for creating flawless papers for the following document types.
Although you can leverage our expertise for any writing task, we have a knack for creating flawless papers for the following document types.
From brainstorming your paper's outline to perfecting its grammar, we perform every step carefully to make your paper worthy of A grade.
Hire your preferred writer anytime. Simply specify if you want your preferred expert to write your paper and we’ll make that happen.
Get an elaborate and authentic grammar check report with your work to have the grammar goodness sealed in your document.
You can purchase this feature if you want our writers to sum up your paper in the form of a concise and well-articulated summary.
You don’t have to worry about plagiarism anymore. Get a plagiarism report to certify the uniqueness of your work.
Join us for the best experience while seeking writing assistance in your college life. A good grade is all you need to boost up your academic excellence and we are all about it.
We create perfect papers according to the guidelines.
We seamlessly edit out errors from your papers.
We thoroughly read your final draft to identify errors.
Work with ultimate peace of mind because we ensure that your academic work is our responsibility and your grades are a top concern for us!
Dedication. Quality. Commitment. Punctuality
Here is what we have achieved so far. These numbers are evidence that we go the extra mile to make your college journey successful.
We have the most intuitive and minimalistic process so that you can easily place an order. Just follow a few steps to unlock success.
We understand your guidelines first before delivering any writing service. You can discuss your writing needs and we will have them evaluated by our dedicated team.
We write your papers in a standardized way. We complete your work in such a way that it turns out to be a perfect description of your guidelines.
We promise you excellent grades and academic excellence that you always longed for. Our writers stay in touch with you via email.