Chat with us, powered by LiveChat CSE230 Project 3 | WriteDemy

Question Description

CSE 230 Project 3: UART Palindrome Checker

Learning Objectives:

● Create modular code and interface with unfamiliar modularized code

The TaskIn this project, you will be writing a program that receives a string of characters via the UART, checks if thisstring is a palindrome, and then uses a print function to print either “Yes” or “No”. A palindrome sequence ofcharacters (typically a word or phrase) that is the same both forwards and backwards. For this project, stringswill be terminated using a period (‘.’). You may assume that a string will contain at least one character inaddition to a period. You will not need to handle empty strings or strings with only a period. Your programshould be able to handle multiple strings sent one after another or concatenated together. For example, thestring: “abba. data.” should print “Yes” followed by “No” on the next line. Spaces should be ignored whenchecking for a palindrome and the palindrome should not be case sensitive. For example, “A nut for a jar ofTuna.” would be considered a palindrome.

Print FunctionA skeleton PLP project file is available to download on Blackboard. The PLP project includes a second ASM filetitled, project3_print.asm. This ASM file contains the print function used in this project. PLPTool concatenates allASM files within a PLP project into a single location in memory (unless additional .org statements have beenadded to specify different location for code). No changes to project3_print.asm should be made.

When called, depending on the value in register $a0, the following string will be displayed on the simulatedUART device’s output. If $a0 contains a zero then “No” will be displayed and if $a0 contains a non-zero value(e.g. one) then “Yes” will be displayed. The print function is called using the following instruction:

call project3_print

To use the print function, your PLP program needs to initialize the stack pointer ($sp) before performing thefunction call (or any other operations involving the stack pointer). For this reason, the skeleton project fileincludes an initialization that sets the stack pointer to 0x10fffffc (the last address of RAM).

Palindrome Checking Strategies

There are two strategies I would recommend for saving your string in in memory and checking to see if it is apalindrome. The first would be to use only an array and keep a pointer (a register containing a memory address)for both the first element in the array (commonly referred to as a head pointer) and last element in the array(commonly referred to as a tail pointer). As you add elements to your array, update your tail pointer so that itmoves to the new last element in the array. When you have reached the end of your string (a period has beenreceived), you can perform your palindrome check comparing the characters your head and tail pointers point toand, if they point to the same character, move them both inwards towards the center of your array. If thepointers cross and all the characters were the same, your string was a palindrome. The second strategy wouldbe to use an array, treated as a queue, and the stack. You can traverse the array from the start (the firstcharacter saved) to the end (the last character saved) while simultaneously popping characters off the stack. Thequeue will give you the string forwards and the stack will give you the string backwards.

For both techniques I described above, keep in mind they are simpler if you perform some conditioning to thecharacters you receive before saving them. For example you don’t need to save spaces in your data structure(s)since they can be ignored and the comparisons are simpler if, when first receiving character, you convert themall to the same case (either all upper or all lower) before storing them. That way you won’t need to write logicthat indicates things like “A” == “a” and “A” == “a”.

Our website has a team of professional writers who can help you write any of your homework. They will write your papers from scratch. We also have a team of editors just to make sure all papers are of HIGH QUALITY & PLAGIARISM FREE. To make an Order you only need to click Ask A Question and we will direct you to our Order Page at WriteDemy. Then fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.

Fill in all the assignment paper details that are required in the order form with the standard information being the page count, deadline, academic level and type of paper. It is advisable to have this information at hand so that you can quickly fill in the necessary information needed in the form for the essay writer to be immediately assigned to your writing project. Make payment for the custom essay order to enable us to assign a suitable writer to your order. Payments are made through Paypal on a secured billing page. Finally, sit back and relax.

Do you need an answer to this or any other questions?

About Writedemy

We are a professional paper writing website. If you have searched a question and bumped into our website just know you are in the right place to get help in your coursework. We offer HIGH QUALITY & PLAGIARISM FREE Papers.

How It Works

To make an Order you only need to click on “Place Order” and we will direct you to our Order Page. Fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.

Are there Discounts?

All new clients are eligible for 20% off in their first Order. Our payment method is safe and secure.

Hire a tutor today CLICK HERE to make your first order