×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Convert a string to an integer using PLP assembly homework help

July 10, 2024
Rehana Magnus
Rehana Magnus
🇨🇦 Canada
Assembly Language
Rehana Magnus, PhD in Computer Science from the esteemed Acadia Institute of Technology, Canada. With 6 years of experience, specializes in assembly language programming. Proficient in low-level coding, optimizing performance, and enhancing system functionality.
Key Topics
  • String to Integer Conversion in PLP Assembly
Tip of the day
Use modular coding in Verilog assignments by breaking the design into smaller modules. This improves readability, simplifies debugging, and allows for easier testing and reuse of code components in larger designs.
News
In 2024, Visual Studio Code now offers enhanced GitHub Copilot integration for faster, while PyCharm has improved debugging and testing tools, making it ideal for Python students​

The program deals with reading a series of characters from the UART and converting each string of characters to an integer. The strings are terminated by semicolons. Any invalid characters are ignored and an error message is printed. The conversion process continues indefinitely while there are characters coming from the UART. Below is the solution to this homework provided by our PLP assembly homework helpers.

String to Integer Conversion in PLP Assembly

Convert a string to an integer using PLP assembly assignment help_11zon

.org 0x10000000 li $sp,0x10fffffc main: li $s0,';' # delimiter to use li $s1,10 # load s1 with 10 for doing multiplications by 10 li $a0,0 # a0 will contain the converted number, initialize to zero li $a1,0 # a0 will contain 1 if there was a bad character input, set to zero read: li $t0,0xf0000000 # load UART command register address in t0 li $t1,2 # load a 2 to send a clear status command to the UART sw $t1,0($t0) # send clear status command to UART nop inwait: lw $t1,4($t0) # load current status register from UART andi $t1,$t1,2 # test the second bit (ready) beq $t1,$0,inwait # if there is no data, keep waiting nop lw $t1,8($t0) # load received char in t1 beq $t1,$s0,send # if the read character was a ';', send the result nop addiu $t1,$t1,-48 # convert from ascii to integer slt $t2,$t1,$0 # set t2 to 1 if conversion<0 bne $t2,$0,error # if the it was <0, set error nop slt $t2,$t1,$s1 # set t2 to 1 if conversion<10 beq $t2,$0,error # if the it was >=10, set error nop mullo $a0,$a0,$s1 # multiply old number by 10 addu $a0,$a0,$t1 # add current digit to number j read # read another character nop error: addiu $a1,$0,1 # set a1 to 1 to indicate error j read # read another character nop send: call project3_print # print the converted number nop j main # restart program nop

Similar Samples

xplore our curated samples at ProgrammingHomeworkHelp.com and witness firsthand the depth of our expertise across various programming disciplines. From Java and Python to Assembly Language and Web Development, our samples showcase solutions that demonstrate clarity, efficiency, and meticulous attention to detail. Whether you're tackling assignments or delving into complex projects, our samples serve as valuable resources to enhance your understanding and excel in programming.