- Engineering
- Computer Science
- assembly plptool 52 i have to make a program that...
Question: assembly plptool 52 i have to make a program that...
Question details
Assembly PLPTool 5.2
I have to make a program that checks if a string is a Palindrome or not.
"In this project, you will be writing a program that receives a
string of characters via the UART, checks if this
string is a palindrome, and then uses a print function to print
either “Yes” or “No”. A palindrome sequence of
characters (typically a word or phrase) that is the same both
forwards and backwards. For this project, strings
will be terminated using a period (‘.’). You may assume that a
string will contain at least one character in
addition to a period. You will not need to handle empty strings or
strings with only a period. Your program
should be able to handle multiple strings sent one after another or
concatenated together. For example, the
string: “abba. data.” should print “Yes” followed by “No” on the
next line. Spaces should be ignored when
checking for a palindrome and the palindrome should not be case
sensitive. For example, “A nut for a jar of
Tuna.” would be considered a palindrome. "
Here is my code so far:
.org 0x10000000
# Initializations
li $sp, 0x10fffffc
li $a0, 0($a0)
li $s0, 0xf0000000 #command register
li $t7, 0b00000010 #clear status bit
# Initialize any registers you will be using here.
# It can be helpful to include a comment about a register's
purpose
# next to an initialization at the start of the program for
reference.
j main
nop
array_ptr: #
Label pointing to 100 word array
.space 100
main:
# TODO: write your primary program within this
loop
j main
nop
isPalindrome:
# Check base case
slti $t0, $a0, 2
bne $t0, $zero, returnTrue
# Make sure first and last are equal
lb $t0, 0($a1)
addi $t1, $a0, -1
add $t1, $t1, $a1
lb $t1, 0($t1)
bne $t0, $t1, returnFalse
# Shift pointer, length, recurse
addi $a0, $a0, -2
addi $a1, $a1, 1
j isPalindrome
returnFalse:
addi $v0, $zero, 0
jr $ra
returnTrue:
addi $v0, $zero, 1
jr $ra
Solution by an expert tutor
